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