windows xp提权

本地提权
要求:以实现本地低权限账号登录,至少获得一个命令行的shell。

当前几乎所有的系统都是多用户账号,这些账号可以是系统自带的账号,也可以是系统为某些应用程序设置的账号,让该应用程序就以该账号去运行它自己。

多用户账号的目的:实现权限隔离,因为当所有的事情都需要一个账号去做的话就需要给该账号最大权限,该账号的密码一旦失窃,给它人获取到,那么直接会导致服务器给控制。从安全实现的角度上,目标系统应该为不同的服务,不同的程序,不同的人, 提供不同的账号,给某一个账号赋相应足够完成当前本职工作的权限。

需要了解的两个知识点,当前的用户在哪里工作,操作系统会为账号划分为两个空间。

用户空间:用户空间由各个账号去使用,由账号实现各种操作,编辑文档或是安装软件,为系统实现定制化等等,都是在用户空间完成的。

内核空间:操作系统的内核是工作在和用户空间完全隔离的内核空间,内核空间的操作是用户空间的用户无法去进行实现的,不同的操作系统也为内核空间划分了不同的账号。有的账号可以去实现一些很底层很核心的操作,也有个别账号个限制的权限特别小,只能完成有限的一丁点内核相关操作。

系统账号:

  • 用户账号:登录时获取权限令牌,退出登录时销毁令牌,再次登录再次生成令牌,且改令牌是一个随机数,每一次都不同。
  • 服务账号:服务账号不同于用户账号的是无需用户登录已在后台运行服务,会跟随系统的启动而启动账号。对应的服务会在操作系统过程中启动的使用使用对应的账号来启动自己的服务

windows系统默认的几种类型的用户账号:

  • User:由管理员创建的普通用户的账号
  • Administrator:默认的管理员账号,对计算机有管理操作的权限
  • System:较为特殊的账号,来负责启动运行很多系统内核级别的权限,从某种意义上可以认为是windows系统上最高的权限。系统下就有很多目录项或者注册表项是无法使用Administrator去控制的,甚至都不可以删除
  • 值得注意的一点是windows的账号有一个特点就是不包含性,system账号默认对其他账号没有强制的权限,system的权限没有全部包含administrator的权限,但个别权限又高于administrator,同理administrator对于system也是一样,但user账号是完全包含在Administrator里面的。三者关系示意图如下。
    在这里插入图片描述
  • LInux
    • User:除了root以外其他都是又用户账号,所有用户的权限都是由root分配以及修改的
    • Root:最高管理员账号,可以对操作系统进行任何修改,如果和windows系统类比的话,那么root就相当于Administrator+system。

windows xp 提权

net user 用户名 * 修改账号密码(只使用于xp/2003server系统)
net user 用户名 查看当前用户的基本情况

打开任务管理器查看一下进程,发现每个用户都会有自己对应的进程,第一个绿框内的taskmgr.exe是当前administrator用户所打开的任务管理器,第二个绿框explorer.exe则是桌面环境
在这里插入图片描述
at 命令 作用实行系统调度任务,到规定时间让系统自动去执行一个命令。
at 3:52 /interactive cmd 在3:52得时候打开一个cmd,打开方式为交互(这里的时间必须比当前系统的时间提前)
在这里插入图片描述
到指定时间后at命令会调用system权限打开一个新的cmd
在这里插入图片描述
本来想用whoami判断一下权限的,但该命令是在windows server默认带有的,而windows xp 没有,那只能使用其他方法判断,关掉第一个不是由at命令执行的cmd,再次打开任务管理器,查看进程信息,可以看到,由at命令打开的cmd就是system权限的
在这里插入图片描述
基于当前窗口再打开任何其他的进程都是system权限的,利用该system权限的cmd打开一个任务管理器,查看进程,发现有一个explorer的administrator桌面环境
在这里插入图片描述
利用system权限的任务管理器右键该进程杀掉。该进程杀掉后桌面环境什么也没有了
在这里插入图片描述
点击任务管理器的左上角file,新建一个explorer进程
在这里插入图片描述
打开之后,整个桌面环境都是system权限了,点击开始,看一下发现当前用户已经变成system了,接下来执行的命令就不需要以at命令打开的system-cmd去完成了,因为当前的桌面环境已经全部是system权限了
在这里插入图片描述

以上的windows xp提权是通过at命令来完成的,只能针对windows xp或20003server因为较高版本的at命令已经给删除了,任务调度就由其他的命令来完成了。

其他版本的win7或者server2008可以使用sc来创建一个新的服务

sc Create syscmdbinPath= “cmd/K start” type= own type= interact
命令意为:重新启动一个命令行的窗口,服务的类型为own,由启动的账号所有用的服务,服务类型:交互,也就是说启动的cmd窗口是可以看得见的
在这里插入图片描述
命令执行完成运行services.msc查看上图添加的服务,已经存在但没有启动,
在这里插入图片描述
可以通过图形化界面手动去点击打开服务也行,通过命令行界面打开的方法为
sc start syscmd,回车之后会打开一个新的cmd窗口
在这里插入图片描述
通过任务管理器可得知当前的cmd也为system权限
在这里插入图片描述
这个根据服务来提权,因为所有的服务都会默认以system账号去启动,所以可以创建一个服务,这个服务由system账号去执行,启动之后,被启动的进程就工作在system权限之下,所以也具有system权限。

上面两种都是根据系统自带的命令去来完成,当然网上了提供了很多的提权工具,甚至微软官方的也有一款提权工具叫SysInternalSuite
官方链接为
https://technet.microsoft.com/en-us/sysinternals/bb545027
需要的话可以下载了解一下

发布了12 篇原创文章 · 获赞 0 · 访问量 579

猜你喜欢

转载自blog.csdn.net/weixin_44344395/article/details/103432866