From 3268eeb03e1ab0694745d64030a3f95cfa5f95a1 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Fri, 3 Dec 2021 17:50:01 -0800 Subject: [PATCH] 1. Added COM based TaskScheduler for windows 2. Added support Active Directory to win-registry when fetching SID 3. Added additional debug support to _GenericMarshal.Variable --- microscript/ILibDuktape_GenericMarshal.c | 12 + microscript/ILibDuktape_Polyfills.c | 5 +- modules/win-registry.js | 28 +- modules/win-tasks.js | 820 +++++++++++++++++++++++ 4 files changed, 861 insertions(+), 4 deletions(-) create mode 100644 modules/win-tasks.js diff --git a/microscript/ILibDuktape_GenericMarshal.c b/microscript/ILibDuktape_GenericMarshal.c index ac487d3..5289df5 100644 --- a/microscript/ILibDuktape_GenericMarshal.c +++ b/microscript/ILibDuktape_GenericMarshal.c @@ -456,6 +456,17 @@ duk_ret_t ILibDuktape_GenericMarshal_Variable_Increment(duk_context *ctx) duk_put_prop_string(ctx, -2, "_ptr"); return(1); } +duk_ret_t ILibDuktape_GenericMarshal_Variable_debug(duk_context *ctx) +{ + UNREFERENCED_PARAMETER(ctx); +#ifdef WIN32 + duk_push_this(ctx); + void *ptr = Duktape_GetPointerProperty(ctx, -1, "_ptr"); + + UNREFERENCED_PARAMETER(ptr); +#endif + return(0); +} void ILibDuktape_GenericMarshal_Variable_PUSH(duk_context *ctx, void *ptr, int size) { duk_push_object(ctx); // [var] @@ -484,6 +495,7 @@ void ILibDuktape_GenericMarshal_Variable_PUSH(duk_context *ctx, void *ptr, int s ILibDuktape_CreateInstanceMethod(ctx, "pointerBuffer", ILibDuktape_GenericMarshal_Variable_pointerBuffer, 0); ILibDuktape_CreateInstanceMethod(ctx, "getPointerPointer", ILibDuktape_GenericMarshal_Variable_pointerpointer, 0); ILibDuktape_CreateInstanceMethod(ctx, "increment", ILibDuktape_GenericMarshal_Variable_Increment, DUK_VARARGS); + ILibDuktape_CreateInstanceMethod(ctx, "_debug", ILibDuktape_GenericMarshal_Variable_debug, 0); ILibDuktape_CreateFinalizer(ctx, ILibDuktape_GenericMarshal_Variable_Finalizer); diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index 8f8387a..b6a218f 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2352,7 +2352,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) duk_peval_string_noresult(ctx, "addCompressedModule('util-dns', Buffer.from('eJzdV2uT2jYU/c4M/+HWbWN747V3SSZNlzIZso+UZsNmAkkmAyQVtgyaNZIrycuSLfntvQKzmH0AmWYmnfoDNtJ9nHuudGwFO+XSoUgnkg2GGip7lX1ocE0TOBQyFZJoJni5VC6dspByRSPIeEQl6CGFekpCvOUzHryjUqE1VPw9cIyBlU9ZbrVcmogMRmQCXGjIFMUITEHMEgr0MqSpBsYhFKM0YYSHFMZMD2dZ8hh+ufQhjyD6mqAxQfMU/8VFMyDaoAW8hlqnB0EwHo99MkPqCzkIkrmdCk4bh8fN1vEuojUeb3lClQJJ/8qYxDL7EyApgglJHyEmZAxCAhlIinNaGLBjyTTjAw+UiPWYSFouRUxpyfqZXuFpAQ3rLRogU4SDVW9Bo2XB83qr0fLKpfeN9u9nb9vwvv7mTb3Zbhy34OwNHJ41jxrtxlkT/51AvfkBXjaaRx5QZAmz0MtUGvQIkRkGaYR0tShdSR+LORyV0pDFLMSi+CAjAwoDcUElx1ogpXLElOmiQnBRuZSwEdOzRaBuV4RJdgJDXpzx0Nhg13gkxupTxJXjlktX805cEInEaqhBp1ddDrEUR3LCHfvTC8qpZOErItWQJLbrH0pKNG1i9gv6WorLiWM30mGSkpT5UYIWeSyW5qavqB6KyLFfUN2keizk+WsiyUjNLJd5I6LJNpnfEclM9539vcpjtwA8ofyr/K+d0dHX4nkWx1Q6rm9WEH2L2+1R5fT4OkteVAwOFnazFMeA90wg139HEqjVYM+de+RkX1fJ1SmuNgRqXPwjKmnsrMH8WjDc97LFPlMT9Sk8g8ovFTiAypOnHjx+uoRmrkgsnwuJzYWd9tNMDZ0cwVel9mD/iVvkSIsW7hg+cNwFieaawnhopMNxCmWupNvz1jWokNHNHdylIxY7Z/cHw26edjq/YXWZ5IDlaDMzLSz+hPHs8o6lHyLUqLhgZgOfUilC3LSIhl7S8ATLceygz3ighrYHHRtvvUXymYevdCQyjTeJ0Wy7ujosuGObVqPzNSQndOFqJrUzr4c1CAuMVmF6KwGV8u5IJtBtc8bnq9ixQqIhoDoMUIlEcuGHgsfwN6BipsDJiCoqUWVwBHHYXW6D/aeN/8j4HHZPzLNt3R/dvrLXTOLo0fFpzbKqG6xSrFvHYHU2WqJYOqy2X2W/NU+qDx8yd4P9JnyzHe38xL4EH38MDJVID749Moo9sN0Nnp9rCkVdo7vX9ixAnrbK9rlWq8CDB9Du7PdqNWvZBGtTNdsVVCD0Z9XtdvNfy8NmeO1OpbcFzEXrvI0dMVtwg8mm+QXa3tpk1nTtSuxyesk0LuBVmzFh+hgnnMWwlpNbujwXD+eP1lnTT1GMqHNzY/u4NUeodTdUBzdXOHTobaVfyFGnV/CYrryTRyQUd72R/2eydG87VZhplsDuLlJwvyB9Z0W6+m6KBF8g+Njtqh3Y6Xb1zpKZbrfT2dv9tdcLvplc1AtCdvZyWym7oTPznwNYPFme4doDjNh51Jvf9/+z2jPdSnv+lfrcrz9m2+vZgaYGW4hQ9ZZyzZz9czpRzjeQKIWHvHAITi45fpoQjct8tNSpkODBxZ59WNkHxaEYD2J9FS0GzTUSUYbg8CwkpFZY4fX3WKGOPn6Zn1eLkfDI8qiyNk7hULM2UkQkmq4Nda3F9wSKaEyyRK8LsSp9RXJhekdUJPof7kamjA==', 'base64'));"); #ifdef WIN32 // Adding win-registry, since it is very useful for windows... Refer to /modules/win-registry.js to see a human readable version - duk_peval_string_noresult(ctx, "addCompressedModule('win-registry', Buffer.from('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', 'base64'));"); + duk_peval_string_noresult(ctx, "addCompressedModule('win-registry', Buffer.from('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', 'base64'), '2021-12-03T16:34:49.000-08:00');"); // Adding PE_Parser, since it is very userful for windows.. Refer to /modules/PE_Parser.js to see a human readable version duk_peval_string_noresult(ctx, "addCompressedModule('PE_Parser', Buffer.from('eJytV0tz2kgQvlPFf+j1RSjL8rJCEVM+EOxUqPWCC4FTOQ7SCKYsZrSjkTGbyn/fHkkIiad2KzogNNPzdffXL6n5oVoZimAr2XKloNNq92DEFfVhKGQgJFFM8GqlWnliDuUhdSHiLpWgVhQGAXHwlu7U4YXKEKWh02hBTQvcpFs3Zr9a2YoI1mQLXCiIQooILASP+RTou0MDBYyDI9aBzwh3KGyYWsVaUoxGtfI9RRALRVCYoHiAT15eDIjS1gJeK6WCu2Zzs9k0SGxpQ8hl00/kwubTaPg4th//QGv1iTn3aRiCpH9HTKKbiy2QAI1xyAJN9MkGhASylBT3lNDGbiRTjC/rEApPbYik1YrLQiXZIlIFnnamob95AWSKcLgZ2DCyb+DzwB7Z9Wrl22j2dTKfwbfBdDoYz0aPNkymMJyMH0az0WSMT19gMP4Of47GD3WgyBJqoe+B1NajiUwzSF2ky6a0oN4TiTlhQB3mMQed4suILCksxRuVHH2BgMo1C3UUQzTOrVZ8tmYqToLw2CNU8qGpyWs2YUpVJDnygmrW8QEgCxGpJM70nTqR0lRWK17EnXg/IDKkNdx6JmplVis/kri9EYlhUC/Eh3v48bO/X/VCXEkjVDO80DDzmy5uemFDBJTbW+7sgOtgyEVBcrFVNJxS4ubWXBF+xRX07x4+R55HZYP4vnBqXSt/lKvTUp2ClAhSsf4uF2OCiBuT9zCxYRVvJ3uZOYn9Ev/F9ntufW9WHVp16Fp42yliHtSy7fjUHAu33X16rLXMhhI2Jhpf1tpd/TAPMLJDgnSb8Ns9GB8H1oNhJkAp7fpSKyk2UDMiLqkjlpz9oyuBcSK3kMQ1I/LnKdfGs9Ke7ZiMHds9NHzKlzpkx47ddtCxbsvMu58dC3VV1xDIynlurOi7kbrbsj628Lrgsm5LBJ4f45aU91LfQuxGziqnsEC3VaT7WIeDxIPRthzjTtN120FO1X5bX0nCNxKSkS7jvdc1+kWZBWp97R/C9rpdK8HtWmVwUfoKrks9EvkqxpzzVy42/DKobgwe49S9AJzlS3oYawR7APETQm3MNAQ6zW8ny/mzZweuGzfA+wuZA7/jeDtZkTu8QvJmRXxY62eN3Fl5Ke0z1Djvs6cSia/NL/aiaD19GRzQX+BpuKLOqx2tn8V1Ziz86VpFnjWzE28oXB2bva2F45Z56syI42wkvu4fD0SR88d7J4/PeWmAdsfM3N6V6bHo9bZ4tmpbn/NVm3bDYp5nkThj46eO2T9ZQUMqlR7FRNGZHo77ND7rba8kVFpR53Buy5qkccrmD6KeBpVvxFZEqrJlqsE+dUu1v84uPkn3+1/xabfKsno9QJb1awJk/ZdAlw6Q1ft1AWq3D6N9bpAUpXYTNx0tgPoj/XaKbSx+R53suvFfZMmcOzBQ15mea12s6MvTqOj9ENXrUZakStZR9FvG5VQ47hv5yUIi/OWKObqHOnsEbP3cx28Xnqxiy9KP+oTHZKgAz8itucfU/X7lHo2iQo4cjhqUj4cM3rPxcsWXHFoqmbP5ULnGLeRGy7xkzjFgbN3xckljMSv2nl21/ISa/YviAvMFX4sugzxsnmJVCHbC82Jeoe+OL0KaOp+bcfobKc0ovRq/Fa2FG/m0gR9xQipde/GHUZyD1cq/OIedMw==', 'base64'));"); @@ -2382,6 +2382,9 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) // win-wmi is a helper to add wmi support using win-com. Refer to modules/win-wmi.js duk_peval_string_noresult(ctx, "addCompressedModule('win-wmi', Buffer.from('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', 'base64'), '2021-11-09T11:50:29.000-08:00');"); + // Simple COM BASED Task Scheduler for Windows. Refer to modules/win-tasks.js + duk_peval_string_noresult(ctx, "addCompressedModule('win-tasks', Buffer.from('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', 'base64'), '2021-12-03T17:34:14.000-08:00');"); + #endif #ifdef _FREEBSD diff --git a/modules/win-registry.js b/modules/win-registry.js index 1eac116..7962e79 100644 --- a/modules/win-registry.js +++ b/modules/win-registry.js @@ -265,6 +265,25 @@ function windows_registry() }; this.usernameToUserKey = function usernameToUserKey(user) { + var domain = null + if (typeof (user) == 'object' && user.user) + { + if (user.domain) { domain = user.domain; } + user = user.user; + } + + try + { + if(domain==null) + { + domain = require('win-wmi').query('ROOT\\CIMV2', "SELECT * FROM Win32_ComputerSystem", ['Name'])[0].Name; + console.info1('usernameToUserKey("' + user + '") => domain: ' + domain); + } + } + catch(z) + { + } + try { var sid = user; @@ -294,9 +313,12 @@ function windows_registry() { try { - if (this.QueryKey(this.HKEY.Users, entries.subkeys[i] + '\\Volatile Environment', 'USERNAME') == user) + if (this.QueryKey(this.HKEY.Users, entries.subkeys[i] + '\\Volatile Environment', 'USERDOMAIN') == domain) { - return (entries.subkeys[i]); + if (this.QueryKey(this.HKEY.Users, entries.subkeys[i] + '\\Volatile Environment', 'USERNAME') == user) + { + return (entries.subkeys[i]); + } } } catch(ee) @@ -304,7 +326,7 @@ function windows_registry() } } } - throw ('Unable to determine HKEY_USERS key for: ' + user); + throw ('Unable to determine HKEY_USERS key for: ' + domain + '\\' + user); }; } diff --git a/modules/win-tasks.js b/modules/win-tasks.js new file mode 100644 index 0000000..8fc01b3 --- /dev/null +++ b/modules/win-tasks.js @@ -0,0 +1,820 @@ +/* +Copyright 2021 Intel Corporation +@author Bryan Roe + +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. +*/ + +const GM = require('_GenericMarshal'); +const CLSID_TaskScheduler = '{0f87369f-a4e5-4cfc-bd3e-73e6154572dd}'; +const IID_TimeTrigger = '{b45747e0-eba7-4276-9f29-85c5bb300006}'; +const IID_ExecAction = '{4c3d624d-fd6b-49a3-b9b7-09cb3cd3f047}'; + +const VT_EMPTY = 0; +const VT_NULL = 1; +const VT_SAFEARRAY = 27; +const VT_BSTR = 8; +const VT_ARRAY = 0x2000; + +const TASK_LOGON_NONE = 0; +const TASK_LOGON_PASSWORD = 1; +const TASK_LOGON_S4U = 2; +const TASK_LOGON_INTERACTIVE_TOKEN = 3; +const TASK_LOGON_GROUP = 4; +const TASK_LOGON_SERVICE_ACCOUNT = 5; +const TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = 6; + + +const TASK_TRIGGER_EVENT = 0; +const TASK_TRIGGER_TIME = 1; +const TASK_TRIGGER_DAILY = 2; +const TASK_TRIGGER_WEEKLY = 3; +const TASK_TRIGGER_MONTHLY = 4; +const TASK_TRIGGER_MONTHLYDOW = 5; +const TASK_TRIGGER_IDLE = 6; +const TASK_TRIGGER_REGISTRATION = 7; +const TASK_TRIGGER_BOOT = 8; +const TASK_TRIGGER_LOGON = 9; +const TASK_TRIGGER_SESSION_STATE_CHANGE = 11; +const TASK_TRIGGER_CUSTOM_TRIGGER_01 = 12; + +const TASK_ACTION_EXEC = 0; +const TASK_ACTION_COM_HANDLER = 5; +const TASK_ACTION_SEND_EMAIL = 6; +const TASK_ACTION_SHOW_MESSAGE = 7; + +const TASK_VALIDATE_ONLY = 0x1; +const TASK_CREATE = 0x2; +const TASK_UPDATE = 0x4; +const TASK_CREATE_OR_UPDATE = (TASK_CREATE | TASK_UPDATE); +const TASK_DISABLE = 0x8; +const TASK_DONT_ADD_PRINCIPAL_ACE = 0x10; +const TASK_IGNORE_REGISTRATION_TRIGGERS = 0x20; + +var OleAut32 = GM.CreateNativeProxy('OleAut32.dll'); +OleAut32.CreateMethod('SafeArrayAccessData'); +OleAut32.CreateMethod('SafeArrayCreate'); +OleAut32.CreateMethod('SafeArrayCreateVector'); +OleAut32.CreateMethod('SafeArrayPutElement'); +OleAut32.CreateMethod('SafeArrayDestroy'); +OleAut32.CreateMethod('VariantClear'); +OleAut32.CreateMethod('VariantInit'); +OleAut32.CreateMethod('SysAllocString'); + + +function ConvertStringArray(strarr) +{ + if (!strarr || !Array.isArray(strarr)) { return (GM.CreateVariable(24)); } + + var i, tmp; + var v = GM.CreateVariable(24); + v._tmp = []; + var ix = GM.CreateVariable(4); + console.info1('strarr.length=' + strarr.length); + + var safe = OleAut32.SafeArrayCreateVector(VT_BSTR, 0, strarr.length); + if(safe.Val == 0) + { + throw('Error creating SafeArray'); + } + + for(i=0;i