王峰
摘要:本文深入探討了Windows2003服務(wù)器中基于Serv-U的FTP服務(wù)器存在的嚴重權(quán)限提升漏洞及常見攻擊方法,提出了通過修改Serv-U進程的運行身份、加強權(quán)限設(shè)置等一系列方法降低漏洞危害、防止跨站攻擊、保證服務(wù)器安全的策略和方法。
關(guān)鍵詞:ServU FTP 漏洞 防護
近年來,隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)站大量涌現(xiàn)。目前除專門維護的獨立服務(wù)器外,絕大多數(shù)虛擬主機和Web服務(wù)器都采用FTP方式實現(xiàn)數(shù)據(jù)上傳下載。而在所有FTP服務(wù)軟件中,Serv-U以其操作簡單、功能強大而被廣泛運用,市場占有率極高。它設(shè)置簡單,功能強大,性能穩(wěn)定,支持Windows全系列操作系統(tǒng)。Serv-U使得搭建FTP服務(wù)器變得簡單便捷。Serv-U不僅完全符合通用FTP標準,也包括眾多的獨特功能可為每個用戶提供文件共享完美解決方案。它可以設(shè)定多個FTP 服務(wù)器、限定登錄用戶的權(quán)限、登錄主目錄及空間大小等。此外還支持SSL FTP傳輸,支持在多個Serv-U和FTP客戶端通過SSL加密連接保護您的數(shù)據(jù)安全等。但是,隨著Serv-U的大面積使用,一些攻擊者也針對Serv-U開展攻擊,暴露出很多嚴重漏洞。有些漏洞如不加以處理,可以使黑客輕而易舉地獲取整個服務(wù)器的超級管理員帳號,并可以遠程開啟3389端口并實現(xiàn)遠程桌面鏈接,將服務(wù)器完全暴露于人,導致不可挽回的重大損失。本文旨在提出一些切實可行的方法,徹底杜絕由Serv-u帶來的安全隱患。
1.Serv-U的提權(quán)漏洞分析
Serv-U安裝后,在本機有一個默認監(jiān)聽端口,即127.0.0.1:43958。默認情況下這個端口只有在本地才能連接。默認管理賬號是LocalAdministrator,默認密碼是"#l@$ak#.lk;0@P",這個密碼是內(nèi)置固定的。所以幾乎所有的針對Serv-U的攻擊木馬便是利用此漏洞來添加Serv-U用戶的,比如增加一個將主目錄指向C盤的全權(quán)限管理員用戶,就能將服務(wù)器的關(guān)鍵目錄全部暴露于黑客監(jiān)控之下。下面我們用一個常用的ASP木馬舉例說明。
我們知道,在當前絕大多數(shù)虛擬主機中,一臺服務(wù)器上往往存放多個站點,服務(wù)器管理員會為每個網(wǎng)站管理員分配一個FTP帳號來實現(xiàn)文件的上傳下載。網(wǎng)站管理員憑借FTP帳號可以登錄到服務(wù)器,并且對其所在的目錄擁有全部權(quán)限(添加、修改、刪除、運行等)。一般情況下,用戶無法越過自己所在的主目錄,因此網(wǎng)站文件的安全性比較有保障。但是倘若用戶上傳一個普通Web代碼編寫的木馬程序到FTP目錄,并運行之,如果服務(wù)器對執(zhí)行權(quán)限限制不足,就會調(diào)用SHELL指令實現(xiàn)對系統(tǒng)的操作。比如,網(wǎng)上常見的ASP版的Serv-U提權(quán)木馬,上傳到FTP目錄后,運行之后可以輕松添加Serv-U帳號。如下圖所示。
提權(quán)成功后,攻擊者可以直接通過木馬執(zhí)行命令添加操作系統(tǒng)的管理員帳戶,并且管理員帳戶是隱藏的(在普通windows的用戶管理界面中無法發(fā)現(xiàn))。如果成功,用這個帳戶遠程登錄到服務(wù)器,創(chuàng)建一個克隆的管理員帳戶,將這個賬戶的名稱設(shè)置成與系統(tǒng)正常管理員賬戶相似的名稱,如SQLDebugger等,非常具有迷惑性,一般管理員無法發(fā)現(xiàn)。攻擊者便掌握了整臺服務(wù)器。
2.Serv-U使用中的安全防護策略
2.1 Serv-U安裝中的安全策略
Serv-U安裝時安裝目錄的選擇是安全性的第一步。首先不應(yīng)安裝在默認的系統(tǒng)盤目錄里,因為此目錄極易被猜到。另外,系統(tǒng)盤的權(quán)限控制也比較嚴格,不利于下一步對Serv-U的運行身份進行限制。因此建議安裝在自定義的目錄中。在安裝選擇中,Serv-u的用戶配置文件有兩種方式,一種是存放在注冊表,一種是存放在ServUDaemon.ini文件,推薦使用存放在.ini文件里面的方式,這種方式便于Serv-U軟件的升級,也便于重裝系統(tǒng)后的ftp用戶的恢復,在權(quán)限設(shè)置上也相對方便。本文中我們假設(shè)serv-u軟件放在的的D:softServ-U目錄里。
2.2 Serv-U的運行權(quán)限設(shè)置策略
Serv-U安裝后,默認以系統(tǒng)用戶中的SYSTEM權(quán)限運行。這是一個權(quán)限極高的用戶,如果Serv-U被黑客攻擊的手,就可以借助SYSTEM權(quán)限進行危險性操作。因此,要給Serv-U單獨的、較低的用戶權(quán)限運行。具體方法是:
(1)在計算機管理中新增帳戶ftp,設(shè)置用戶不能更改密碼,密碼永不過期,并設(shè)置一個復雜的密碼,更改ftp用戶隸屬于權(quán)限較低的Guests組(默認是USERS組),也可以設(shè)置為不屬于任何組。
(2)啟動Serv-U(這時是使用默認的system權(quán)限運行的),選擇本地服務(wù)器,自動開始,將Serv-U設(shè)置為系統(tǒng)服務(wù),這樣服務(wù)器在每次重啟時Serv-U就會自動啟動,這里我們主要利用其可以在服務(wù)中配置給Serv-U單獨用戶。
(3)設(shè)置D:softServ-U目錄的權(quán)限為只保留administrators,ftp兩個用戶的權(quán)限,權(quán)限都是完全控制即可,并將權(quán)限應(yīng)用到所有子目錄。
(4) 在計算機管理中找到服務(wù),找到Serv-U FTP 服務(wù)器,右鍵屬性,在登錄選項卡中將登錄身份從本地系統(tǒng)帳戶改為此帳戶,帳戶選擇ftp,并輸入設(shè)置好的密碼。確定后會提示將在服務(wù)重啟后生效,重新啟動后,Serv-U就在低權(quán)限下運行了,如圖所示。
(5)上傳目錄權(quán)限的設(shè)置。因為Serv-U是用ftp這個帳戶運行的,所以上傳的目錄給予ftp用戶的完全訪問權(quán)限。比如我們可以設(shè)置D、E、F盤的權(quán)限為administrators和ftp完全控制的權(quán)限,System權(quán)限不需要設(shè)置,這就實現(xiàn)了在不影響FTP使用的前提下,一定程度上提高了這些目錄的安全性。
2.3 Serv-U密碼保護策略
針對權(quán)限提升等重大漏洞,采用Serv-U密碼保護策略能夠較好地封堵該漏洞。也就是所有增加刪除修改serv-u的用戶及更改設(shè)置的操作,都需要經(jīng)過本地密碼驗證??赡苡行┕芾韱T認為服務(wù)器密碼只有本人知道,攻擊者無法登錄服務(wù)器,就無法增加serv-u帳戶了,所以就不設(shè)置密碼,這就埋下了巨大的安全隱患。在Serv-U中設(shè)置密碼保護非常簡單,只需要按照向?qū)瓿杉纯伞?/p>
另外,通過本文第一節(jié)的分析不難看出,Serv-U采用固定的用戶名密碼作為默認管理帳號是非常不安全的。其實,我們可以通過對Serv-U主程序servUAdmin.exe的反編譯,強行修改其默認密碼,以保證安全性。方法如下:
用UltraEdit-32打開Serv-U安裝目錄下的可執(zhí)行文件servUAdmin.exe ,如圖所示,查找關(guān)鍵字“LocalAdministrator”和“#l@$ak#.lk;0@P”,將這兩個字符串修改為等長度的字符串保存即可,注意因為我們是對編譯后的exe文件進行修改,不能改變其長度,否則程序?qū)⒊鲥e,因此一定是等長度的。再打開ServUDaemon.exe,重復上述操作,并保證兩次修改的內(nèi)容一致。 經(jīng)過設(shè)置Serv-U本地管理密碼和修改Serv-u文件后,通過Web木馬雖然也能提示執(zhí)行命令成功,但實際服務(wù)器卻沒有任何變化,權(quán)限提升失敗。FTP服務(wù)器安全性大大增強。
3.Serv-U的工作模式和防火墻設(shè)置
很多管理員可能都發(fā)現(xiàn),在開了防火墻的服務(wù)器上利用FTP傳輸總有這樣那樣的小問題,傳輸數(shù)據(jù)“不夠流暢”。究其原因,主要是FTP服務(wù)器的工作模式導致的。
3.1 主動FTP模式下的防火墻設(shè)置
主動FTP模式是指客戶端從一個任意的非特權(quán)端口N(N>;1024)連接到FTP服務(wù)器的命令端口,也就是21端口。然后客戶端開始監(jiān)聽端口N+1,并發(fā)送FTP命令“port N+ 1”到FTP服務(wù)器。接著服務(wù)器會從它自己的數(shù)據(jù)端口(20)連接到客戶端指定的數(shù)據(jù)端口(N+1)。
在主動模式下,在防火墻設(shè)置中必須允許以下通訊才能支持主動方式FTP:任何端口到FTP服務(wù)器的21端口 (客戶端初始化的連接 S);FTP服務(wù)器的21端口到大于1023的端口(服務(wù)器響應(yīng)客戶端的控制端口 S->C); FTP服務(wù)器的20端口到大于1023的端口(服務(wù)器端初始化數(shù)據(jù)連接到客戶端的數(shù)據(jù)端口 S->C);大于1023端口到FTP服務(wù)器的20端口(客戶端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口 S)。
3.2 被動FTP模式下的防火墻設(shè)置
被動模式頁腳PASV方式,當客戶端通知服務(wù)器它處于被動模式時才啟用。 在被動方式FTP中,命令連接和數(shù)據(jù)連接都由客戶端,這樣就可以解決從服務(wù)器到客戶端的數(shù)據(jù)端口的入方向連接被防火墻過濾掉的問題。當開啟一個FTP連接時,客戶端打開兩個任意的非特權(quán)本地端口(N >; 1024和N+1)。第一個端口連接服務(wù)器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令并允許服務(wù)器來回連它的數(shù)據(jù)端口,而是提交PASV命令。這樣做的結(jié)果是服務(wù)器會開啟一個任意的非特權(quán)端口(P >; 1024),并發(fā)送PORT P命令給客戶端。然后客戶端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接用來傳送數(shù)據(jù)。
對于服務(wù)器端的防火墻來說,必須允許下面的通訊才能支持被動方式的FTP:從任何端口到服務(wù)器的21端口 (客戶端初始化的連接 S);服務(wù)器的21端口到任何大于1023的端口 (服務(wù)器響應(yīng)到客戶端的控制端口的連接 S->C);從任何端口到服務(wù)器的大于1023端口 (入;客戶端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口 S);服務(wù)器的大于1023端口到遠程的大于1023的端口(出;服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶端的數(shù)據(jù)端口 S->C)。
4.結(jié)語
綜上所述,Serv-U作為當前最流行的FTP服務(wù)器軟件之一,具有很多有點,但也因為軟件本身漏洞和使用者安全意識和防范措施不夠等原因帶來很問題,嚴重威脅服務(wù)器安全。本文根據(jù)筆者從事服務(wù)器管理的經(jīng)驗,提出了一系列加強FTP服務(wù)器安全防范的具體辦法,如果能夠嚴格注重以上幾點,基本可以實現(xiàn)安全地使用Serv-u。當然,服務(wù)器的安全是一個整體,任何地方的疏忽都有可能造成整個服務(wù)器的安全隱患,要保證服務(wù)器安全,還需要不斷從整體上予以強化。
參考文獻
[1]如何增強FTP服務(wù)器安全性.計算機與網(wǎng)絡(luò)[J].2007年06期
[2]鐘智. 基于云架構(gòu)的FTP服務(wù)安全性研究.長春大學學報[J].2010年06期
[3]淺議FTP安全性問題.中國IT實驗室. http://ciw.chinaitlab.com/ tutorial/7435.html