記得有一次在和一位網管聊天的過程中他堅持認為自己Windows 2000 Server系統是不可能被入侵的。“我已經把IPC$的連接共享都禁止,入侵者根本無法得到我系統上的賬戶信息了,保證沒有問題。”而經過我檢查發現TCP 139和445端口確實被禁止了,但通過掃描器我卻發現了一個重大漏洞——UDP 161D端口上的SNMP。詢問管理員后得知是正在試用某公司的網絡管理軟件。我們知道Windows 2000后續的版本都可以通過“添加/刪除程序→管理和監視工具”安裝上SNMP,但在Windows系統中選擇默認安裝是非常不安全的。
默認安裝SNMP的密碼都是一樣的。而入侵者從SNMP代理服務中會輕易的完成入侵前的準備工作。還有一點提醒各位,SNMP的消息是以明文形式發送的,而這些消息很容易被Microsoft網絡監視器或者Sniffer這樣的網絡分析程序截取并解碼。入侵者可以輕易的捕獲服務的密碼,以獲取有關網絡資源的重要信息。
獲取SNMP服務信息非常容易
1.Snmputil命令
如果我們知道默認的SNMP服務密碼,通過Resource Kit工具包里的Snmputil工具可以輕易地通過SNMP服務把Windows賬戶羅列出來,以便進行進一步的安全檢測。語法如下:snmputil walk .1.3.6.1.4.1.77.1.2.25,例如輸入:snmputil walk 192.168.0.1 ××××.1.3.6.1.4.1.77.1.2.25 命令后將得到所有的用戶名,如圖1所示。
圖1 顯示Windows賬戶列表
另外通過Snmputil Getnext可以用來檢測 Windows 2000 SNMP服務內存消耗拒絕服務攻擊的缺陷,有興趣的朋友可以嘗試一下。
2.圖形界面的IP Network Browser工具
IP Network Browser工具是Solar Winds公司出品的一個檢測工具,通過該程序可以對自己的系統了如指掌。而這個工具包中還包括可以向目標系統里的MIB寫入信息等功能,可以輕易更改系統的配置。
加固SNMP服務的方法
由于SNMP服務為管理員帶來了很多方便,我們也不能為了相對的安全而停止使用該服務,所以對于它的安全防范至關重要,而最簡單的方法就是更改服務的密碼和針對IP地址提供有效服務。
運行Services.msc命令,找到SNMP Service,右鍵選擇“屬性”,切換到“安全”選項卡。修改Community Strings,也就是 “團體名稱”改寫,然后添加授權訪問地連接地址,如圖2所示。
圖2 添加授權訪問連接地址
如果是NT的操作系統就要麻煩些,修改下面注冊表的鍵值。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
\ValidCommunities ] 中將public改名。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
\PermittedManagers ] 添加字符串,名稱為“1”,內容為授權訪問地連接地址。
另外,在入侵者企圖利用SNMP入侵時,我們可以讓系統日志記錄入侵信息,Windows事件日志中的可用來創建包含這一事件的SNMP陷阱,所謂“陷阱”就是SNMP 事件轉換器的意思。由于篇幅的限制,這里顯示出界面,細節內容可以參考“日志與審核”的相關幫助,如圖3所示。
圖3 創建SNMP陷阱連接地
加密SNMP的通信的方法
除了上述關于主機加固的內容,為了不使用明文形式發送SNMP消息。可以利用IP Sec策略保護SNMP服務的安全。
1. 選擇“管理工具→本地安全策略”,右鍵點擊“IP安全策略”,選擇“本地計算機→管理IP篩選器列表和篩選器操作”。
2. 選擇“管理IP篩選器列表”然后單擊“添加”按鈕。在“IP篩選器列表”中的名稱欄輸入“SNMP的管理”,去除“添加向導”復選框,然后點“添加”按鈕,(一定要選擇“鏡像。需要選擇匹配具有正好相反的源和目標地址的數據包”復選框。)生成策略。
3. 根據需要在“協議”選項卡中配置,協議類型為UDP,端口輸入161。單擊“到此端口”,然后輸入161,用同樣的方法再次添加162的端口,如圖4所示。
圖4 管理IP篩選
總結:在網絡管理中,非常小的安全漏洞的疏忽將導致整個系統崩潰,“細心”是要求我們每位管理員必須做到的。同時,值得慶幸的是Windows Server 2003對于SNMP的默認安裝作了很大改進,能夠抵御到上文提到的所有攻擊手段。