Windows与Linux本地用户提权分析

[复制链接]
查看1186 | 回复0 | 2012-4-1 19:27:04 | 显示全部楼层 |阅读模式
  无论是Windows系统还是Linux系统都是基于权限控制的,其严格的用户等级和权限是系统安全的有力保证。这么严密的用户权限是否不可逾越呢?下面笔者反其道而行之进行Windows及Linux下的提权测试。

  一、windows下获取至高权限

  大家知道,在Windows系统中SYSTEM是至高无上的超级管理员帐户。默认情况下,我们无法直接在登录对话框上以SYSTEM帐户的身份登录到Windows桌面环境。实际上SYSTEM帐户早就已经“盘踞”在系统中了。想想也是,连负责用户验证的Winlogon、Lsass等进程都是以SYSTEM身份运行的,谁还能有资格检验SYSTEM呢?既然SYSTEM帐户早就已经出现在系统中,所以只需以SYSTEM帐户的身份启动Windows的Shell程序Explorer,就相当于用SYSTEM身份登录Windows了。

  1、获得特权

  打开命令提示符,输入命令“taskkill/f/imexplorer.exe”并回车,这个命令是结束当前账户explorer即图形用户界面的Shell。然后在命令提示符下继续输入“attime/interactive%systemroot%explorer.exe”并回车。其中“time”为当前系统时间稍后的一个时间,比如间隔一秒,当前系统时间可以在命令提示符下输入“time”命令获得。一秒钟后会重新加载用户配置,以SYSTEM身份启动Windows的shell进程Explorer.exe。

  

Windows

Windows


  2、身份验证

  如何知道exeplorer.exe是以system权限运行呢?我通过“开始”菜单可以看到最上面显示的是system账户。另外,打开注册表编辑器,只要证明HKCU就是HKUS-1-5-18的链接就可以了(S-1-5-18就是SYSTEM帐户的SID)。证明方法很简单:在HKCU下随便新建一个Test子项,然后刷新,再看看HKUS-1-5-18下是否同步出现了Test子项,如果是,就说明系统当前加载的就是SYSTEM帐户的用户配置单元。当然最简单的是在命令提示符号下输入命令“whoami”进行验证,所示显示为“NTAUTHORITYSYSTEM”这就证明当前exeplorer.exe是System权限。

  

exeplorer

exeplorer


  3、大行其道

  System权限的Explorer.exe在实际中有什么用呢?下面笔者随意列举几个使用实例。

  (1).注册表访问

  我们知道在非SYSTEM权限下,用户是没有权限访问某些注册表项的,比如“HKEY_LOCAL_MACHINESAM”、“HKEY_LOCAL_MACHINESECURITY”等。这些项记录的是系统的核心数据,某些病毒或者木马会光顾这里。比如在SAM项目下建立具有管理员权限的隐藏账户,这样的帐户在命令及“本地用户和组”管理器(lusrmgr.msc)中是无法看到的,造成了很大的安全隐患。在“SYSTEM”权限下,注册表的访问就没有任何障碍,我们打开注册表定位到“HKEY_LOCAL_MACHINE
SAMSAMDomainsAccount”项下所有的隐藏帐户就都暴露了。

  

SYSTEM

SYSTEM


  (2).访问系统还原文件

  系统还原是windows系统的一种自我保护措施,它在每个磁盘根目录下建立“SystemColumeInformation”文件夹,保存一些系统信息以备系统恢复是使用。该文件具有系统、隐藏属性管理员用户是没有操作权限的。正因为如此,它成了病毒、木马的栖身之地,我们就可以在System权限下进入该文件夹删除病毒。当然,你也可以关闭“系统还原”预防此类病毒,但这样未免显得被动,有些因噎废食。

  

System权限

System权限


  (3).更换系统文件

  Windows系统为系统文件做了保护机制,一般情况下你是不可能更换系统文件的,因为系统中都有系统文件的备份,它存在于c:WINDOWSsystem32dllcache(假设你的系统装在C盘)。当你更换了系统文件后,系统自动就会从这个目录中恢复相应的系统文件。当目录中没有相应的系统文件的时候会弹出提示让你插入安装盘。

  在实际应用中如果有时你需要Diy自己的系统修改一些系统文件,或者用高版本的系统文件更换低版本的系统文件,让系统功能提升。比如WindowXP系统只支持一个用户远程登录,如果你要让它支持多用户的远程登录。要用Windows2003的远程登录文件替换WindowXP的相应文件。这在非SYSTEM权限下很难实现,但是在SYSTEM权限下就可以很容易实现。

  从Windows2003的系统中提取termsrv.dll文件,用该文件替换WindowsXP的C:WINDOWSsystem32下的同名文件。(对于WindowsXPSP2还必须替换C:WINDOWS$NtServicePackUninstall$和C:WINDOWSServicePackFilesi386目录下的同名文件)。再进行相应的系统设置即可让WindowsXP支持多用户远程登录。

  (4).手工杀毒

  用户在使用电脑的过程中一般都是用Administrator或者其它的管理员用户登录的,中毒或者中马后,病毒、木马大都是以管理员权限运行的。我们在系统中毒后一般都是用杀毒软件来杀毒,如果杀软瘫痪了,或者杀毒软件只能查出来,但无法清除,这时候就只能赤膊上阵,手工杀毒了。

  在Adinistrator权限下,如果手工查杀对于有些病毒无能为力,一般要启动到安全模式下,有时就算到了安全模式下也无法清除干净。如果以SYSTEM权限登录,查杀病毒就容易得多。

  以一次手工杀毒为例,(为了截图在虚拟机上模拟了前段时间的一次手工杀毒。)打“Windows任务管理器”,发现有个可疑进程“86a01.exe”,在Administrator管理员下无法结束进程见图5,当然更无法删除在系统目录下的病毒原文件“86a01.exe”。以System权限登录系统,进程被顺利结束见图,然后删除病毒原文件,清除注册表中的相关选项,病毒被彻底清理出系统。
  

彻底清理

彻底清理


  

清除注册表

清除注册表


  System权限是比Administrator权限还高的系统最高权限,利用它可以完成很多常规情况下无法完成的任务。当然,最大的权限也就意味着更大的危险,不要因为手握“尚方宝剑”就滥杀无辜。
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则