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