1. Does the filtered token nonsense only occur with INTERACTIVE
Pseudo-Admin logins to the local machine? In other words if I start a
process form a remote Win2k box on a Domain Joined Vista box, it will
run as what ever I tell it to run as (provided it has access) and UAC
will be ignored even when I perform privileged operations such as
telling it to reboot or clearing the security log?
First, to be clear, using Remote Desktop to connect to a computer behaves
exactly as if you were sitting in front of the remote terminal with respect
to UAC (I'm sure you already know this, but I want to add this here just for
the sake of completeness
.
Before moving on to how it works via network-based authentication, I would
like to clarify how UAC works when logged in interactively ...
Instead of thinking of the admin accounts as "pseudo admin", think of them
as "admin with confirmation". The admin accounts have all the privileges that
they would have in XP ... the only difference is, in Vista, only the
processes you allow can use the admin privileges.
Processes designed for Vista will automatically ask for this privilege when
they run if they need it (Windows needs your permission to continue, the UAC
dialog). Or, to force a program to have admin power, you can right-click it
and click run as administrator.
The point I am getting at, is when you are logged in as an administrator,
Run As Administrator does not run the program inside of another user profile.
It runs inside of YOUR user profile.
The only time impersonation is done is when you are running inside of a
standard user account or you have changed the default UAC settings. In this
case, a program that prompts for permission or right-clicking and clicking
Run As Administrator will prompt for an admin to log in in order to continue.
In this case - where it prompts for a log in - the program will be running
inside of the user profile of the admin who authenticated with the dialog.
To sum it up - If it asks for CONSENT (Continue or Cancel) it runs inside of
your account - If it asks for CREDENTIALS (log in to continue) it runs inside
of whatever account authenticates with the dialog.
Now, on to how it behaves over the network ...
When you authenticate with a Windows Vista machine, everything works exactly
as it did in XP ... (drumroll) ... EXCEPT with the case of local
administrators. In Vista, by default, local administrators CANNOT use their
admin powers over the network. DOMAIN ADMINISTRATORS, however, are not
limited at all, and work exactly like they did in XP.
Over the network, everything runs under the account that you are
authenticated with; however, with local administrators, by default, they are
not allowed to use their admin powers. Everything else works as expected.
2. When I choose "Rus as Administrator", you've already said the
Administrator profile will NOT be used. My question is, which user is
running this process; is it the Pseudo Admin, MACHINE\Gerry, or is it
the real (disabled) built-in MACHINE\Administrator account?
It is MACHINE\Gerry, the administrator.
The only time "Run As Administrator" runs the process under a different
account is if you are logged in as a standard user or are using non-default
UAC settings.
Regardless of what happens, processes will always, *ALWAYS* run inside the
account of whoever authenticated. Regardless of if its over a network or
interactive. If you don't authenticate when a process runs, it is running
under your account. If someone else authenticates in order to get the program
to run, then it runs under THEIR account.
In the case of #1, I did quite a bit of testing today and nothing
triggered UAC. Interesting as hackers will probably use the same
technique, but also good because easier to fix 1000 hacked machines.
Could you be more specific? UAC prevents programs from doing anything
admin-related. If something doesn't prompt for UAC, it CANNOT do an
admin-related task.
In the case of #2, I'd be very concerned if the genuine local
Administrator profile was NOT being used, which you appear to be saying
it won't. Any corporate would need to be absolutely clear which profile
was going to be loaded by which remote process for any kind of
installation, and also they'd need to know that profile will still exist
in three years time when you need to uninstall stuff.
There is no hocus-pocus going on, lol... the account things are running
under is the one you authenticate with. This always holds true.
In my last build,
I used the build-in Administrator account for this and the All Users
profile. I like the security of it, because it can only access LOCAL
resources.
- JB