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