Windows SID

在win7 命令行下输入whoami/user获得当前用户SID信息


typedef struct _SID {
   BYTE  Revision;
   BYTE  SubAuthorityCount;
   SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
   DWORD SubAuthority[ANYSIZE_ARRAY];
} SID, *PISID;

通过代码获得SID

HANDLE hProcess = GetCurrentProcess();
HANDLE hToken = NULL;
if (OpenProcessToken(hProcess, TOKEN_READ, &hToken))
{
	DWORD dwNeedLen = 0;
	if(GetTokenInformation(hToken, TokenUser, NULL, 0, &dwNeedLen) || GetLastError() == ERROR_INSUFFICIENT_BUFFER)
	{
		PBYTE buffer = new BYTE[dwNeedLen];
		if (buffer != NULL)
		{
			TOKEN_USER* pTokenUser = (TOKEN_USER*)buffer;
			GetTokenInformation(hToken, TokenUser, pTokenUser, dwNeedLen, &dwNeedLen);
			PISID sid = (PISID)pTokenUser->User.Sid;	//得到SID
			delete[] buffer;
		}
	}
	CloseHandle(hToken);
}
CloseHandle(hProcess);
其中sid指向的内存是这样的


这段内存就对应着上面的结构体

01 05 00 00 00 00 00 05 15 00 00 00 6f e0 5e a8 30 b9 bd 86 0b c3 b7 50 f4 01 00 00

其中Revision == 01

SubAuthorityCount ==05  //表示以下有5个小端字节序数。

IdentifierAuthority == 00 00 00 00 00 05 —-> 5 //表示标识符颁发机构为NT Authority。

(

可能的标识符颁发机构有:

0 – Null Authority

1 – World Authority

2 – Local Authority

3 – Creator Authority

4 – Non-unique Authority

5 – NT Authority

9 – Resource Manager Authority

)

SubAuthority包含5个小端字节序数。

分别为:

15 00 00 00 -->21 //21表明SID由一个域控制器或者一台单机颁发。随后的一长串数字(1683771068-12213551888-624655398)就是颁发SID的那个域或机器的SA。
6f e0 5e a8  -->2824790127
30 b9 bd 86 -->2260580656
0b c3 b7 50 -->1354220299
f4 01 00 00  -->500

将以上字符串串联起来为:S-1-5-21-2824790127-2260580656-1354220299-500


-----------------------------------------------------------------

另附

特权名                          描述
=============================== ==========================
SeIncreaseQuotaPrivilege        为进程调整内存配额
SeSecurityPrivilege             管理审核和安全日志
SeTakeOwnershipPrivilege        取得文件或其他对象的所有权
SeLoadDriverPrivilege           加载和卸载设备驱动程序
SeSystemProfilePrivilege        配置文件系统性能
SeSystemtimePrivilege           更改系统时间
SeProfileSingleProcessPrivilege 配置文件单个进程
SeIncreaseBasePriorityPrivilege 提高计划优先级
SeCreatePagefilePrivilege       创建一个页面文件
SeBackupPrivilege               备份文件和目录
SeRestorePrivilege              还原文件和目录
SeShutdownPrivilege             关闭系统
SeDebugPrivilege                调试程序
SeSystemEnvironmentPrivilege    修改固件环境值
SeChangeNotifyPrivilege         绕过遍历检查
SeRemoteShutdownPrivilege       从远程系统强制关机
SeUndockPrivilege               从扩展坞上取下计算机
SeManageVolumePrivilege         执行卷维护任务
SeImpersonatePrivilege          身份验证后模拟客户端
SeCreateGlobalPrivilege         创建全局对象
SeIncreaseWorkingSetPrivilege   增加进程工作集
SeTimeZonePrivilege             更改时区
SeCreateSymbolicLinkPrivilege   创建符号链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值