|
系統(tǒng)服務(wù)跟以下的注冊表幾個項目相關(guān):
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices HKEY_LOCAL_MACHINESYSTEMControlSet001Services HKEY_LOCAL_MACHINESYSTEMControlSet002Services 我們完全可以找到在系統(tǒng)服務(wù)中已注冊的服務(wù)的鍵值來依樣畫葫蘆。 在以上任何注冊表列中添加一個新項: 名字是你想要添加系統(tǒng)服務(wù)的名字,比如Backdoor。 在BACKDOOR項下新建一個字符串,數(shù)值名稱Displayname 數(shù)值數(shù)據(jù)為要添加服務(wù)的 名稱Backdoor。 下面列出一個表,會直觀一些: 名稱 類型 數(shù)據(jù) 備注 Displayname REG_SZ 想要添加服務(wù)的名稱 想要添加服務(wù)的名稱 Description REG_SZ 服務(wù)的描述 服務(wù)的描述 ImagePath REG EXPAND SZ 程序的路徑 Start REG_DWORD 0,2,3,4 2代表自動啟動,3代表手動啟動服務(wù).4代表禁用服務(wù),0代表系統(tǒng)對底層設(shè)備驅(qū)動(一般不需要這個) ErrorControl REG_DWORD 1 Type REG_DWORD 10 or 20 一般應(yīng)用程序都是10,其他的對應(yīng)20 ObjectName REG_SZ LocalSystem 顯示本地登陸 注意:在XP/2003下可以完全手工來添加REG EXPAND SZ類型。在XP/2003下直接修改ImagePath 鍵值就可以了。但是在WIN2000下卻不可以。原因我也不清楚:(。但是在WIN2000下我們寫一個REG來直接注冊系統(tǒng)服務(wù),這樣WIN2000下添加系統(tǒng)也能很輕松了。這里同樣需要注意的是注冊表文件里的ImagePath的數(shù)值類型必須是HEX(16進制)??梢阅肳INHEX來把程序的絕對路徑轉(zhuǎn)換成16進制的。每一個數(shù)值用逗號擱開。比如我的ImagePath鍵值是C:winntnukegroup.exe那就應(yīng)該轉(zhuǎn)換成: 63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65(無空格) 打開記事本,敲入以下內(nèi)容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSRVTEST] "Type"=dword:00000010 "Start"=dword:00000002 "ErrorControl"=dword:00000001 "ImagePath"=hex(2):63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65 "DisplayName"="SRVTEST" "ObjectName"="LocalSystem" "Description"="系統(tǒng)服務(wù)測試" 把以上信息保存為addsrv.reg,我們就可以依靠命令來導(dǎo)入注冊表,從而達到添加系統(tǒng)服務(wù)的目的。 我們在命令控制臺輸入regedit /s addsrv.reg,等機器重新啟動,這個服務(wù)就被成功添加了。 但是我在真正實驗的時候就遇到困難了。ImagePath的數(shù)值是亂碼 怎么想也不明白。但是這時可以把亂碼修改成絕對路徑了。如果直接把REG信息寫成這樣 "ImagePath"=hex(2):C:WINNTNUKEGROUP.EXE 其他的鍵值都可以添加,這個鍵值就不可以了?總之我們可以先添加亂碼的ImagePath,然后再修改成C:winntnukegroup.exe 這樣也不是不可能的。就是在命令行下來添加就很麻煩了。(圖3) 以上是Windows 2000手工添加系統(tǒng)服務(wù)的方法,對于Windows 98 注冊表結(jié)構(gòu)是不一樣的,但是Windows 98仍然可以通過注冊表來實現(xiàn)添加系統(tǒng)服務(wù),而且還要更簡單一些。 在項目“HKLM/SOFTWARE/Microsoft/WindowsCurrentVersion/RunServices”下添加一個新字符串?dāng)?shù)值。 比如,如果程序的名字叫做“BACKDOOR”,就建立一個名為“BACKDOOR”的字符串?dāng)?shù)值,然后在數(shù)據(jù)域中輸入執(zhí)行程序的完整路徑。 手工添加一個系統(tǒng)服務(wù)就這么簡單,手工刪除系統(tǒng)也是一個道理。通過注冊表來實現(xiàn),這里就不多說了。 ----------------- Windows服務(wù)簡介 服務(wù)控制管理器擁有一個在注冊表中記錄的數(shù)據(jù)庫,包含了所有已安裝的服務(wù)程序和設(shè)備驅(qū)動服務(wù)程序的相關(guān)信息。它允許系統(tǒng)管理員為每個服務(wù)自定義安全要求和控制訪問權(quán)限。Windows服務(wù)包括四大部分:服務(wù)控制管理器(Service Control Manager),服務(wù)控制程序(Service Control Program),服務(wù)程序(Service Program)和服務(wù)配置程序(Service Configuration Program)。 1.服務(wù)控制管理器(SCM) 服務(wù)控制管理器在系統(tǒng)啟動的早期由Winlogon進程啟動,可執(zhí)行文件名是“Admin$\System32\Services.exe”,它是系統(tǒng)中的一個RPC服務(wù)器,因此服務(wù)配置程序和服務(wù)控制程序可以在遠程操縱服務(wù)。它包括以下幾方面的信息: 已安裝服務(wù)數(shù)據(jù)庫:服務(wù)控制管理器在注冊表中擁有一個已安裝服務(wù)的數(shù)據(jù)庫,它在服務(wù)控制管理器和程序添加,刪除,配置服務(wù)程序時使用,在注冊表中數(shù)據(jù)庫的位置為:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。它包括很多子鍵,每個子鍵的名字就代表一個對應(yīng)的服務(wù)。數(shù)據(jù)庫中包括:服務(wù)類型(私有進程,共享進程),啟動類型(自動運行,由服務(wù)控制管理器啟動,無效),錯誤類型(忽略,常規(guī)錯誤,服務(wù)錯誤,關(guān)鍵錯誤),執(zhí)行文件路徑,依賴信息選項,可選用戶名與密碼。 自動啟動服務(wù):系統(tǒng)啟動時,服務(wù)控制管理器啟動所有“自啟”服務(wù)和相關(guān)依賴服務(wù)。服務(wù)的加載順序:順序裝載組列表:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder;指定組列表:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList;每個服務(wù)所依賴的服務(wù)程序。在系統(tǒng)成功引導(dǎo)后會保留一份LKG(Last-Know-Good)的配置信息位于:HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services。 因要求而啟動服務(wù):用戶可以使用服務(wù)控制面板程序來啟動一項服務(wù)。服務(wù)控制程序也可以使用StartService來啟動服務(wù)。服務(wù)控制管理器會進行下面的操作:獲取帳戶信息,登錄服務(wù)項目,創(chuàng)建服務(wù)為懸掛狀態(tài),分配登錄令牌給進程,允許進程執(zhí)行。 服務(wù)記錄列表:每項服務(wù)在數(shù)據(jù)庫中都包含了下面的內(nèi)容:服務(wù)名稱,開始類型,服務(wù)狀態(tài)(類型,當(dāng)前狀態(tài),接受控制代碼,退出代碼,等待提示),依賴服務(wù)列表指針。 服務(wù)控制管理器句柄:服務(wù)控制管理器支持句柄類型訪問以下對象:已安裝服務(wù)數(shù)據(jù)庫,服務(wù)程序,數(shù)據(jù)庫的鎖開狀態(tài)。 2.服務(wù)控制程序(SCP) 服務(wù)控制程序可以執(zhí)行對服務(wù)程序的開啟,控制和狀態(tài)查詢功能: 開啟服務(wù):如果服務(wù)的開啟類型為SERVICE_DEMAND_START,就可以用服務(wù)控制程序來開始一項服務(wù)。在開始服務(wù)的初始化階段服務(wù)的當(dāng)前狀態(tài)為:SERVICE_START_PENDING,而在初始化完成后的狀態(tài)就是:SERVICE_RUNNING。 向正在運行的服務(wù)發(fā)送控制請求:控制請求可以是系統(tǒng)默認的,也可以是用戶自定義的。標(biāo)準控制代碼如下:停止服務(wù)(SERVICE_CONTROL_STOP),暫停服務(wù)(SERVICE_CONTROL_PAUSE),恢復(fù)已暫停服務(wù)(SERVICE_CONTROL_CONTINUE),獲得更新信息(SERVICE_CONTROL_INTERROGATE)。 3.服務(wù)程序 一個服務(wù)程序可能擁有一個或多個服務(wù)的執(zhí)行代碼。我們可以創(chuàng)建類型為SERVICE_WIN32_OWN_PROCESS的只擁有一個服務(wù)的服務(wù)程序。而類型為SERVICE_WIN32_SHARE_PROCESS的服務(wù)程序卻可以包含多個服務(wù)的執(zhí)行代碼。詳情參見后面的Windows服務(wù)與編程。 4.服務(wù)配置程序 編程人員和系統(tǒng)管理員可以使用服務(wù)配置程序來更改,查詢已安裝服務(wù)的信息。當(dāng)然也可以通過注冊表函數(shù)來訪問相關(guān)資源。 服務(wù)的安裝,刪除和列舉:我們可以使用相關(guān)的系統(tǒng)函數(shù)來創(chuàng)建,刪除服務(wù)和查詢所有服務(wù)的當(dāng)前狀態(tài)。 服務(wù)配置:系統(tǒng)管理員通過服務(wù)配置程序來控制服務(wù)的啟動類型,顯示名稱和相關(guān)描述信息。 ------------------ ObjectName REG_SZ LocalSystem 改這里可以實現(xiàn)指定用戶 因為LOCALSYSTEM是最高級的權(quán)限,所以沒有提到其他權(quán)限選項. 下面是關(guān)于系統(tǒng)服務(wù)的簡單描述 服務(wù)僅在登錄到某一帳戶的情況下才能訪問操作系統(tǒng)中的資源和對象。大多數(shù)的服務(wù)都不更改默認的登錄帳戶。更改默認帳戶可能導(dǎo)致服務(wù)失敗。如果選定帳戶沒有登錄服務(wù)的權(quán)限,Microsoft 管理控制臺 (MMC) 的服務(wù)管理單元將自動為該帳戶授予登錄所管理計算機中服務(wù)的用戶權(quán)限。但這并不保證啟動服務(wù)。Windows 包括三個內(nèi)置的本地帳戶,分別用作各系統(tǒng)服務(wù)的登錄帳戶: 本地系統(tǒng)帳戶:本地系統(tǒng)帳戶功能強大,它可對系統(tǒng)進行完全訪問,并作為網(wǎng)絡(luò)中的計算機工作。如果某服務(wù)登錄到域控制器的“本地系統(tǒng)”帳戶,則該服務(wù)可訪問整個域。有些服務(wù)的默認配置是登錄到“本地系統(tǒng)”帳戶。不要更改默認服務(wù)設(shè)置。帳戶名稱是 LocalSystem。該帳戶沒有密碼。 本地服務(wù)帳戶:本地服務(wù)帳戶是一種特殊的內(nèi)置帳戶,類似于經(jīng)身份驗證的用戶帳戶。就訪問的資源的對象而言,“本地服務(wù)”帳戶與“Users”(用戶)組成員權(quán)限等同。這種限制性訪問有助于在個別服務(wù)或進程受損時保障系統(tǒng)安全。以“本地服務(wù)”帳戶運行的服務(wù)使用有匿名憑據(jù)的空會話來訪問網(wǎng)絡(luò)資源。帳戶名稱是 NT AUTHORITY\LocalService。該帳戶沒有密碼。 網(wǎng)絡(luò)服務(wù)帳戶:網(wǎng)絡(luò)服務(wù)帳戶也是一種特殊的內(nèi)置帳戶,類似于經(jīng)身份驗證的用戶帳戶。就訪問的資源的對象而言,“網(wǎng)絡(luò)服務(wù)”帳戶與“Users”(用戶)組成員權(quán)限等同。這種限制性訪問有助于在個別服務(wù)或進程受損時保障系統(tǒng)安全。以“網(wǎng)絡(luò)服務(wù)”帳戶運行的服務(wù)可使用計算機帳戶的憑據(jù)來訪問網(wǎng)絡(luò)資源。帳戶名稱是 NT AUTHORITY\NetworkService。該帳戶沒有密碼。 如果更改默認服務(wù)設(shè)置,重要的服務(wù)可能無法正常運行。最重要的是,更改啟動類型一定要謹慎,要使用配置了自動啟動服務(wù)的設(shè)置來登錄。 |
|
|
來自: Dead n Gone > 《Windows》