From 6d55e379195316e399f7be148a6a569f625feae5 Mon Sep 17 00:00:00 2001 From: Gerardo Grignoli Date: Tue, 8 Nov 2022 19:11:00 -0300 Subject: [PATCH] docs: elevation in new window --- docs/docs/credentials-cache.md | 4 +- docs/docs/intro.md | 9 +- docs/docs/security.md | 29 +- docs/docs/tips/elevation-in-new-window.md | 33 + ...NewWindow.CloseBehaviour.KeepShellOpen.png | Bin 0 -> 21831 bytes ...wWindow.CloseBehaviour.PressKeyToClose.png | Bin 0 -> 25629 bytes yarn.lock | 2660 +++++++---------- 7 files changed, 1158 insertions(+), 1577 deletions(-) create mode 100644 docs/docs/tips/elevation-in-new-window.md create mode 100644 docs/static/img/NewWindow.CloseBehaviour.KeepShellOpen.png create mode 100644 docs/static/img/NewWindow.CloseBehaviour.PressKeyToClose.png diff --git a/docs/docs/credentials-cache.md b/docs/docs/credentials-cache.md index e9c92746..31f9411f 100644 --- a/docs/docs/credentials-cache.md +++ b/docs/docs/credentials-cache.md @@ -40,7 +40,9 @@ gsudo command3 # Elevation without popup gsudo cache off # (or gsudo -k) Ends the cache session. Next elevation will show a UAC popup. ``` -- **Disabled:** Every elevation request shows a UAC popup. Attempts to start a Cache Session throws error. +- **Disabled:** Every elevation request shows a UAC popup. Attempts to start a Cache Session throws error. + +--- Use `gsudo cache on|off` to start/stop a cache session manually (i.e. allow/disallow elevation of the current process with no additional UAC popups). diff --git a/docs/docs/intro.md b/docs/docs/intro.md index f2be7eb5..507c8f5d 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -20,15 +20,14 @@ It is designed so it is easy to install, easy to use, and feels familiar with ot ### Features - It is a proper `sudo for windows`: - - Executes the desired command with elevated permissions. + - Executes the desired command with elevated permissions (or as another user). - Elevated commands are shown in the current user-level console. No new window. (Unless you specify `-n`) - Full console support: Colors, full keyboard, auto-completion, etc. - Supports I/O redirection. - Handles Ctrl-C properly - Supports worldwide encodings & codepages - Uses the current shell to interpet the command to elevate: - - `gsudo {command}` uses a new instance of the invoking shell to elevate the command. - + - `gsudo {command}` uses a new instance of the invoking shell to elevate the command. For example, in PowerShell `gsudo mkdir x` becames `pwsh -c "mkdir x"`, while in CMD it becames `cmd /c "mkdir x"`. - Supported Shells: - [CMD](usage) @@ -38,9 +37,7 @@ It is designed so it is easy to install, easy to use, and feels familiar with ot - Yori - Take Command - NuShell - -- If no command is specified, it starts an elevated shell. - +- If no command is specified, it starts an elevated shell. - [Credentials cache](#credentials-cache): `gsudo` can elevate many times showing only one UAC pop-up if the user opts-in to enable the cache. - Supports being used on scripts: - Returns the command exit code (`%errorlevel%`). If `gsudo` fails to elevate, the exit code will be 999. diff --git a/docs/docs/security.md b/docs/docs/security.md index cd6ca567..fde17754 100644 --- a/docs/docs/security.md +++ b/docs/docs/security.md @@ -51,40 +51,31 @@ And, in my opinion, it's not doing the best possible job: - You waste important time by switching between elevated and unelevated windows. You must manually carry your command and context to the elevated window, each time, back and forth. - ... or you suffer from "elevation fatigue". For example, you elevate a whole console beforehand, and you do all your stuff there, likely running non-admin or untrusted stuff as admin. -**In conclusion:** Same-desktop UAC is a vulnerable convenience feature, and so is `gsudo`. In any case, **the only thing that protects you from malware is you and your AntiVirus.**. +**In conclusion:** + +- Same-desktop UAC is a vulnerable convenience feature, and so is `gsudo`. In any case, **the only thing that protects you from malware is you and your Antivirus.**. ## What are the risks of running gsudo? -gsudo could be used as an attack vector for escalation of privileges: +gsudo could be used as an attack vector for escalation of privileges. Using antivirus software and avoiding running untrusted software -- **Abusing an elevation made with gsudo:** A medium integrity process could drive the gsudo-elevated process: +- **Abusing an elevation made with gsudo:** + + A medium integrity process could drive the gsudo-elevated process. When gsudo elevates **in the same console**, it creates a connection between a medium and a high integrity process. A malicious process (at medium integrity) can then drive the medium integrity console: sending keystrokes to the high integrity app, or scrapping its screen. In my opinion, this is a mild risk that you are already exposed when using UAC in default mode. In the end, your only protection is your AV. Ways to avoid this risk: - - Elevating on a new console, using `-n`/`--new`. - - Proposed new feature `ForceNewWindow`, to add a config setting where all elevations are done in new windows, so no isolation is broken. Tracked here: [#97](https://github.com/gerardog/gsudo/issues/97) (and up for grabs) - - Experimental: `SecurityEnforceUacIsolation` + - Elevating on a new console either per-command (using `-n`/`--new`) or force it using [config setting `NewWindow.Force`](tips/elevation-in-new-window.md). + - Experimental setting `SecurityEnforceUacIsolation`: makes the elevated command run redirected, w/input redirected to `NULL`. Hence it will be non-interactive, so nobody will be able to drive it. Enable with `gsudo config SecurityEnforceUacIsolation true` -- **Abusing an active `gsudo Credentials Cache` to elevate a process silently**: +- **Abusing an active `gsudo's Credentials Cache` to elevate a process silently**: The `Credentials Cache` allows many elevations with only one UAC popup. But there is a reason why the cache is disabled by default. When the cache is active, it allows elevation from one invoker process and its children, which are running at the unprotected medium integrity level. A malicious process also at medium level can inject it's code into an allowed process and make it call gsudo to request elevation silently. You avoid this risk by default, by not enabling the credentials cache. - -**TLDR;** Both `UAC` and `gsudo` are vulnerable convenience features. Both rely on your ability to avoid malware, or your antivirus ability to stop it. - - \ No newline at end of file diff --git a/docs/docs/tips/elevation-in-new-window.md b/docs/docs/tips/elevation-in-new-window.md new file mode 100644 index 00000000..d49cf784 --- /dev/null +++ b/docs/docs/tips/elevation-in-new-window.md @@ -0,0 +1,33 @@ +--- +#sidebar_position: 6 +title: Force elevation in new window +#hide_title: true +--- + +As mentioned in [Security Considerations](../security.md#what-are-the-risks-of-running-gsudo), elevation in the same console exposes a mild risk. You can avoid it altogether by elevating in a new console window, for example by adding the `--new` or `-n` switch. + +In gsudo v2, a new setting was introduced to force elevations in a new window. To enable it simply run: + +``` powershell +gsudo config NewWindow.Force true +``` + +The problem with this approach is that some elevations complete too quickly and the new window may close abruptly. So to leave time to verify the window result, combine it with one of the following new switches: + +- `--KeepWindow`: After running a command in a new console, ask for keypress before closing the console/window. +- `--KeepShell`: After running a command, keep the elevated shell open. + +You set one of those switches permanently by using the following setting: + +``` powershell +gsudo config NewWindow.CloseBehaviour [ KeepShellOpen | PressKeyToClose | OsDefault ] +``` + +Valid values are: + - **KeepShellOpen**: Forces `--keepShell`. Keep the elevated shell open after running the command. + ![KeepShellOpen](../static/img/../../../static/img/NewWindow.CloseBehaviour.KeepShellOpen.png) + + - **PressKeyToClose**: Forces `--keepWindow`. Asks for a keypress before closing the window. + ![PressKeyToClose](../static/img/../../../static/img/NewWindow.CloseBehaviour.PressKeyToClose.png) + + - **OsDefault**: (default) Launch the command and let the operating system close it or keep it according to the system defaults (typically the window will close). diff --git a/docs/static/img/NewWindow.CloseBehaviour.KeepShellOpen.png b/docs/static/img/NewWindow.CloseBehaviour.KeepShellOpen.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a3d0d179053c52f876f6df1c2dc3eeaf3639f3 GIT binary patch literal 21831 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 JUjepz_D>z)U~K>Z literal 0 HcmV?d00001 diff --git a/docs/static/img/NewWindow.CloseBehaviour.PressKeyToClose.png b/docs/static/img/NewWindow.CloseBehaviour.PressKeyToClose.png new file mode 100644 index 0000000000000000000000000000000000000000..ba08d0f4d56bbac103e041534a75228c414c6ac7 GIT binary patch literal 25629 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 WXTR^RgxP*=c1yqgBanZ`ul^6KF1