“黑客”入門學習之“Windows註冊表”

“黑客”入門學習之“Windows註冊表”

註冊表是一個很神奇的"東東",為什麼這麼神奇?因為即可利用註冊表來搞破壞,又可以利用註冊表防止黑客搞破壞;"矛與盾"學習就是本片文章主要的內容。

"好的,跟著我的文章開始學習吧!"

一、註冊表的由來

從Windows 95開始,Microsoft在Windows中引入了註冊表的概念。註冊表是表格嗎?這樣理解是不準確的,註冊表是Windows的核心數據庫,表中存放著各種參數,直接控制著Windows的啟動、硬件驅動程序的裝載以及一些Windows應用程序運行的正常與否,如果該註冊表由於某種原因受到了破壞,輕者可以使Windows的啟動過程出現異常,重者可能會導致整個Windows系統的完全癱瘓。因此對於黑客入門學習,正確地認識和學習註冊表是非常有必要的。

二、註冊表的打開方法

1.大家可以在開始菜單中的運行裡輸入regedit

2.也可以在DOS下輸入regedit

三、註冊表的結構

註冊表由鍵、子鍵和值項構成,一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾中的子文件夾,子鍵同樣是一個鍵。一個值項則是一個鍵的當前定義,由名稱、數據類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱為空,則該值為該鍵的默認值。

在註冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是 和它所包含的信息相關的。如果這個鍵包含子鍵,則在註冊表編輯器窗口中代表這個鍵的文件夾的左邊將有"+"符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個"+"就會變成"-"。

六大根鍵的作用 :

1、HKEY_CLASSES_ROOT

這個子樹包含了所有應用程序運行時必需的信息;在文件和應用程序之間所有的擴展名和關聯所有的驅動程序名稱。類的ID數字(所要存取項的名字用數字來代替)用於應用程序和文件的圖標;

在Windows用戶圖形界面下每件事、每個文件、每個目錄、每個小程序、每個連接、每個驅動都被看做一個對象,每個對象都有確定的屬性和它聯繫。HKCR包含著對象類型和他們屬性的列表。

HKCR主要功能設置為;

一個對象類型和一個擴展名關聯;

一個對象類型和一種圖標關聯;

一個對象類型和一個命令行動的關聯。

定義對象類型相關菜單選項和沒一個對象類型屬性選項。

2、HKEY_CURRENT_USER

此根鍵(子樹)中記錄的是當前用戶的配置數據信息,用戶可以利用此根鍵下的子鍵修改Windows的許多環境配置。

HKEY_CURRENT_USER根鍵中的主鍵

(1)AppEvents主鍵,包含了已註冊了的各種應用事件。

(2)Console主鍵Windows2003控制檯子系統存儲設置,控制檯子系統運行所有基於字符的應用程序。

(3)Control Panel主鍵,包含了與控制面板有關的內容。

(4)Environment主鍵,已登錄用戶表示環境變量的設置的數據項值。

(5)Identities它是當前用戶的ID,但不是主要的ID。在HKEY_USERS中,每個用戶都有唯一的ID。這與之相匹配。

(6)Keyboaed Layout儲存安裝鍵盤的佈局信息,包含硬件和驅動器設置。

(7)Network僅噹噹前用戶具有映像的網絡磁盤時才存在。是父項,不保留重要數據。

(8)Printers在計算機打印機上的相關信息,包括用戶設置的配置選項。

(9)Session Information包含當前會話中使用的與應用程序相關的信息。

(10)Software存儲登錄用戶的特定應用程序用戶設置和程序變量、

(11)Volatile Environment 當前用戶會話設置。

3、HKEY_LOCAL_MACHINE

此根鍵保存與計算機、硬件、所安裝的設備驅動器,以及影響所有計算機用戶的配置選項(安全和軟件設置)等相關信息。它包含了5個項。

(1)HARDWARE Ntdetect.com(Windows 2003硬件識別程序)在啟動過程中,從頭開始建立這個項的內容。該信息保存在RAM中,子項的層次結構保存計算機所有的硬件組件信息。

(2)SAM 安全賬戶管理器,存儲用戶和數據組的地方,SAM數據由所有本地用戶和組組成包括用戶訪問文件夾,文件以及外設的權限。

(3)SECURITY 有安全有關的數據項,保存安全策略和用戶組策略的配置信息。

(4)SOFTWARE 操作系統在這裡保存計算機設置,包括組策略配置生效的設置,所安裝的軟件、版本等等。

(5)SYSTEM 控制操作系統的啟動。幾乎控制操作系統所做的每一件事(特別是內核服務),這是對計算機配置的正確性的方法。

4、HKEY_USER

包含計算機默認用戶的配置文件和已知用戶的配置文件的子項。

5、HKEY_CURRENT_CONFIG

保存計算機啟動時所使用的與硬件配置文件相關信息。它是HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware Profilescurrent的別名。

6、HKEY_DYN_DATA

該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在註冊表中。

四、註冊表裡的主要內容

1、保存個人文件夾、 收藏夾的路徑

Hkey_local_machine/software/microsoft/windows/currentVersion/explorer/user shell folders

2、保存鍵盤使用的語言以及各種中文輸入法

Hkey_local_machine/system/currentControlSet/control/keyboard Layouts

3、保存IE瀏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時將被清空。

Hkey_users/.Default/software/microsoft/internet explorer/typeURLs

4、保留程序菜單排序信息

Hkey_users/.Default/so../mi../wi../currentVersion/ex../menuOrder/startMenu

5、 保存"開始 * 運行..."中運行的程序列表信息,清除文檔菜單時將被清空

Hkey_users/.Default/so../microsoft/windows/currentVersion/explorer/RunMRU

6、保存最近使用的十五個文檔的快捷方式(刪除掉可解決文檔名稱重複的毛病),清除文檔菜單時將被清空。

Hkey_users/.Default/so../microsoft/windows/currentVersion/explorer/ecents

7、 保存已安裝的Windows應用程序卸載信息。

Hkey_local_machine/software/microsoft/windows/currentVersion/uninstall

8、保存Windows應用程序的紀錄數據。

hkey_users/.default/software/microsoft/windows/currentVersion/applets

9、保存控制面板-增添硬件設備-設備類型目錄。

Hkey_local_machine/system/CurrentControlSet/services/class

10、保存由控制面板設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右邊。[啟動文件夾程序運行時圖標也在任務條右邊]

Hkey_local_machine/software/microsoft/windows/currentVersion/run

11、保存由用戶設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右側。

hkey_users/.default/software/microsoft/windows/currentVersion/run

12、保存桌面中特殊的圖標,如回收站、收件箱等。

Hkey-local-machine/ software/ microsoft/ windows/ currentVersion/ explorer/ desktop/namespace

五、黑客利用註冊表能做什麼事

"黑客"利用註冊表主要乾的壞事主要是啟動黑客程序,黑客會利用註冊表實現"病毒、木馬"程序的自啟動,木馬要實現遠程控制,就需要木馬服務器端時刻在線,這樣黑客就可以利用客戶端來操控被植入木馬的用戶的計算機了。所以利用註冊表實現程序的自啟動就很重要。

那麼如何通過修改註冊表實現自啟動呢?

註冊表中可被利用的表項非常多,常見的如下:

1. Run註冊表鍵

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

需要注意的是,這裡的RunOnce只會運行一次,之後該表項內容就自動刪除。

2. Load註冊表鍵

HKCU \ Software\Microsoft\WindowsNT\CurrentVersion\Windows\load

3. Userinit註冊表鍵

HKLM \ SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

通常該註冊鍵下面有一個userinit.exe,但這個鍵允許指定用逗號分隔的多個程序,例如:userinit.exe,OSA.exe。

下面通過編程修改HKCU\Software\Microsoft\Windows\CurrentVersion\Run為例,將我們的對話框在開機時實現自啟動:

“黑客”入門學習之“Windows註冊表”

將上述代碼加入到上一章的Main函數中,重啟計算機後,"病毒"就可實現自運行。可以修改上述代碼中相應的註冊表代碼,以添加到不同的註冊表項中實現自啟動。

“黑客”入門學習之“Windows註冊表”

這裡再講一下整個程序的執行流程。首先當雙擊這個可執行文件後,會彈出對話框,提示用戶"中毒",之後單擊"確定",對話框消失,程序將自身複製到Windows目錄以及系統目錄中,之後創建並執行批處理文件以刪除自身與該批處理,最後將Windows目錄下的Hacked.exe添加到註冊表中,以實現自啟動。

上述功能也可以用批處理實現:代碼如下:

@echo off

echo Windows Registry Editor Version 5.00 >>1.reg

echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] >>1.reg

echo "Hacked.exe"="C:\\Windows\\Hacked.exe" >>1.reg

regedit /s 1.reg

del /f 1.reg

上述批處理代碼會首先創建一個註冊表文件(REG),將相應的代碼寫入該文件中,運行後再刪除該註冊表文件。

六、如何利用註冊表防止黑客的破壞

通過修改註冊表來對付病毒、木馬、後門以及黑客程序,保證個人計算機的安全。

1.清理訪問"網絡鄰居"後留下的字句信息

在HEKY_CURRENT_USERNetworkRecent下,刪除下面的主鍵。

2.取消登陸時自動撥號

在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionNetworkRealModeNet 下修改右邊窗口中的"autologon"為"01 00 00 00 00"。

3.取消登錄時選擇用戶

已經刪除了所有用戶,但登錄時還要選擇用戶,我們要取消登錄時選擇用戶,就要在HKEY_LOCAL_MACHINENetworkLogon 下,在右邊的窗口中,修改"UserProfiles"值為"0"。

4.公開上機用戶登錄的名字

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下在右邊的窗口中新建字符串"DontDisplayLastUserName",設值為"1"。

5.預防Acid Battery v1.0木馬的破壞

在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右邊窗口中如發現了"Explorer"鍵值,則說明中了YAI木馬,將它刪除。

6.預防YAI木馬的破壞

在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右邊窗口中如發現了"Batterieanzeige"鍵值,則說明中了YAI木馬,將它刪除。

7.預防Eclipse 2000木馬的破壞

在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右邊窗口中如發現了"bybt"鍵值,則將它刪除。

然後在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下刪除右邊的鍵值"cksys",重新啟動電腦。

8.預防BO2000的破壞

在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右邊窗口中如發現了"umgr32.EⅩE"鍵值,則說明中了BO2000,將它刪除。

9.預防愛蟲的破壞

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右邊窗口中如發現了"MSKernel32"鍵值,就將它刪除。

10.禁止出現IE菜單中"工具"欄裡"interner選項"

把c:windowssystem下的名為inetcpl.cpl更名為inetcpl.old或則別的名字後就會出現禁止使用的情況把名字再換回來,就可以恢復使用。

11.預防BackDoor的破壞

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右邊窗口中如發現了"Notepad"鍵值,就將它刪除。

12.預防WinNuke的破壞

在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下在右邊的窗口中新建或修改字符串"BSDUrgent",設其值為0。

13.預防KeyboardGhost的破壞

在 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下如發現 KG.EⅩE這一鍵值,就將它刪除,並查找KG.EⅩE文件和kg.dat文件,將它們都刪除。

14.查找NetSpy黑客程序

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下,在右邊的窗口中尋找鍵"NetSpy",如果存在,就說明已經裝有NetSpy黑客程序,把它刪除。

15、讓"文件系統"菜單在系統屬性中消失為了防止非法用戶隨意篡改系統中的文件,我們有必要把"系統屬性"中"文件系統"的菜單隱藏起來。隱藏時,只要在註冊表編輯器中用鼠標依次打開HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System鍵值,在右邊的窗口中新建一個DWORD串值:"NoFileSysPage",然後把它的值改為"1"即可。

16、讓用戶只使用指定的程序為防止用戶非法運行或者修改程序,導致整個計算機系統處於混亂狀態,我們可以通過修改註冊表來達到讓用戶只能使用指定的程序的目的,從而保證系統的安全。設置時,可以在註冊表編輯器窗口中依次打開HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer鍵值,然後在右邊的窗口中新建一個DWORD串值,名字取為"RestrictRun",把它的值設為"1"。然後在RestrictRun的主鍵下分別添加名為"1"、"2"、"3"等字符串值,然後將"1","2"、"3"等字符串的值設置為我們允許用戶使用的程序名。例如將"1"、"2"、"3"分別設置為word.EXE、notepad.EXE、write.EXE,則用戶只能使用word、記事本、寫字板了,這樣我們的系統將會做到最大的保障,也可以限制用戶運行不必要的軟件了。

17、禁用"任務欄屬性"功能任務欄屬性功能,可以方便用戶對開始菜單進行修改,可以修改的很多屬性和運行的程序,這在我們看來是件很危險的事情,所以有必要禁止對它的修改。修改設置時,首先運行regedit進入註冊表編輯器,找到如下分支HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer,在右窗格內新建一個DWORD串值"NoSetTaskBar",然後雙擊"NoSetTaskBar"鍵值,在彈出的對話框的"鍵值"框內輸入1,就可以達到禁用"任務欄屬性"功能了。

18、禁止修改顯示屬性

有許多用戶為了使自己使用的電腦外觀設置變得更漂亮一點,以便能體現出個性化的風格,往往通過修改顯示屬性達到更改外觀的目的。但在實踐操作中,我們有時要保證所有計算機的設置都必須相同,以方便同步教學,這時我們就需要禁止修改顯示屬性了。修改時,可以用鼠標依次打開如下分支:HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System,接著在右邊的窗口中新建一個DOWRD串值:然後將"新值#1"更名為"NoDispCPL",並將其值設為"1"就可以了。


分享到:


相關文章: