本地提权
定义:我们已经登录到目标系统的计算机上,拿到目标系统的shell,在这个shell基础之上,进行提权。
现在的操作系统都是多用户操作系统,一个操作系统可以设置多个用户账号,这些账号可以是用户账号,也可以是为某个应用程序专门设置的应用程序账号。这样做的目的是进行不同账号之间权限的隔离,因为所有的事情都由一个账号去做的话,必须赋予该账号最大的权限,一旦该账号密码失窃,对方就会直接控制我们的服务器。所以每个账号我们都应该赋予它完成本职工作的足够权限。这样即使对方拿到账号密码,距离完全控制目标操作系统还相距甚远。
操作系统还有用户空间和内核空间,用户账号都工作在用户空间中;出于安全考虑,操作系统在内核空间也划分了不同的账号,不同的账号它们的权限也是不同的。
默认操作系统中有一个最高权限的管理员账号,在Windows中为Administrator,在Linux中为root。我们可以用最高权限的账号,生成很多的用户账号和应用程序账号,并对不同的账号赋予不同的权限。只有当用户登录进操作系统时,操作系统会根据管理员设置的权利项,把相应的权限赋予给当前登录账号,生成一个实时的令牌文件,这个令牌上绑定了该用户具有什么样的权限、可以做哪些操作。这个令牌在用户登录时绑定到用户登录的会话上,当用户退出或注销时,这个令牌会失效,下一次再生成一个唯一的令牌,每次生成令牌都有随机数在里面,因此同一用户的令牌是不完全一样的。
服务账号跟随操作系统启动而启动,无需用户登录,已在后台启动服务。
不同操作系统间的默认用户情况:
Windows系统用户类型
- user:隶属于users组,这个组的用户无法进行有意或无意的改动,因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序,users组是最安全的组,因为分配给改组的默认权限不允许成员修改操作系统的设置或用户资料;users可以创建本地组,但只能修改自己创建的本地组。users可以关闭工作站,但不能关闭服务器。
- Administrator: