啊!上次啟動還正常的Windows系統,怎麼Word 、Excel、Powerpoint等文件突然無法正常運行、網頁無法正常浏覽,或系統文件無法正常顯示、一些功能如“粘帖”等無法正常使用,甚至計算機自動反復重新啟動呢?
是蠕蟲病毒在作怪!如典型的沖擊波(Worm.MSblast)等。一旦計算機染上這類病毒,某些系統端口就會被病毒占用,輕者影響系統正常運行,嚴重的會破壞全部系統文件。舉不勝舉的病毒案例告訴我們,Windows默認開放的135、137、138、139和445五個端口的漏洞最容易被利用,如果不進行相應的設置,琏接因特網後就很容易遭受黑客攻擊。
Windows默認開放135、137、138、139和445五個端口,主要是方便初級用戶操作,即不進行必要地設置就可以使用網絡通信和各種共享服務。但這樣一來,用戶不希望啟動或用不著一些服務都會隨機啟動,琏接因特網後會在用戶不知曉的情況下洩露本機信息。因此我們應盡可能的多了解一些這些端口的作用,權衡端口開放的利與弊,然後制定相應的安全對策。
135端口在Windows默認的五個典型開放端口中,135用途最為復雜,也最容易引起自外部攻擊。若使用SecurityFriday公司開發的一款“IEen”軟件進行端口安全性驗證,就能清楚地看到這個端口開放是非常的危險的。
IEen是一種遠程操作IE浏覽器的工具。不僅可以獲得其它電腦IE浏覽器中的信息,而且還可以對浏覽器本身進行操作。具體而言,就是可以得到正在運行的IE浏覽器的窗口一覽表、各窗口所顯示的Web站點的URL及Cookie,以及在檢索站點中輸入的檢索關鍵詞等信息。
IEen使用的是Windows NT4.0/2000/XP標准集成的分布式對象技術DCOM(分布式組件對象模塊),可以遠程操作其他電腦中的DCOM應用程序。該技術使用的是用於調用其他電腦所具有的函數的RPC(Remote Procedure Call,遠程過程調用)功能。
這個RPC使用的就是135端口。RPC是 Windows 操作系統使用的一個遠程過程調用協議。RPC 提供了一種進程間的通信機制,通過這一機制,允許在某台計算機上運行的程序順暢地在遠程系統上執行代碼。協議本身源自OSF(開放式軟件基礎)RPC 協議,但增加了一些 Microsoft 特定的擴展 .由於使用 RPC 的程序不必了解支持通信的網絡協議的情況,因此 RPC 提高了程序的互操作性。
因為在 RPC 中發出請求的程序是客戶程序,而提供服務的程序是服務器。利用RPC功能進行通信時,就會向對方電腦的135端口詢問可以使用哪個端口進行通信。這樣,對方的電腦就會告知可以使用的端口號。在非加密狀態下,使用IEen可以看到對方電腦的本應受到SSL保護的數據,甚至能夠直接看到比如在網絡銀行等輸入的銀行現金卡密碼等信息。所以也不可避免地暴露了漏洞。攻擊者能利用該漏洞在受影響的系統上以本地系統權限運行代碼,執行任何操作,包括安裝程序,查看、更改或者刪除數據,或者建立系統管理員權限的帳戶。針對這一漏洞的蠕蟲病毒有許多。早期的這些蠕蟲病毒只是攻擊此漏洞,造成遠端系統的崩潰,而去年8月爆發的“沖擊波”則會利用這一漏洞進行快速傳播,輕而易舉地控制他人的IP地址和注冊名,使更多的個人或公司系統遭殃。
回避這種危險的最好辦法是關閉RPC服務。如不使用DCOM特定應用程序的Web服務器、郵件或DNS服務器等,即便關閉135端口,也不會出現任何問題。關閉RPC服務的方法是在“控制面板”的“管理工具”中選擇“服務”,在“服務”窗口中打開“Remote Procedure Call”屬性,在屬性窗口中將啟動類型設置為“已禁用”(圖01),重新啟動電腦,RPC就不再運行。也可打開注冊表編輯器,將“HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\RpcSs”的“Start”的值由0x04變成0x02後,重新起動機器即生效。
不過,關閉RPC服務後會給Windows的運行帶來很大的影響。因為Windows的很多服務都依賴於RPC,而這些服務在將RPC設置為無效後將無法正常起動。比如,如果客戶端關閉了135端口,就無法使用Outlook連接Exchange Server.因為管理分布式處理的MSDTC、負責應用程序之間的信息交換的MSMQ以及動態地向連接網絡的電腦分配地址的DHCP等服務也都使用這個端口。同時, Windows 啟動的速度會變的非常慢。
關閉RPC服務弊端非常大,一般不能輕易關閉。但為了避免遭受攻擊,網絡客戶端卻可以禁止遠程登錄電腦。方法是依次選擇“控制面板”、“管理工具”和“本地安全策略”,打開本地安全設置窗口,選擇本地策略中的用戶權利指派,然後利用該項下的“拒絕從網絡訪問這台計算機”,指定拒絕訪問的對象(圖02)。如果想拒絕所有的訪問,最好指定為“Everyone”(圖03)。
在公司內部,如果不想讓其他計算機操作自己電腦,可以將DCOM設置為無效。方法是用DOS命令運行Windows NT/2000/XP標准集成的“dcomcnfg.exe”工具。從打開的分布式COM配置屬性窗口中,選擇“默認屬性”頁標,取消“在這台計算機上啟用分布式COM”選項即可。
DCOM(分布式對象模型)是一種能夠使軟件組件通過網絡直接進行通信的協議。DCOM 以前叫做“網絡 OLE”,它能夠跨越包括 Internet 協議(例如 HTTP)在內的多種網絡傳輸。有關 DCOM 的詳細說明,可以從 查閱。
137和138端口只需向對方Windows的137端口發送一個詢問連接狀態的信息包,就可以得到該機的計算機名和注冊用戶名,該機是否為主域控制器和主浏覽器、是否作為文件服務器使用、IIS和Samba是否正在運行以及Lotus Notes是否正在運行等信息。
不只是公司內部網絡,連接因特網的電腦也是如此。只要知道對方的IP地址,就可以向這台電腦的137端口發送一個請求,獲得諸多信息。如果捕捉到正在利用137端口進行通信的信息包,還有可能得到目標主機的起動和關閉時間。這是因為Windows起動或關閉時會由137端口發送特定的信息包。如果掌握了目標主機的起動時間,,就可以非常輕松地使用上一次所講的IEen等軟件通過135端口操作對方的DCOM. 137端口為什麼會各種信息包洩漏到網絡上呢?這是因為,在Windows網絡通信協議——“NetBIOS over TCP/IP(NBT)”的計算機名管理功能中使用的是137端口(計算機名管理是指Windows網絡中的電腦通過用於相互識別的名字——NetBIOS名,獲取實際的IP地址的功能。)為了得到通信對象的IP地址,137端口就要交換很多信息包。137端口信息包洩漏主要有兩種途徑:一種途徑,位於同一組中的電腦之間利用廣播功能進行計算機名管理。電腦在起動時或者連接網絡時,會向位於同組中的所有電腦詢問有沒有正在使用與自己相同的NetBIOS名的電腦。每台收到詢問的電腦如果使用了與自己相同的NetBIOS名,就會發送通知信息包。這些通信是利用137端口進行的。
另一種途徑,利用WINS(Windows因特網名稱服務)管理計算機名。被稱為WINS服務器的電腦有一個IP地址和NetBIOS名的對照表。WINS客戶端在系統起動時或連接網絡時會將自己的NetBIOS名與IP地址發送給WINS服務器。與其他計算機通信時,會向WINS服務器發送NetBIOS名,詢問IP地址。這種方法也使用137端口。
隨意地洩漏這樣的信息,就好象是很友好地告訴攻擊者應該如何來攻擊自己的電腦。使惡意攻擊者根本不必特意地通過端口掃描來尋找,就可以下手入侵。比如,如果知道IIS服務正在運行,就可以輕松地了解這台電腦上已經起動的服務。這對入侵者來說,惡意攻擊簡直太方便了。
138端口提供NetBIOS的浏覽功能。在該功能中,被稱為主浏覽器的電腦管理著連接於網絡中的電腦一覽表的浏覽列表。比如,在Windows2000中,從“網上鄰居”選擇了“整個網絡”後,就能清楚地看到連接網絡的所有的鄰近電腦。
138端口提供NetBIOS的浏覽功能。該功能使用的是與137端口計算機名管理不同的運行機制,主要用來用於顯示連接於網絡中的電腦一覽表。每台電腦在起動時或連接網絡時都會利用138端口廣播自己的NetBIOS名,將自己的電腦信息發送給同組中的所有電腦。 收到NetBIOS名的主浏覽器會將這台電腦追加到浏覽列表中。需要顯示一覽表時就廣播一覽表顯示請求,收到請求的主游覽器會發送浏覽列表。關閉電腦時,機器會通知主浏覽器,以便讓主浏覽器將自己的NetBIOS名從列表中刪除掉。盡管138端口的信息量沒有137端口那麼多,但也存在不容忽視的安全隱患。
NetBIOS服務主要使用137和138端口的向外部發送自己信息。NetBIOS主要用於Windows網絡中,雖然Windows 2000以上的版本,不使用NetBIOS也能夠管理計算機名,完全可以停止NBT,但會降低Windows網絡使用的方便性,如無法顯示用於尋找文件共享對象的信息。這對於基於公司內部網絡環境構築Windows網絡的電腦來說,NetBIOS服務還是必要的。
停止NetBIOS服務,首先由控制面板中選擇目前正在使用的網絡連接,在屬性窗口中查看“Internet協議(TCP/IP)”的屬性。在“常規”頁標中單擊“高級”按鈕,在“WINS”頁標中選擇“禁用TCP/IP上的NetBIOS(S)”即可(圖04)。這樣,就可以關閉137、138以及後面將要講到的139端口。
需要注意的一點。NetBEUI協議如果為有效,NetBIOS服務將會繼續起作用。在Windows 95中,NetBIOS是在默認條件下安裝的。在更高的Windows版本中,如果選擇也可以安裝。所以不僅要停止NBT,還應該確認NetBEUI是否在起作用。如果使用NetBEUI,即便關閉137端口,也仍有可能向外部洩漏信息。
139和445端口139和445端口的功能主要是,通過137和138端口獲取IP地址,實現文件共享和打印機共享等。
139和445端口的通信過程是通過SMB(服務器信息塊)協議實現的。即根據DNS服務器中的名字列表信息,尋找需要通信的對象。如果順利地得到對象的IP地址,就可以訪問共享資源 .Windows 2000以前版本的Windows使用NetBIOS協議解決各計算機名的問題。通過向WINS服務器發送通信對象的NetBIOS名,取得IP地址。而Windows以後的版本所采用的CIFS則利用DNS解決計算機的命名問題。
在SM