麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 注冊表 > 正文

利用遠(yuǎn)程注冊表加強(qiáng)系統(tǒng)安全

2020-10-31 15:50:39
字體:
供稿:網(wǎng)友

遠(yuǎn)程訪問機(jī)器的注冊表通常是令人皺眉的事情;畢竟,您想讓其他人在您不知道的情況下查看您的注冊表嗎?但是,如果正確處理的話,這個過程可以成為抽取機(jī)器信息和識別您網(wǎng)絡(luò)中潛在 漏洞的強(qiáng)大工具。在這里,Brian 運(yùn)用他在 WebSphere Business Integrator Team 中的工作經(jīng)驗(yàn),描述了遠(yuǎn)程注冊表訪問如何允許您從多臺機(jī)器中抽取信息 ― 并且識別那些易受攻擊的系統(tǒng)。本文還包括了代碼樣本。

在一個軟件開發(fā)測試環(huán)境中,跟蹤機(jī)器被證明是非常困難的,尤其是當(dāng)機(jī)器的數(shù)量達(dá)到兩位數(shù)的時候。在哪臺機(jī)器上使用了什么軟件?使用的 NT 是什么版本?服務(wù)包(service pack)的級別是什么?安裝了什么修訂程序?您可以走到每臺機(jī)器前手工檢查核對所有這些問題,但是當(dāng)機(jī)器分散在一個廣闊的區(qū)域內(nèi),這樣做會是一個非常費(fèi)時的過程。

在這樣的情形下,如果有一種方法,能夠不必實(shí)際使用某臺機(jī)器并且不安裝額外軟件,就可以獲取那臺機(jī)器的信息,那將是很有用的。然后,收集到的信息可以用來分配資源和識別那些可能易受惡意的用戶和程序攻擊的機(jī)器。本文描述了利用遠(yuǎn)程注冊表訪問的某些方面。

警告:通過使用本文中描述的遠(yuǎn)程注冊表功能,您能節(jié)省系統(tǒng)管理的大量時間。但是仍要小心,因?yàn)榫庉嬃硪粋€系統(tǒng)的注冊表會與編輯您自己的注冊表一樣危險(如果不比編輯您自己的更危險的話)。

利用安裝功能

在這里的 WebSphere Business Integrator(WSBI)測試環(huán)境中,我們有大約 40 臺測試機(jī)器,它們的地理位置分散在整個英國 Hursley 實(shí)驗(yàn)室中。在最初的測試階段期間,我們的注意力主要集中于 WSBI 的安裝和配置。在測試機(jī)器上不斷地安裝和重新安裝各種產(chǎn)品以及服務(wù)包和必備軟件 ― 通常必須重新安裝整個操作系統(tǒng)。很快,我們發(fā)現(xiàn)要監(jiān)視每臺測試機(jī)器狀態(tài)幾乎是不可能的。我們需要一種方法,它可以在不必訪問每臺機(jī)器的情況下,快速知道該機(jī)器所處的狀態(tài)。

在 WSBI 安裝中,我們要在單一安裝封裝器中安裝并配置了大約 15 個 IBM 產(chǎn)品 ― 例如 DB2 V7.2、MQSeries V5.2、HTTP Server V1.3.12。正如對于所有好的安裝程序,在任何安裝開始之前,都要檢查目標(biāo)機(jī)器以確保它滿足要安裝的軟件的前提條件 ― 例如服務(wù)包級別和相關(guān)產(chǎn)品。這個檢查通常在 InstallShield 腳本中由編寫注冊表腳本檢查相關(guān)值來完成的。

例如,一種最常見的檢查就是驗(yàn)證 NT 服務(wù)包級別。鍵 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion 下的注冊表項(xiàng),它們會出現(xiàn)在 Regedit.exe 中。

當(dāng)在腳本中查詢一個注冊表項(xiàng)時,需要知道三樣?xùn)|西:

要查詢的鍵名稱 ― 本例中,是 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion 鍵中值的名稱,這里是“CSDVersion”
正在查詢的值類型,這里是一個字符串值

使用 InstallShield 腳本函數(shù) RegDBGetKeyValueEx 來執(zhí)行注冊表查詢。但是假設(shè)您想要檢查安裝了什么級別的服務(wù)包。清單 1 顯示可以如何達(dá)到這一點(diǎn)。

清單1. 抽取服務(wù)包級別

STRING szKey, szName, svServicePackVersion;
NUMBER nvType, nvSize;
begin
svKey = ";SOFTWARE//Microsoft//Windows NT//CurrentVersion";;
svName = ";CSDVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (szKey, szName, nvType, svServicePackVersion, nvSize);
end; 清單1 將返回值“Service Pack 6”并把它存儲在 svServicePackVersion 中。然后,您可以知道這臺機(jī)器上安裝了 Service Pack 6。通過執(zhí)行類似這樣的各種查詢,可能確定一臺機(jī)器的配置以及在它上面安裝了什么軟件。

當(dāng)我們意識到可以對遠(yuǎn)程機(jī)器的注冊表執(zhí)行這些查詢時,我們的實(shí)驗(yàn)室工作取得了突破性的進(jìn)展。

連接到遠(yuǎn)程注冊表

要通過腳本訪問遠(yuǎn)程機(jī)器上的注冊表,需要遠(yuǎn)程機(jī)器上的管理員特權(quán)。我們發(fā)現(xiàn)當(dāng)運(yùn)行我們的腳本時,擁有在遠(yuǎn)程機(jī)器上具有管理員特權(quán)的一個用戶帳戶并使用這個用戶名和密碼登錄到腳本正在運(yùn)行的這臺機(jī)器是一個難題。

假設(shè)在我們的 WSBI 測試環(huán)境中,有三臺測試機(jī)器,使用第四臺作為審計機(jī)器。在每臺測試機(jī)器上,我們都需要添加一個用戶帳戶并賦予它管理員特權(quán);我們將用戶名命名為“auditor”并賦予它密碼“angelus”。這是每臺機(jī)器上需要手工執(zhí)行的唯一操作。每臺測試機(jī)器上的這些帳戶現(xiàn)在都允許我們通過審計機(jī)器上運(yùn)行的腳本來訪問每臺機(jī)器的注冊表。

現(xiàn)在假設(shè)我們用剛才創(chuàng)建的帳戶(用戶名“auditor”,密碼“angelus”)登錄到 AuditMachine。下一步是重新運(yùn)行清單 1 上的腳本,但是這次不檢查本地注冊表,而是想知道機(jī)器“Gunn”的服務(wù)包級別,所以我們需要連接到它的注冊表上。要做到這一點(diǎn),我們使用命令 RegDBConnectRegistry。這個功能創(chuàng)建到遠(yuǎn)程注冊表的連接。要連接到 Gunn,該命令類似于:

RegDBConnectRegistry ("Gunn" , HKEY_LOCAL_MACHINE, 0 );

把它放置在腳本中,那么我們就得到:

清單2. 遠(yuǎn)程抽取機(jī)器 Gunn 的服務(wù)包級別

begin
RegDBConnectRegistry (";Gunn"; , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE//Microsoft//Windows NT//CurrentVersion";;
svName = ";CSDVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (szKey, szName, nvType, svServicePackVersion, nvSize);
end;

如果一切順利的話,我們現(xiàn)在就能訪問 Gunn 的注冊表并抽取服務(wù)包級別。

接下來,通過在 RegBConnectRegistry 命令中用表示其它兩臺機(jī)器的相應(yīng)的名稱替代“Gunn”,然后運(yùn)行相同的過程;我們就可以抽取這兩臺機(jī)器的服務(wù)包級別。

我們注意到,三次重復(fù)輸入相同的代碼效率很低,因此可以使用循環(huán)機(jī)制來輪流查詢每臺機(jī)器的注冊表。需要輸入的全部信息是每臺機(jī)器的名稱。這可以通過創(chuàng)建一個文本文件來完成,該文件中,每一行包含一個機(jī)器的名稱。因此,假設(shè)我們已經(jīng)創(chuàng)建了一個名為 machineList.txt 的文本文件,其中輸入了我們希望查詢的三臺機(jī)器的名稱,并將它保存在 C 盤的根目錄下。現(xiàn)在我們可以進(jìn)一步修改腳本以把這些機(jī)器名讀取到一個列表結(jié)構(gòu)中,并輪流連接到每臺機(jī)器的注冊表。
清單 3. 從多臺機(jī)器中抽取服務(wù)包級別

begin
listMachines = ListCreate(STRINGLIST);
ListReadFromFile (listMachines, ";c://machineList.txt";);
nResult = ListGetFirstString (listMachines, svMachineName);
while (nResult != END_OF_LIST)
RegDBConnectRegistry (svMachineName , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE//Microsoft//Windows NT//CurrentVersion";;
svName = ";CurrentVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (svKey, svName, nvType, svServicePackVersion, nvSize);
nResult = ListGetNextString (listMachines, svMachineName);
endwhile;
end;

以上代碼將從 machineList.txt 文件中讀入一個機(jī)器名,連接到它的注冊表,進(jìn)行查詢,然后繼續(xù)移到在文本文件中命名的下一臺機(jī)器。使用這種方法的優(yōu)點(diǎn)是通過簡單編輯 machineList.txt 文件中的名稱,我們能非常容易地在審計過程中添加和除去機(jī)器。

輸出信息

到現(xiàn)在為止,您可能已經(jīng)注意到當(dāng)我們執(zhí)行這些查詢時,還沒有產(chǎn)生任何輸出。所以,現(xiàn)在我們來討論確定表示輸出結(jié)果的最好方法。我們團(tuán)隊(duì)決定把輸出格式化為 XML 文件,因?yàn)檫@樣使我們可以瀏覽檢索到的信息,并且允許我們可能開發(fā)的任何其它應(yīng)用程序利用這些數(shù)據(jù)。清單4 顯示了用適當(dāng)命名的標(biāo)記生成的 XML 文件。

清單4. 從多臺機(jī)器中抽取服務(wù)包級別并輸出到 XML 文件

; begin
CreateFile (nvFileHandle, ";C:/";, ";Audit.xml";);
WriteLine(nvFileHandle, ";<;?xml version=";1.0";?>;";);
WriteLine(nvFileHandle, ";<;audits&;gt;";);
listMachines = ListCreate(STRINGLIST);
ListReadFromFile (listMachines, ";c:/machineList.txt";);
nResult = ListGetFirstString (listMachines, svMachineName);

while (nResult != END_OF_LIST)
RegDBConnectRegistry (svMachineName , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE//Microsoft//Windows NT//CurrentVersion";;
svName = ";CurrentVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (svKey, svName, nvType, svServicePackVersion, nvSize);
WriteLine(nvFileHandle, ";<;MachineName&;gt;";);
WriteLine(nvFileHandle, ";<;ServicePack&;gt;"; + svCSDVersion+ ";<;/ServicePack&;gt;";
WriteLine(nvFileHandle, ";<;/MachineName&;gt;";);
nResult = ListGetNextString (listMachines, svMachineName);
endwhile;

WriteLine(nvFileHandle, ";<;/audits&;gt;";);
CloseFile(nvFileHandle)
end;如果我們在 AuditMachine 上運(yùn)行清單4(假設(shè)我們使 machineList.txt 包含我們的目標(biāo)機(jī)器的名稱),并且我們的審計帳戶設(shè)置正確,那么我們將生成一個名為 Audit.xml 的輸出文件。然后,我們可以瀏覽這個文件并查看每臺機(jī)器上的服務(wù)包級別是什么。

在我們的示例中,通過從三臺機(jī)器中抽取單段信息,我們執(zhí)行了一個很小的審計。理論上,以這種方式能從多少臺機(jī)器抽取信息或者抽取多少信息并沒有限制。在這里的 WSBI 測試中,目前我們每次審計大約 40 臺機(jī)器。使用這里描述的技術(shù),我們當(dāng)前的審計系統(tǒng)能確定:

機(jī)器運(yùn)行的是 NT 還是 2000

是否應(yīng)用了服務(wù)包

安裝了什么修訂程序

是否安裝了 Norton Anti-Virus

安裝了哪些 IBM 產(chǎn)品以及是什么級別

對于每次審計,涉及的原理與我們示例中的完全相同:

讀入機(jī)器名或者 IP 地址的列表

輪流連接到每臺機(jī)器的遠(yuǎn)程注冊表

從每臺機(jī)器的注冊表中抽取信息

這里顯示了對一臺機(jī)器進(jìn)行完整審計的示例。

收集在 XML 文件的單一資源庫中的這些信息讓我們極其清晰地了解了我們的測試環(huán)境,并且使我們可以更有效地管理硬件資源。進(jìn)一步擴(kuò)展原理

到目前為止,我們只查詢了遠(yuǎn)程機(jī)器的注冊表。但是,它并不僅限于查詢。還有可能編輯遠(yuǎn)程機(jī)器的注冊表。

回到我們的示例,假設(shè)那些機(jī)器位于三個不同的房間 ― Gunn 在“The War Room”、Wesley 在“The Test Cell”、Cordelia 在“Room 101”。如果我們可以引入使 XML 文件中包含機(jī)器位置的一些方法,那么這會使我們的審計方便些。一種解決方案是在注冊表中放置一個額外鍵表示機(jī)器的位置。使用 regedit.exe,在鍵 HKEY_LOCAL_MACHINE/SOFTWARE/IBM/MachineLocation 下,我們創(chuàng)建了一個名為“l(fā)ocation”的新字符串值。

但是如果有很多機(jī)器的話,那么遍歷每臺機(jī)器并且手工創(chuàng)建每個位置鍵就不很理想了。比較好的方法是將值遠(yuǎn)程地插入到每臺機(jī)器中。執(zhí)行的方法與檢索注冊表值的方法是完全相同的。首先,連接到遠(yuǎn)程注冊表:

RegDBConnectRegistry ("Gunn" , HKEY_LOCAL_MACHINE, 0 );

接著,設(shè)置注冊表值:

svKey = ";SOFTWARE//IBM//MachineLocation";;
svName = ";Location";;
nvType = REGDB_STRING;
svLocation = ";The War Room";

最后,執(zhí)行注冊表操作。這次,我們使用 RegDBSetKeyValueEx,它設(shè)置注冊表值(正如它的名字所表示的)。

RegDBSetKeyValueEx (svKey, svName, nvType, svLocation, nvSize);

然后,審計過程就可以查詢這個鍵了。也可以用這種方法更新甚至刪除注冊表鍵,雖然從遠(yuǎn)程注冊表刪除鍵是非常危險的。

優(yōu)點(diǎn)

這種方法的審計的主要優(yōu)點(diǎn)是:

它除去了在測試機(jī)器上安裝任何第三方軟件的需求,因此也除去了由此產(chǎn)生的潛在干擾;需要做的全部操作就是在每臺機(jī)器上創(chuàng)建一個用戶帳戶。
可以通過在腳本中修改那些您想要查詢的注冊表鍵以及要審計的機(jī)器,非常容易地調(diào)整您的審計過程。

這個審計過程不會以任何方式干擾正在被審計的機(jī)器上執(zhí)行的操作。那臺機(jī)器的用戶完全不知道審計的發(fā)生。5 秒內(nèi)就可生成本文前面包含的完整的審計 XML 文件。提高安全性

惡意的用戶

要弄壞一臺機(jī)器,沒有比通過對注冊表胡亂更改里面的內(nèi)容更好的方法了,因此惡意的用戶遠(yuǎn)程地訪問您的注冊表將會是一大災(zāi)難。然而,由于我們之前設(shè)置的遠(yuǎn)程-注冊表帳戶是管理員用戶,所以我們只要通過執(zhí)行以下這些步驟,就能將遠(yuǎn)程注冊表訪問權(quán)限限制為管理員。

運(yùn)行 Regedt32.exe。

打開以下注冊表鍵:

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/SecurePipeServers/WinReg。

單擊 WinReg 鍵,然后在“安全(Security)”下拉菜單中選擇“權(quán)限(Permissions)”。 確保在框中只出現(xiàn)具有完全控制的管理員。 要完全限制所有的遠(yuǎn)程-注冊表訪問,從框中除去所有名稱。

惡意的程序:識別易受攻擊的機(jī)器

惡意的程序進(jìn)入系統(tǒng)的主要方法是利用操作系統(tǒng)的安全性漏洞。我們都知道近期“紅色代碼(Code Red)”和類似的病毒已經(jīng)引出了許多問題。堵住這些漏洞的補(bǔ)丁程序通常在那些利用漏洞的病毒猖獗運(yùn)行之前的幾個月就可獲得,但是在一個多機(jī)器的環(huán)境中,您如何能識別哪些機(jī)器易受攻擊呢?補(bǔ)丁程序或者修訂程序的安裝總是在注冊表中留下痕跡。打開 Regedit 并瀏覽到鍵 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Hotfix,列出了當(dāng)前已安裝的所有修訂程序。例如,防止“紅色代碼”病毒的補(bǔ)丁程序稱為 Q300972。在一臺安裝了這個修訂的機(jī)器上,在上面顯示的鍵下,會有一個稱為 Q300972 的鍵。因此,利用這里所描述的技術(shù),通過在審計期間查找這個鍵,我們能識別沒有安裝補(bǔ)丁程序的任何機(jī)器,并且相應(yīng)地對它們進(jìn)行處理。

反病毒軟件是任何安全性實(shí)現(xiàn)的一個必需部分,但是有些機(jī)器可能沒有安裝反病毒軟件,或者軟件可能過時了,從而使它們門戶大開易受攻擊。遠(yuǎn)程注冊表調(diào)用可以用來找到這些機(jī)器。

安裝任何一種反病毒軟件都會在注冊表中留下一些蹤跡,假設(shè)在我們的系統(tǒng)上,在安裝了反病毒軟件后,它在注冊表中留下了下列蹤跡:



然后,審計可以尋找這些值以便識別那些沒有安裝反病毒軟件或者殺毒軟件需要更新的機(jī)器。

如果您查看前面提供的審計示例,就會注意到執(zhí)行了兩個這種性質(zhì)的檢查。我們的審計檢查了“紅色代碼”修訂是否存在,檢查了反病毒軟件并且抽取出它的版本。

結(jié)束語

本文描述了在小心正確地使用遠(yuǎn)程注冊表訪問時,它是如何成為一個有價值的工具,用來抽取有關(guān)多臺機(jī)器的信息以及識別易受攻擊的機(jī)器。您可以使用本文中的示例作為創(chuàng)建您自己的相關(guān)變體的一個起點(diǎn)。通過使用它和包含的源代碼,您應(yīng)該發(fā)現(xiàn)在您自己的環(huán)境中實(shí)現(xiàn)遠(yuǎn)程注冊表工具是非常簡單的。
(出處:瑞星反病毒資訊網(wǎng))
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 7777在线视频免费播放 | 久久精品一二三区白丝高潮 | 轻点插视频 | 把娇妻调教成暴露狂 | 久久久久亚洲美女啪啪 | 亚洲一区二区网址 | 日韩色电影 | 久久国精品 | 91短视频在线免费观看 | 精品一区二区在线播放 | 国产女厕一区二区三区在线视 | 日日噜噜噜夜夜狠狠久久蜜桃 | av电影在线免费 | 亚洲欧美不卡视频 | 99r国产精品 | 黄色片网站在线免费观看 | 欧美电影在线观看 | 91成人久久 | av在线久草 | 成人免费看片a | 欧美性猛交一区二区三区精品 | 国产美女视频免费 | 黄色特级| 欧美日韩一区三区 | 成人三级电影网 | 性看小视频 | 韩国一级免费视频 | 毛片免费看的 | 91网址在线播放 | 日本中文字幕网址 | 美国一级黄色毛片 | 欧美一级毛片特黄黄 | 全黄毛片| 一级一级一级一级毛片 | 在线a视频| 久久99精品久久久久久236 | 国产日韩中文字幕 | 免费黄色在线观看网站 | 高清成人在线 | 久久福利小视频 | 久夜草|