Analyzing Privileges Flashcards
SeBackupPrivilege
This grants read access to any file on the file system, regardless of its specified ACL. Attackers can leverage this privilege to copy locked files.
SeDebugPrivilege
This grants the ability to read or write to another process’ private memory space. It allows malware to bypass the security boundaries that typically isolate processes. Practically all malware that performs code injection from user mode relies on enabling this privilege.
SeLoadDriverPrivilege
This grants the ability to load or unload kernel drivers.
SeChangeNotifyPrivilege
This allows the caller to register a callback function that gets executed when specific files and directories change. Attackers can use this to determine immediately when one of their configuration or executable files are removed by antivirus or administrators.
SeShutdownPrivilege
This allows the caller to reboot or shut down the system. Some infections, such as those that modify the MBR don’t activate until the next time the system boots. Thus, you’ll often see malware trying to manually speed up the procedure by invoking a reboot.
Handle
A reference to an open instance of a kernel, object, such as a file, registry key, mutex, process, or thread. Can be used to determine what process was reading or writing a particular file, what process accessed one of the registry run keys, and which process mapped remote file systems. A pointer to a _FILE_OBJECT is placed in a handle table and index is returned.
_EPROCESS.ObjectTable
points to a handle table (_HANDLE_TABLE). Structure has a TableCode that specifies the number of levels in the table and points to the base address of the first level.
_HANDLE_TABLE - TableCode
specifies the number of levels in the table and points to the base address of the first level.
_HANDLE_TABLE - QuotaProcess
A pointer to the process to which the handle table belongs. It can come in handy if you find handle tables using the pool-scanning approach rather than following the ObjectTable pointer.
_HANDLE_TABLE - HandleTableList
A linked list of process handle tables in kernel memory. You can use it to locate other handle tables– potentially even those for processes that have been unlinked from the process list.
_HANDLE_TABLE - HandleCount
The total number of handle table entries that are currently in use by the process. (Removed starting in Winows 8 and Server 2012)
_HANDLE_TABLE_ENTRY
Indexes in _HANDLE_TABLE contain _HANDLE_TABLE_ENTRY structures if they’re in use; otherwise, they’re zeroed out.
_HANDLE_TABLE_ENTRY -> Object
This member points to the _Object_HEADER of the corresponding object. The _EX_FAST_REF is a special data type that combines the reference count information into the least significatn bits of the pointer.
_HANDLE_TABLE_ENTRY -> GrantedAccess
A bit mask that specifies the granted access rights (read, write, delete, synchronize, etc.) that the owning process has obtained for the object.
PID 1544
Process ID for cmd.exe