[Owasp-dotnet] Act as part of the operating system

Andrew van der Stock vanderaj at greebo.net
Tue Oct 4 06:34:26 EDT 2005


"Act as part of the operating system" SeTcbPrivilege allows complete  
and utter compromise of the kernel as it explicitly violates the  
trusted computing base (TCB).

It allows you to:

a) read or write to any physical (=real untranslated) page or logical  
page from any process
b) set hardware break points
c) install new kernel drivers
d) interact directly with hardware and the HAL
e) reboot the system in controlled and uncontrolled ways
f) hook any existing sys call
g) DLL_PROCESS_ATTACH...
h) ... your imagination goes here ...

The usual reason for wanting this privilege is a complete lack of  
understanding why a process would actually need it. I remove it from  
anything which requests it, and for the most part they seem to work  
afterwards.

Typically, the programs I have come across which want it, implement  
Unix-like setuid() handling or least common denominator  password  
synchronization, as it allows you to replace your token with another  
token. Previous to Windows XP / 2003, you used to need this  
privilege, but no more, and this is the problem - software is dumb  
and they want to run on 2000 and 2003. 2003 does not require you to  
hold this privilege to impersonate other users, so basically older  
Unix-like software is usually at fault.

There are better ways of addressing this:

Service A - LOCALSERVICE takes calls from untrusted sources, such as  
users
Service B - LOCALSYSTEM (or whatever you need) handles just the  
privileged activities

Service A calls Service B, and B ignores users. That way, users  
cannot call highly privileged software.

thanks,
Andrew

On 04/10/2005, at 8:42 AM, Dinis Cruz wrote:

> Does anybody here really knows what are the security implications  
> of the
> "Act as part of the operating system" privilege?





More information about the Owasp-dotnet mailing list