Windows与Linux本地用户提权体验

上一篇 / 下一篇  2008-12-02 07:44:02

IXPUB技术博客PGX$Nq'D+X_

无论是Windows系统还是Linux系统都是基于权限控制的,其严格的用户等级和权限是系统安全的有力保证。这么严密的用户权限是否不可逾越呢?下面笔者反其道而行之进行Windows及Linux下的提权测试。IXPUB技术博客}(q j!QN4G

z G(m&~&z:YB0  一、windows下获取至高权限IXPUB技术博客d| I?"s0ipO$K

IXPUB技术博客-ue8yp-Tf

  大家知道,在Windows系统中SYSTEM是至高无上的超级管理员帐户。默认情况下,我们无法直接在登录对话框上以SYSTEM帐户的身份登录到Windows桌面环境。实际上SYSTEM帐户早就已经“盘踞”在系统中了。想想也是,连负责用户验证的Winlogon、Lsass等进程都是以SYSTEM身份运行的,谁还能有资格检验SYSTEM呢?既然SYSTEM帐户早就已经出现在系统中,所以只需以SYSTEM帐户的身份启动Windows的Shell程序Explorer,就相当于用SYSTEM身份登录Windows了。

(G] Is;b0xN)Ph"G$y0IXPUB技术博客Z n/xSx1i*q`Ul

  1、获得特权IXPUB技术博客'Z.|g1O H(KM*CO

IXPUB技术博客 rwT;]R

  打开命令提示符,输入命令“taskkill /f /im explorer.exe” 并回车,这个命令是结束当前账户explorer即图形用户界面的Shell。然后在命令提示符下继续输入“attime/interactive %systemroot%\explorer.exe”并回车。其中“time”为当前系统时间稍后的一个时间,比如间隔一秒,当前系统时间可以在命令提示符下输入“time”命令获得。一秒钟后会重新加载用户配置,以SYSTEM身份启动Windowsshell进程Explorer.exe。(图1)IXPUB技术博客 `e:]qEKa jX g

IXPUB技术博客-p5{A ~XT

  获得特权

!n9z6KF2lA&lv:K` U0

n?;q2B2AL0  2、身份验证

I&w,_Uw0IXPUB技术博客%P` O(P5ET A

  如何知道exeplorer.exe是以system权限运行呢?我通过“开始”菜单可以看到最上面显示的是system账户。另外,打开注册表编辑器,只要证明HKCU就是HKU\S-1-5-18的链接就可以了(S-1-5-18就是SYSTEM帐户的SID)。证明方法很简单:在HKCU下随便新建一个Test子项,然后刷新,再看看HKU\S-1-5-18下是否同步出现了Test子项,如果是,就说明系统当前加载的就是SYSTEM帐户的用户配置单元。当然最简单的是在命令提示符号下输入命令“whoami”进行验证,如图所示显示为“NTAUTHORITY\SYSTEM”这就证明当前exeplorer.exe是System权限。(图2)

M P0[zoW0IXPUB技术博客"U3\T s2phj

  身份验证

~.D} G]m0

d^ tPQ3gs(G03、大行其道IXPUB技术博客ok(n-` N

IXPUB技术博客wd&E7r0w:d

  System权限的Explorer.exe在实际中有什么用呢?下面笔者随意列举几个使用实例。IXPUB技术博客lO6CYF

C*i7f+I;_'q0  (1).注册表访问

cB&pN JYB&HT&g0

d4G\%k;?vW"j3g0  我们知道在非SYSTEM权限下,用户是没有权限访问某些注册表项的,比如“HKEY_LOCAL_MACHINE\SAM”、“HKEY_LOCAL_MACHINE\SECURITY”等。这些项记录的是系统的核心数据,某些病毒或者木马会光顾这里。比如在SAM项目下建立具有管理员权限的隐藏账户,这样的帐户在命令及“本地用户和组”管理器(lusrmgr.msc)中是无法看到的,造成了很大的安全隐患。在“SYSTEM”权限下,注册表的访问就没有任何障碍,我们打开注册表定位到“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account”项下所有的隐藏帐户就都暴露了。(图3)

9G?kV_4}0

wOtv#e:B-B"ySz0  注册表访问IXPUB技术博客YY"I a,o_TI

IXPUB技术博客-^C$J0M5J*E

  (2).访问系统还原文件

4?0d6hC v V0IXPUB技术博客eRHT,z4ZS][

  系统还原是windows系统的一种自我保护措施,它在每个磁盘根目录下建立“System Colume Information”文件夹,保存一些系统信息以备系统恢复是使用。该文件具有系统、隐藏属性管理员用户是没有操作权限的。正因为如此,它成了病毒、木马的栖身之地,我们就可以在System权限下进入该文件夹删除病毒。当然,你也可以关闭“系统还原”预防此类病毒,但这样未免显得被动,有些因噎废食。(图4)

.u:T[ W.w1X%t(O7x0IXPUB技术博客NZ8UN9J A d

  访问系统还原文件

6FM_$z7G2c0s Uc*K0

P0o~s^Qb tY0  (3).更换系统文件IXPUB技术博客g| v6v||2s6c-H#j

1e$h*SG*Y_Lesz0  Windows系统为系统文件做了保护机制,一般情况下你是不可能更换系统文件的,因为系统中都有系统文件的备份,它存在于c:\WINDOWS\system32\dllcache(假设你的系统装在C盘)。当你更换了系统文件后,系统自动就会从这个目录中恢复相应的系统文件。当目录中没有相应的系统文件的时候会弹出提示让你插入安装盘。

&@&~b w3b,NeRKi0IXPUB技术博客L9[N+~i&H:z4X-w

  在实际应用中如果有时你需要Diy自己的系统修改一些系统文件,或者用高版本的系统文件更换低版本的系统文件,让系统功能提升。比如Window XP系统只支持一个用户远程登录,如果你要让它支持多用户的远程登录。要用Windows2003的远程登录文件替换Window XP的相应文件。这在非SYSTEM权限下很难实现,但是在SYSTEM权限下就可以很容易实现。IXPUB技术博客,JAubwQ

yB Lm/[/K\J0  从Windows2003的系统中提取termsrv.dll文件,用该文件替换WindowsXP的C:\WINDOWS\system32下的同名文件。(对于WindowsXP SP2还必须替换C:\WINDOWS\$NtServicePackUninstall$和C:\WINDOWS\ServicePackFiles\i386目录下的同名文件)。再进行相应的系统设置即可让WindowsXP支持多用户远程登录。IXPUB技术博客Z,Y'o6y3K`*VF6E3DUH

y \2?z+B j0  (4).手工杀毒

+f9BI'm7M]0IXPUB技术博客~?*y)v6w

  用户在使用电脑的过程中一般都是用Administrator或者其它的管理员用户登录的,中毒或者中马后,病毒、木马大都是以管理员权限运行的。我们在系统中毒后一般都是用杀毒软件来杀毒,如果杀软瘫痪了,或者杀毒软件只能查出来,但无法清除,这时候就只能赤膊上阵,手工杀毒了。

!EI q;CR#B3QD0t0

A/]5?8d4O,\ a5^5r0  在Adinistrator权限下,如果手工查杀对于有些病毒无能为力,一般要启动到安全模式下,有时就算到了安全模式下也无法清除干净。如果以SYSTEM权限登录,查杀病毒就容易得多。

c}${mg%]0IXPUB技术博客jGj'J ]7Z-pj f

  以一次手工杀毒为例,(为了截图在虚拟机上模拟了前段时间的一次手工杀毒。)打“Windows任务管理器”,发现有个可疑进程“86a01.exe”,在Administrator管理员下无法结束进程见图5,当然更无法删除在系统目录下的病毒原文件“86a01.exe”。以System权限登录系统,进程被顺利结束见图6,然后删除病毒原文件,清除注册表中的相关选项,病毒被彻底清理出系统。(图5)(图6)IXPUB技术博客\&nc(? {,Wb2O#o SQ7Dd

"C(|(t+] KI#\I p0  手工杀毒

&cfeE9yB5qM.rl0IXPUB技术博客(W\ Ct*cX

  手工杀毒

4v[M@h2pfLT0IXPUB技术博客-D%Z3[*Dc

  System权限是比Administrator权限还高的系统最高权限,利用它可以完成很多常规情况下无法完成的任务。当然,最大的权限也就意味着更大的危险,不要因为手握“尚方宝剑”就滥杀无辜。IXPUB技术博客^bs*rw0e^_l'q

%wTGMI0二、Linux下授权测试

g$G0n |Vs0IXPUB技术博客 Hmw+gQ/G

  类似于Windows系统Linux系统中用户是具有权限属性的,甚至它的权限设置更为严格。我们知道在Linux系统中root是管理员用户拥有最高的权限,除此之外的其他用户是普通用户其权限都是受限的。如何让普通用户也具有root权限当管理员使用呢?下面笔者搭建环境,以重启网络操作为例进行Root授权演示。IXPUB技术博客3{/S1cA#i G9`

1R$`-cwY_0  环境说明:IXPUB技术博客 ju f"u:S ^9gx0MY

IXPUB技术博客_8Y,]E)rgpg

  OS:Fedora Core 6 (名:ns.linux.com.cn)IXPUB技术博客U wZ'f,J

IXPUB技术博客 b.i2p,cP&L

  Tools:PuTTY(SSH/Telnet远程登录)

#C_(`9ra S c0IXPUB技术博客/aGo0{2L$m

  1、登录系统IXPUB技术博客7P5@ MO'aHB

IXPUB技术博客9N|*J@oae7s"v Q

  运行PuTTY,首先以Root用户远程登录系统,输入用户名、密码成功登入系统。然后以普通用户hacker远程登录输入用户名、密码进入系统。

vJ'J$X'O0W0

+mE)}7}x7o$K\0  2、权限测试IXPUB技术博客pl2` W(s

IXPUB技术博客a"fhv5i

  在Root用户登录窗口中我们输入命令“/etc/init.d/networkrestart”重启网络服务,如图7所示启动成功。然后在hacker用户登录窗口输入同样的命令重启网络,显示失败,可以普通用户hacker是没有执行该命令的权限的。(图7)IXPUB技术博客"NHVp$|VY

IXPUB技术博客~3[,TM Z

  权限测试IXPUB技术博客OnY/v:u2Mh

IXPUB技术博客b\z}+vEo

  3、Root授权

#Z3}0ir*J+Z0IXPUB技术博客Fyg1y r!om

  要使得普通用户hacker也具有重启网络的权限,我们需要修改/etc/sudoers文件。输入命令“ls -l /etc/sudoers”查看root用户默认对该文件只有“读”权限,是没有办法修改的。对此,我们可以修改其权限让Root用户可以修改,也可以用vi打开该文件修改然后强行保存退出,当然最方便的是用“visudo”命令进行编辑。IXPUB技术博客7{i zk'CY8K/e2YJ7E

IXPUB技术博客nW.wD?/oN/yz

  定位到“# Userprivilegespecification”下,按照格式“usernamehostusernamecommand”进行输入。其中第一个字段是用户名(被授权用户),第二个自动是主机位(用域名、IP地址都可以),第三个字段是用户名(授权用户),第四个字段是命令(授权用户可以执行的命令,可以用别名)。结合实例我们添加如下字段:hacker All = (root) /etc/init.d/network 即授权hacker用户以Root权限运行/etc/init.d/network,最后保存退出。(图8)

V+_j EI1{6m0

7h{Z7h+@b5k0G)BB#}0  Root授权

%\aH lC&fm0IXPUB技术博客Dzp9N(I m-tUY

  4、权限测试IXPUB技术博客L$fDzj1?Z

IXPUB技术博客bR.FJ*}8~$h"U4k

  在hacker用户窗口中输入命令:sudo/etc/init.d/network restart,看hacker是否可以重启网络,如图9所示命令成功执行网络被重启,说明授权成功。这里必须要说明的是必须以“sudo”来运行命令,因为sudo命令会调用“/etc/sudoers”脚本,刚才的授权才会生效。另外,在命令执行前要输入密码,这个密码是当前用户即hacker的密码。(图9)

Nr,M? sD+h0

&`2q F4q EH$y0  权限测试

E)Mi7`N fK0IXPUB技术博客:I"l Ql ~

5、延伸

}-c;tT~n8m0IXPUB技术博客\@Gz8P2R `

  我们通过修改/etc/sudoers文件可以灵活地进行用户赋权,赋予不同的用户执行特殊命令的权限。/etc/sudoers文件中添加的信息,其中用户、命令都可以用别名,被授权用户可以是多个,命令可以是多条。我们通过修改该文件进行用户授权是一定要慎重,防止授权过大造成系统安全隐患。比如我们在该文件中添加这样的字段angel ALL = (ALL) ALL,这样的话angel用户就具有了系统的所有权限,就相当于另一个Root用户。下面我们操作测试一下。(图10)

jvD9{EO(w0IXPUB技术博客;kY{7`,u:_2{y f

  用户权限测试

"vl IRe e0IXPUB技术博客k%uxu8s6yf L8C!J

  新建test用户并设置密码,然后从在hacker登录窗口中通过命令su -angel 切换到angel用户,看看权限过大会产生什么后果。大家知道/etc/passwd是保存用户密码的文件,我们输入sudovi /etc/passwd用sudo命令调用vi打开该文件,定位到root行,可以看到有个“x”号表示root用户设置了密码,我们删除“x”字段最后保存退出。输入命令more /etc/passwd |greproot查看“x”被成功删除,root用户就是空密码了。在angel窗口输入命令sudo root可以看到空密码可以进入到Root登录窗口。(图11)IXPUB技术博客$xR2b | B}&Rh7T

IXPUB技术博客8t'{ Lre-h$?k

  以Root权限登录

r AR,i H Q9D8s!t0IXPUB技术博客:k9e7Gjo5P+h.^V-u

  总结:本文关于WindowsLinux本地用户提权测试,只是从技术上提供一个思路,至于提权以后可以用来干什么还需要我们大家深入挖掘。

hG/R2fO0
3

3

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-05  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 64850
  • 日志数: 1202
  • 文件数: 1
  • 建立时间: 2007-08-10
  • 更新时间: 2009-01-05

RSS订阅

Open Toolbar