: i7 A, o6 u9 r) p' o& P' I0 q/ _ 事情的起源是在某种情况下我们不改动Administrator密码,但是却可以提升本地受限用户的权限。这样做的好处是可以自己装一些常用的软件,不用被迫使用公司的IT部门统一安装的垃圾软件,追求一点自由。
" }- m- K/ J8 \ 为了做这个测试,首先我们创建一个受限用户。因为这是 Newsmth 论坛的 Bigsk 朋友托我做的研究,我们就把这个测试帐号叫做"Smth Bigsk"。如果您的帐号已经是受限用户,那么可以忽略准备帐户这个部分。
+ s! E1 J: }/ D9 W3 T
Part A. 准备帐户。
1 U7 g7 l" y4 m6 U* F/ w; Y [建立帐户] 开始--->控制面板--->用户帐户--->创建一个新帐户--->输入名称: Smth Bigsk--->帐户类型: 受限--->创建帐户。
$ F9 x. Z: c4 E* h" t, D
[检查档案] 双击我的电脑--->输入地址 %USERPROFILE%--->点击目录向上。这时还没出现刚创建的用户个人档案,因为这个帐户从来没登录过。
! G* z8 G. t* }/ T, v8 z/ C [建立管理] 在屏幕空白处点右键--->新建--->快捷方式--->项目的位置写 %SystemRoot%\system32\control.exe userpasswords2--->快捷方式的名称写 UserPwd2--->最后给这个快捷方式换个好看的图标。
: C* f+ [2 c& u. V+ Q4 Q [密码管理] 双击刚才建立的UserPwd2--->选中 Smth Bigsk 用户--->选重设密码-->在新密码和确认新密码里写 123456,这个密码比较简单。
- B# ^# G- T3 u
[创建档案] 进入 Cmd 命令行--->运行 runas /user:"Smth Bigsk" Cmd,这时候提示输入密码--->输入正确的密码--->系统开启另一个 Cmd 进程。
4 x" n: ?4 B4 F5 P& d4 O) l7 K
[复查档案] 回到检查档案所在的窗口,刷新一下,可以看到对应的用户目录。之所以这么做,是不想注销再登录,同时总结一些命令行技巧。
7 \- a k. R J: v+ I* u
5 ?2 G0 j# j; \; K" G% ]
Part B. 准备工具。
$ L6 B5 Y1 z/ B$ E+ j 现在去找一下各种系统维护光盘或者软盘,我们的要求是要么可以启动WinPE 或 ERD,要么可以启动 DOS7.1 并且加载 NTFS Pro。很多光盘都提供了这些内容,如果您不知道去哪里下载,请到伯乐论坛网络资源区讨论,http://bbs.boletips.com/blbbs/forumdisplay.php?fid=24
& ?0 Y$ w" U6 _2 J
Part C. 替换文件。
! I/ X( _9 Y3 Q+ I6 d6 M! O
现在启动 WinPE 或 ERD,或者 DOS7.1 并且加载 NTFS Pro,这样做的目的是让你可以在系统非运行期间能访问 NTFS 分区的内容。你可以把系统盘的 \Windows\System32\config 目录下 SAM 文件拷出来,因为在正常的系统运行期间这个文件是无法拷贝的。这是用于LC4强行破解密码,但是需要很长时间,而且技术含量不是太高,本人不推荐这种做法。
9 h; g( B+ d. D, b
现在介绍的是屏幕保护替换法。进到系统盘的 \Windows\System32 目录,ren logon.scr logon.sco ,然后 copy cmd.exe logon.scr,重启机器。这么做的依据是开机不登录屏幕保护通常具备Administrator的权限。
5 K! x3 X, F* t5 u* y
Part D. 惨遭封杀。
; G* F/ S# y8 I 重新启动后,不要登录到系统的任何帐户,就放在那里干等大约十分钟,你就会看到系统弹出一个命令行,这就是被我们替换了的屏幕保护程序,它实际上是具备 Administtrator 权限的 Shell 外壳。不论是 Windows还是 Unix/Linux,破解系统的核心思想通常都是获取 Root Shell。这个方法成功的前提是WinXp默认十分钟出屏保,如果屏保被禁用则此法无效,如果被管理员修改过屏保等待时间,你可能需要等待更长时间。
9 F& N) a" j, V# R
在命令行里直接输入 net localgroup Administrators 可以显示管理员组成员,输入 net localgroup Administrators "Smth Bigsk" /add 按道理是把用户"Smth Bigsk"添加为本地管理员,由于这个是Win2k时代的愚蠢Bug,微软在WinXp已经限制了屏幕保护不能写入 localgroup 数据。那么,我们是否就此放弃了呢?离成功只有一步之遥啊,前途渺茫。
- ^4 E8 t6 E( n0 @
3 |2 j9 i+ A: d/ y* ?% F% ^4 b( L* W
Part E. 柳暗花明。
9 E- l# O# C& j9 s* O
虽然屏保不能直接使用 net 指令了,我们还可以尝试注册表以及组策略。在命令行输入 regedit,这个可以用,再输入 gpedit.msc,这个也能用。现在我们以 gpedit.msc 为例进行说明,稍后我们再检验 regedit。
. A6 |" ~2 k9 E3 z+ V* }' Y
输入 gpedit.msc 进入组策略编辑器,计算机配置--->Windows 设置--->脚本(启动/关机)--->启动--->添加--->浏览,在这里我们发现完整目录是 \WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup。--->命令行 cd \WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup 再输入 notepad Promote.cmd。--->提示文档不存在,选创建新文档,然后输入内容 net localgroup Administrators "Smth Bigsk" /add。--->现在回到刚才浏览那里,选中 Promote.cmd,按确定。--->现在你可以看到启动脚本里已经包含了 Promote.cmd,按应用、确定,并且重启机器。
7 e& p, K1 o/ ~( Q u2 F
系统启动完毕,用之前设置的密码登录"Smth Bigsk"帐户,开一个命令行的 Cmd 窗口,输入 net localgroup Administrators。恭喜你,测试的帐户"Smth Bigsk"已经在管理员组了,受限用户提升权限成功!爽吧。
6 D5 O, g9 Q. h" A# ? 提示:如果你想快一点进入目录,或者把这个目录记下来以后再用,可以在命令行输入 notepad \GotoGP.cmd,然后写上刚才用到 cd 路径的命令。那么,你任何时候想进入组策略启动目录只要敲 \GotoGP.cmd 就行了。
0 A0 ? E6 f) c3 u% Z" ~( _Part F. 更上一层。
) G; e$ j1 z4 T# l( ? q: e' g
提高:除了上述方法外,我们还可以参考之前“失而复得,寻回WinXp管理员密码五法”一文的脚本恢复法。在 notepad Promote.cmd 编辑完毕之后,输入 cd .. 进入上级目录输入 notepad scripts.ini 手工创建组策略配置。
; w$ _ b% b, C- X 其实 gpedit.msc 已经为你自动产生 scripts.ini 了,此方案比较难理解。不过好处是它可以直接在 WinPE 或 ERD,以及 DOS7.1 + NTFS Pro 下操作,用文本编辑器编写文件,无需替换 logon.scr,通用性更强。喜欢 gpedit图形界面的朋友可以按照我的方法进行。下面是 scripts.ini 详细内容。
- x4 l# p# @5 n
[Startup]
0CmdLine=Promote.cmd
0Parameters=
( v' o$ S3 q6 A7 G1 d. qPart G. 本文小结。
. k6 o! u& }- k! S7 P* a4 j
我已经验证用注册表把 Promte.cmd 写到 HKLM 的 Run 是不行的,因为系统启动要等用户登录之后才运行 HKLM 的 Run,这时候系统权限控制已经生效了,因此该脚本的运行结果是拒绝访问。当一个受限用户登陆到系统里,通常情况下会限制 regedit,gpedit.msc 和 net 指令。
! G2 T0 j' P \: l: p
刚才我们得到一个限制 net 但没有限制 regedit 和 gpedit.msc 的管理员命令行,应该好好利用。既然 Run 不可以,就把它改为 Services再试一下吧。由于时间关系不再测了,有兴趣的朋友可以自行研究。
3 ]$ W$ j$ ~& u: Z+ H; j4 {