首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenProcessToken学习

    要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)还是会遇到“访问拒绝”的错误。什么原因呢?原来在默认的情况下进程的一些访问权限是没有被使能(Enabled)的,所以我们要做的首先是使能这些权限。与此相关的一些API函数有OpenProcessToken、LookupPrivilegevalue、AdjustTokenPrivileges。我们要修改一个进程的访问令牌,首先要获得进程访问令牌的句柄,这可以通过OpenProcessToken得到,函数的原型如下:

    03

    OpenProcessToken函数 何时会失败「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 OpenProcessToken函数的功能是打开一个与一进程相联系的访问令牌(access token),它的原型如下: BOOL OpenProcessToken( HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle ); 如同MSDN上所说,对于Windows XP Professional,如果一台计算机加入到一个工作组中,而且”Force network logons using local accounts to authenticate as Guest”的限制被激活的话,此函数会失败。 另外,如果在调用的时候使用了TOKEN_ALL_ACCESS请求,函数也可能会失败。这是因为TOKEN_ALL_ACCESS可能包含了 TOKEN_ADJUST_SESSIONID(在Winnt.h中被定义)。TOKEN_ADJUST_SESSIONID是一个新的访问mask,是在Windows 2000和Windows XP中新增的。在Windows NT 4.0中,访问令牌的访问控制列表中是没有这个值的。所以,如果一个应用程序是使用新的Platform SDK中的Winnt.h但却在Windows NT 4.0下运行的话,在调用OpenProcessToken()或者OpenThreadToken时指定了TOKEN_ALL_ACCESS的话,函数也会失败(使用GetLastError()返回的是ERROR_ACCESS_DENIED)。

    03

    ATT&CK视角下的红蓝对抗之Windows访问控制模型

    访问控制模型(Access Control Model)是指Windows操作系统关于安全性的一个概念,由访问令牌和安全描述符两部分构成,其中访问令牌是指由当前登录的Windows账号的用户持有,其中会包含了该账号的基础信息,包括用户帐户的标识和特权信息,安全描述符由要访问的对象持有,里面会包含当前对象的安全信息。假设当用户登录时,操作系统会对用户的帐户名和密码进行身份验证, 当登录成功时,系统会自动分配访问令牌(Access Token),访问令牌包含安全标识符,用于标识用户的帐户以及该用户所属的任何组帐户,当我们去创建一个进程也就是访问一个资源(进程资源)的时候,Access Token会被复制一份给进程,进程通过它的创建者所给它设置的安全描述符中的ACL来判断我们是否可以去访问,是否有权限去执行某步操作。

    01
    领券