欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

以System帐户身份运行应用程序的三种办法

SYSTEM帐户是系统中的“太上皇”,其权力甚至凌驾于管理员之上,很多操作系统的组件(例如SMSSwinlogon等),还有许多服务,都以SYSTEM身份来运行。在我们登录系统之前,SYSTEM帐户就已经存在于系统上。在命令提示符下运行PsLoggedOn命令,可以看到SYSTEM帐户已经在本地登录,如下图所示。

 

本文将介绍以SYSTEM身份运行应用程序的方法,在讲述之前,先说说为什么要这样做,原因有二:

不少系统资源只有SYSTEM帐户才有权限访问,例如HKLM\SAM注册表项和系统还原的工作目录C:\System Volume Information等。如果能够获得SYSTEM权限,就可以访问这些原本只向SYSTEM帐户“特供”的系统资源。

如果应用程序可以运行在SYSTEM上下文,则该程序可以在注销以后继续运行,方便我们执行一些特别任务。

本文介绍三种提升进程运行特权的方法,以帮助读者更好地利用SYSTEM帐户(本文假设在Windows XP Professional上进行操作,并假设所涉及的命令工具都安装在默认路径)。

1PsExec命令提升进程特权

我们可以借助PsExec命令工具以SYSTEM身份运行进程。我们已经知道只有SYSTEM帐户才能访问C:\System Volume Information文件夹,所以这里可以借助PsExec命令打开CMD命令提示符窗口,然后在命令提示符下运行DIR命令查看该文件下的内容,步骤如下:

以管理员身份登录系统,打开CMD命令提示符窗口。

在命令提示符下运行以下命令,以SYSTEM帐户身份打开另一个CMD窗口。

PsExec -i -d -s CMD

在新打开的命令提示符窗口下运行以下命令:

DIR /a "C:\System Volume Information"

即可查看C:\System Volume Information文件夹下的内容,如下图所示。这说明当前的命令以SYSTEM帐户身份运行。

        

 

提示 如果对以上结果有所怀疑,可以打开任务管理器,然后在进程标签页查看CMD进程的用户是否为SYSTEM

2AT命令提升进程特权

AT命令启动的计划任务,默认以SYSTEM特权运行。这里举个例子,借助AT命令以SYSTEM特权启动注册表编辑器,以便查看HKLM\SAM注册表项。

以管理员身份登录系统,打开CMD命令提示符窗口。

假设当前系统时间是13:19

然后运行以下命令,让系统在13:24时自动启动注册表编辑器:

at 13:24 /interactive C:\WINDOWS\regedit.exe

命令参数/interactive表示以交互模式启动注册表编辑器,必须加上该命令参数,否则将无法看到启动的注册表编辑器。

到了下午13:24,就会自动用LocalSystem帐户的身份启动注册表编辑器,然后尝试访问HKLM\SAM注册表项,现在应该可以看到其下的内容。

提示

    ⑴ Internet上的某些脚本文件声称可以提升系统权限,其实质就是运用AT命令。

    ⑵ 尽管可以用“Schtasks /ru SYSTEM”命令以SYSTEM特权运行某个进程,但是这时候无法以交互模式访问进程,也就是说我们无法看到以SYSTEM特权运行的进程。

3.把应用程序安装为服务

由于服务可以运行在SYSTEM特权下,所以我们可以将应用程序安装为服务,并且使服务以SYSTEM帐户的身份运行。举个例子,我们可以将注册表编辑器安装为服务,以SYSTEM帐户身份运行。

关于应用程序安装为服务的更详细信息可以参考以下的文章:

http://blogs.itecn.net/blogs/ahpeng/archive/2005/07/01/373.aspx

 

工具箱

PsLoggedOn 查看通过本地登录、或者网络登录的帐户:

http://www.sysinternals.com/Utilities/PsLoggedOn.html

PsExec 能够以指定的帐户身份在本地或者远程运行命令:

http://www.sysinternals.com/Utilities/PsExec.html

已发表 2005年9月13日 6:22 作者 ahpeng

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2005年9月13日 18:53 by Heelen

# re: 以System帐户身份运行应用程序的三种办法

嗯,不错,支持!不过上次我提到过,用at命令来打开regedit,找到HKLM\SAM注册表项主要目的是为了备份用户数据。不过没试过直接备份SAM文件是否也有同样效果。
2005年9月16日 8:14 by ahpeng

# re: 以System帐户身份运行应用程序的三种办法

嗯,HKLM\SAM和%windir%\system32\config\sam完全等效,HKLM\SAM是注册表的逻辑视图(逻辑的),而%windir%\system32\config\sam则是注册表的配置单元(hive)文件(物理的)。

说说您的看法?

(必填) 
必填 
(必填)