进程权限
内存(代码) CPU
1 DOS 物理内存 同一等级 不安全的
1 系统不稳定
2 毫无保密性
2 虚拟内存
xp之后出现虚拟内存 杜绝了修改操作系统代码的可能
出现进程 完全封闭的 (不符合的因为有的需要关联 比如记事本和输入法的关联.....)开放了一些接口
1 你必须拥有一点的权限(用户富裕的权限)
但不是很安全 特别注意 Xp
管理员权限 所有权限 打开一个进程 (拥有管理员权限)-》子进程(继承管理员权限)
网页木马 IE(管理员权限)-》插件功能(继承管理员权限)
用户权限 普通权限
CreateProcess 打开一个子进程 父进程拥有子进程的访问权限
那么我写一个盗号的木马 -》CreateProcess("QQ") 就可以拿到接口
3 UAC 权限 带过滤表的权限
在xp时代,系统中只存在一个操作权限,在Vista后,增加了筛选的权限令牌(UAC)
如果要求进程提升权限,那么必须在进程边界上进行提升,进程边界的是在进程启动之时,来提升权限
对进程进行提权操作都是单次的
以管理员身份运行
右键-》以管理员身份运行可以使进程提升为管理员权限
通过 RT_MANIFEST提升权限
连接器 清单 uac执行级别
requireAdministrator 应用程序必须以管理员权限启动,否则不会运行
highestAvailable 应用程序以当前可用的最权限运行,如果用户使用一个管理员账户登陆,会出现要求批准提升权限的一个对话框。如果用户使用一个普通用户账户登陆,应用程序就用这些标准权限来启动(不会提升用户提升权限)
手动提升权限 给启动软件 提升权限
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize; //长度
ULONG fMask; //标示
HWND hwnd; //窗口句柄
LPCTSTR lpVerb; //执行操作
LPCTSTR lpFile; //执行的文件路径
LPCTSTR lpParameters;//参数
LPCTSTR lpDirectory;//目录
int nShow;//显示方式
HINSTANCE hInstApp;//返回的HINSTANCE
LPVOID lpIDList;//特殊标识符
LPCTSTR lpClass;//指明GUID或类别名
HKEY hkeyClass;//获得已在系统注册的文件类型
DWORD dwHotKey;//热键
union {
HANDLE hIcon;//图标
HANDLE hMonitor;//显示器的HANDLE
} DUMMYUNIONNAME;
HANDLE hProcess;//新启动程序的句柄
} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
权限的继承
管理员(程序) -》CreateProcess ->继承(提升后的权限)
UAC(程序)-》》CreateProcess(需要提权)->失败
ERROR_ELEVATION_REQUIRED 返回这个错误
用户分级
超级管理员 Admin(名称固定) 能添加管理员
管理员 增删改查 系统中的任意东西
用户 只能修改特定的东西(管理员可以设置)
多用户
A a不能操作b
B ....
临时用户 Guest(权限组)
windows喜欢让我们使用用户,但是有的删除不了。所以我需要让超级管理员把我的用户提升为管理权
用户 -> 只能操作自己的文件 -> 无权操作系统文件(非常安全)
如果没有权限的时候(提升权限)
用户->提升
管理员->无需提升 静默的做很多事情(删除系统文件电脑就不安全) UAC(权限令牌) 用户账户控制设置 通知.....
进程设计的时候->权限继承的机制
A程序(管理员)->A子进程(管理员(有限)权限)
再次提权
用户->A(管理员)->A子进程(管理员)
XP
一次授权 全部授权
win7
程序(触发UAC)->加载dll->
有办法绕过
内存(代码) CPU
1 DOS 物理内存 同一等级 不安全的
1 系统不稳定
2 毫无保密性
2 虚拟内存
xp之后出现虚拟内存 杜绝了修改操作系统代码的可能
出现进程 完全封闭的 (不符合的因为有的需要关联 比如记事本和输入法的关联.....)开放了一些接口
1 你必须拥有一点的权限(用户富裕的权限)
但不是很安全 特别注意 Xp
管理员权限 所有权限 打开一个进程 (拥有管理员权限)-》子进程(继承管理员权限)
网页木马 IE(管理员权限)-》插件功能(继承管理员权限)
用户权限 普通权限
CreateProcess 打开一个子进程 父进程拥有子进程的访问权限
那么我写一个盗号的木马 -》CreateProcess("QQ") 就可以拿到接口
3 UAC 权限 带过滤表的权限
在xp时代,系统中只存在一个操作权限,在Vista后,增加了筛选的权限令牌(UAC)
如果要求进程提升权限,那么必须在进程边界上进行提升,进程边界的是在进程启动之时,来提升权限
对进程进行提权操作都是单次的
以管理员身份运行
右键-》以管理员身份运行可以使进程提升为管理员权限
通过 RT_MANIFEST提升权限
连接器 清单 uac执行级别
requireAdministrator 应用程序必须以管理员权限启动,否则不会运行
highestAvailable 应用程序以当前可用的最权限运行,如果用户使用一个管理员账户登陆,会出现要求批准提升权限的一个对话框。如果用户使用一个普通用户账户登陆,应用程序就用这些标准权限来启动(不会提升用户提升权限)
手动提升权限 给启动软件 提升权限
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize; //长度
ULONG fMask; //标示
HWND hwnd; //窗口句柄
LPCTSTR lpVerb; //执行操作
LPCTSTR lpFile; //执行的文件路径
LPCTSTR lpParameters;//参数
LPCTSTR lpDirectory;//目录
int nShow;//显示方式
HINSTANCE hInstApp;//返回的HINSTANCE
LPVOID lpIDList;//特殊标识符
LPCTSTR lpClass;//指明GUID或类别名
HKEY hkeyClass;//获得已在系统注册的文件类型
DWORD dwHotKey;//热键
union {
HANDLE hIcon;//图标
HANDLE hMonitor;//显示器的HANDLE
} DUMMYUNIONNAME;
HANDLE hProcess;//新启动程序的句柄
} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
权限的继承
管理员(程序) -》CreateProcess ->继承(提升后的权限)
UAC(程序)-》》CreateProcess(需要提权)->失败
ERROR_ELEVATION_REQUIRED 返回这个错误
用户分级
超级管理员 Admin(名称固定) 能添加管理员
管理员 增删改查 系统中的任意东西
用户 只能修改特定的东西(管理员可以设置)
多用户
A a不能操作b
B ....
临时用户 Guest(权限组)
windows喜欢让我们使用用户,但是有的删除不了。所以我需要让超级管理员把我的用户提升为管理权
用户 -> 只能操作自己的文件 -> 无权操作系统文件(非常安全)
如果没有权限的时候(提升权限)
用户->提升
管理员->无需提升 静默的做很多事情(删除系统文件电脑就不安全) UAC(权限令牌) 用户账户控制设置 通知.....
进程设计的时候->权限继承的机制
A程序(管理员)->A子进程(管理员(有限)权限)
再次提权
用户->A(管理员)->A子进程(管理员)
XP
一次授权 全部授权
win7
程序(触发UAC)->加载dll->
有办法绕过