一、windows下獲取至高權限
大家知道,在Windows系統中SYSTEM是至高無上的超級管理員帳戶。默認情況下,我們無法直接在登錄對話框上以SYSTEM帳戶的身份登錄到Windows桌面環境。實際上SYSTEM帳戶早就已經“盤踞”在系統中了。想想也是,連負責用戶驗證的Winlogon、Lsass等進程都是以SYSTEM身份運行的,誰還能有資格檢驗SYSTEM呢?既然SYSTEM帳戶早就已經出現在系統中,所以只需以SYSTEM帳戶的身份啟動Windows的Shell程序Explorer,就相當于用SYSTEM身份登錄Windows了。
1、獲得特權
打開命令提示符,輸入命令“taskkill /f /im explorer.exe” 并回車,這個命令是結束當前賬戶explorer即圖形用戶界面的Shell。然后在命令提示符下繼續輸入“at time /interactive %systemroot%explorer.exe”并回車。其中“time”為當前系統時間稍后的一個時間,比如間隔一秒,當前系統時間可以在命令提示符下輸入“time”命令獲得。一秒鐘后會重新加載用戶配置,以SYSTEM身份啟動Windows的shell進程Explorer.exe。(圖1)

2、身份驗證
如何知道exeplorer.exe是以system權限運行呢?我通過“開始”菜單可以看到最上面顯示的是system賬戶。另外,打開注冊表編輯器,只要證明HKCU就是HKUS-1-5-18的鏈接就可以了(S-1-5-18就是SYSTEM帳戶的SID)。證明方法很簡單:在HKCU下隨便新建一個Test子項,然后刷新,再看看HKUS-1-5-18下是否同步出現了Test子項,如果是,就說明系統當前加載的就是SYSTEM帳戶的用戶配置單元。當然最簡單的是在命令提示符號下輸入命令“whoami”進行驗證,如圖所示顯示為“NT AUTHORITYSYSTEM”這就證明當前exeplorer.exe是System權限。(圖2)

3、大行其道
System權限的Explorer.exe在實際中有什么用呢?下面筆者隨意列舉幾個使用實例。
(1).注冊表訪問
我們知道在非SYSTEM權限下,用戶是沒有權限訪問某些注冊表項的,比如“HKEY_LOCAL_MACHINESAM”、“HKEY_LOCAL_MACHINESECURITY”等。這些項記錄的是系統的核心數據,某些病毒或者木馬會光顧這里。比如在SAM項目下建立具有管理員權限的隱藏賬戶,這樣的帳戶在命令及“本地用戶和組”管理器(lusrmgr.msc)中是無法看到的,造成了很大的安全隱患。在“SYSTEM”權限下,注冊表的訪問就沒有任何障礙,我們打開注冊表定位到“HKEY_LOCAL_MACHINESAMSAMDomainsAccount”項下所有的隱藏帳戶就都暴露了。(圖3)

(2).訪問系統還原文件
系統還原是windows系統的一種自我保護措施,它在每個磁盤根目錄下建立“System Colume Information”文件夾,保存一些系統信息以備系統恢復是使用。該文件具有系統、隱藏屬性管理員用戶是沒有操作權限的。正因為如此,它成了病毒、木馬的棲身之地,我們就可以在System權限下進入該文件夾刪除病毒。當然,你也可以關閉“系統還原”預防此類病毒,但這樣未免顯得被動,有些因噎廢食。(圖4)

(3).更換系統文件
Windows系統為系統文件做了保護機制,一般情況下你是不可能更換系統文件的,因為系統中都有系統文件的備份,它存在于c:WINDOWSsystem32dllcache(假設你的系統裝在C盤)。當你更換了系統文件后,系統自動就會從這個目錄中恢復相應的系統文件。當目錄中沒有相應的系統文件的時候會彈出提示讓你插入安裝盤。
在實際應用中如果有時你需要Diy自己的系統修改一些系統文件,或者用高版本的系統文件更換低版本的系統文件,讓系統功能提升。比如Window XP系統只支持一個用戶遠程登錄,如果你要讓它支持多用戶的遠程登錄。要用Windows 2003的遠程登錄文件替換Window XP的相應文件。這在非SYSTEM權限下很難實現,但是在SYSTEM權限下就可以很容易實現。
從Windows 2003的系統中提取termsrv.dll文件,用該文件替換Windows XP的C:WINDOWSsystem32下的同名文件。(對于Windows XP SP2還必須替換C:WINDOWS$NtServicePackUninstall$和C:WINDOWSServicePackFilesi386目錄下的同名文件)。再進行相應的系統設置即可讓Windows XP支持多用戶遠程登錄。
(4).手工殺毒
用戶在使用電腦的過程中一般都是用Administrator或者其它的管理員用戶登錄的,中毒或者中馬后,病毒、木馬大都是以管理員權限運行的。我們在系統中毒后一般都是用殺毒軟件來殺毒,如果殺軟癱瘓了,或者殺毒軟件只能查出來,但無法清除,這時候就只能赤膊上陣,手工殺毒了。
在Adinistrator權限下,如果手工查殺對于有些病毒無能為力,一般要啟動到安全模式下,有時就算到了安全模式下也無法清除干凈。如果以SYSTEM權限登錄,查殺病毒就容易得多。
以一次手工殺毒為例,(為了截圖在虛擬機上模擬了前段時間的一次手工殺毒。)打“Windows 任務管理器”,發現有個可疑進程“86a01.exe”,在Administrator管理員下無法結束進程見圖5,當然更無法刪除在系統目錄下的病毒原文件“86a01.exe”。以System權限登錄系統,進程被順利結束見圖6,然后刪除病毒原文件,清除注冊表中的相關選項,病毒被徹底清理出系統。(圖5)(圖6)


System權限是比Administrator權限還高的系統最高權限,利用它可以完成很多常規情況下無法完成的任務。當然,最大的權限也就意味著更大的危險,不要因為手握“尚方寶劍”就濫殺無辜。#p#副標題#e#
二、Linux下授權測試
類似于Windows系統Linux系統中用戶是具有權限屬性的,甚至它的權限設置更為嚴格。我們知道在Linux系統中root是管理員用戶擁有最高的權限,除此之外的其他用戶是普通用戶其權限都是受限的。如何讓普通用戶也具有root權限當管理員使用呢?下面筆者搭建環境,以重啟網絡操作為例進行Root授權演示。
環境說明:
OS:Fedora Core 6 (域名:ns.linux.com.cn)
Tools:PuTTY(SSH/Telnet遠程登錄)
1、登錄系統
運行PuTTY,首先以Root用戶遠程登錄系統,輸入用戶名、密碼成功登入系統。然后以普通用戶hacker遠程登錄輸入用戶名、密碼進入系統。
2、權限測試
在Root用戶登錄窗口中我們輸入命令“/etc/init.d/network restart”重啟網絡服務,如圖7所示啟動成功。然后在hacker用戶登錄窗口輸入同樣的命令重啟網絡,顯示失敗,可以普通用戶hacker是沒有執行該命令的權限的。(圖7)

3、Root授權
要使得普通用戶hacker也具有重啟網絡的權限,我們需要修改/etc/sudoers文件。輸入命令“ls -l /etc/sudoers”查看root用戶默認對該文件只有“讀”權限,是沒有辦法修改的。對此,我們可以修改其權限讓Root用戶可以修改,也可以用vi打開該文件修改然后強行保存退出,當然最方便的是用“visudo”命令進行編輯。
定位到“# User privilege specification”下,按照格式“username host username command”進行輸入。其中第一個字段是用戶名(被授權用戶),第二個自動是主機位(用域名、IP地址都可以),第三個字段是用戶名(授權用戶),第四個字段是命令(授權用戶可以執行的命令,可以用別名)。結合實例我們添加如下字段:hacker All = (root) /etc/init.d/network 即授權hacker用戶以Root權限運行/etc/init.d/network,最后保存退出。(圖8)

4、權限測試
在hacker用戶窗口中輸入命令:sudo /etc/init.d/network restart,看hacker是否可以重啟網絡,如圖9所示命令成功執行網絡被重啟,說明授權成功。這里必須要說明的是必須以“sudo”來運行命令,因為sudo命令會調用“/etc/sudoers”腳本,剛才的授權才會生效。另外,在命令執行前要輸入密碼,這個密碼是當前用戶即hacker的密碼。(圖9)

5、延伸
我們通過修改/etc/sudoers文件可以靈活地進行用戶賦權,賦予不同的用戶執行特殊命令的權限。/etc/sudoers文件中添加的信息,其中用戶、命令都可以用別名,被授權用戶可以是多個,命令可以是多條。我們通過修改該文件進行用戶授權是一定要慎重,防止授權過大造成系統安全隱患。比如我們在該文件中添加這樣的字段angel ALL = (ALL) ALL,這樣的話angel用戶就具有了系統的所有權限,就相當于另一個Root用戶。下面我們操作測試一下。(圖10)

新建test用戶并設置密碼,然后從在hacker登錄窗口中通過命令su -angel 切換到angel用戶,看看權限過大會產生什么后果。大家知道/etc/passwd是保存用戶密碼的文件,我們輸入sudo vi /etc/passwd用sudo命令調用vi打開該文件,定位到root行,可以看到有個“x”號表示root用戶設置了密碼,我們刪除“x”字段最后保存退出。輸入命令more /etc/passwd | grep root查看“x”被成功刪除,root用戶就是空密碼了。在angel窗口輸入命令sudo root可以看到空密碼可以進入到Root登錄窗口。(圖11)

總結:本文關于Windows、Linux本地用戶提權測試,只是從技術上提供一個思路,至于提權以后可以用來干什么還需要我們大家深入挖掘。


