編者按:很長一段時間以來,大家常用的各類軟件不斷有危險漏洞出現,那么這些漏洞會對我們的電腦造成什么危害呢?如何防范這些常用軟件的漏洞呢?本文對Serv-U漏洞進行詳細地分析,防患于未然。
Serv-U是一個極為強大的FTP服務器軟件,界面簡潔,容易上手,不論是商業用途,還是自己搭個人FTP,它幾乎成了首選軟件,而近兩年不斷爆出的各個版本的安全漏洞,卻讓大家在使用Serv-U時不得不多留個心眼。
攻擊手段
縱覽一下當前網絡上流行的漏洞攻擊方式,軟件缺陷所造成的溢出最為關鍵,簡單的說溢出就是針對軟件的bug,提交構造的惡意代碼,造成軟件執行攻擊者的代碼或指令。從2004到2005年內Serv-U就出現了4~5個溢出漏洞,極其嚴重的可遠程獲取電腦的完全管理權限,非常危險,這將直接導致我們的個人隱私完全暴漏,入侵者可以通過漏洞進入我們的計算機,肆意翻看電腦上的文章、照片。當前在網絡中出現的攻擊手段,主要有嗅探竊聽、惡意攻擊、權限提升、賬號隱藏、漏洞溢出五種方式,而這些又是一個互相關聯的過程。
嗅探竊聽:這算是對Serv-U攻擊的一個前奏。入侵者會通過一些嗅探軟件竊聽到FTP密碼,畢竟一些攻擊工具必須擁有賬號才能實施攻擊。
惡意攻擊:使用大容量文件攻擊,入侵者會利用這漏洞對Serv-U軟件發送大容量的文件,然后導致FTP處理不過來而造成程序沒響應或者自動關閉。
權限提升:前提是攻擊者取得對Serv-U安裝目錄完全控制權限。如果Serv-U把配置信息寫入擴展名為ini的文件,大部分攻擊者會對目標主機Web服務進行滲透入侵,諸如利用流行的SQL注入,上傳漏洞來進行入侵,進而對Serv-U的安裝目錄實施篡改ServUDaemon.ini文件,替換為自己設定好擁有執行權限的配置信息,以此來獲取管理員身份特權。
賬號隱藏:通過第三方插件(Serv-U擴展庫),實現“賬號-映射”,也就是讓一個固定賬號下面映射幾個子賬號,繼承賬號權限。攻擊者必須拿到Serv-U目錄的寫權限,利用插件來對賬號隱藏。
漏洞溢出:一般情況下,攻擊者在確定版本有溢出漏洞之后,會自己編譯或者在網絡上尋找所對應的溢出漏洞攻擊工具對目標系統進行溢出,成功將會取得目標系統的系統權限,由于Serv-U默認是以system權限運行,所以溢出成功后,所得到的權限為system權限。
大家可能會發現,除了軟件異常以外,Serv-U目錄讀寫權限已成為關鍵,可能就會想到設置好Serv-U目錄權限,安全就得以保障了,其實不然,安全是一個整體。很多時候,在裝有Serv-U的服務器上架設著Web服務器,我們不得不兩者兼顧,有的放矢,才能把安全做好。
一次模擬入侵
我們可以從國內權威安全組織“綠盟”漏洞數據庫中查找到在過去一年內的相關Serv-U漏洞,結果足讓人吃驚,平均下來三個月就有一次漏洞。
2004-09-14 Serv-U FTP服務器設備文件名遠程拒絕服務漏洞
2004-08-09 Serv-U本地權限提升漏洞
2004-04-22 Serv-U FTP服務器LIST命令超長-l參數遠程緩沖區溢出漏洞
2004-02-27 Serv-U FTP服務器MDTM命令遠程緩沖區溢出漏洞
2004-01-29 Serv-U FTP服務器SITE CHMOD命令超長文件名遠程溢出漏洞
下面我們就以Serv-U本地權限提升漏洞為例來說明其危害性。
PCS小提示:盡管在Serv-U6.0.0.2中增加了密碼安全設置功能。但是本文作者在對Serv-U6.0.0.2進行測試的時候發現,在安裝Serv-U的服務器權限設置不當的時候依然能提升權限成功。
漏洞發現日期:2004-08-09
影響版本:RhinoSoft Serv-U 3.0.0.20 至RhinoSoft Serv-U 6.0.0.2
漏洞危害:Serv-U存在設計問題,本地攻擊者可以利用這個漏洞以SYSTEM權限在操作系統上執行任意命令。
測試環境:Microsoft Windows Server 2003, Enterprise Edition+Serv-U FTP Server 6.0.0.2
測試過程:
第一步:以普通用戶身份登錄Windows,在開始菜單的運行窗口中輸入cmd,在命令提示符下輸入Serv-U6(運行Serv-U6本地提升權限工具,見圖1):
輸入serv-u6.exe 43958 “net user test test /add”,添加一個名為“test”的用戶。
第二步:接著輸入serv-u6.exe 43958 “net localgroup administrators test /add”將該賬戶提升為超級用戶權限,如果成功,那么軟件界面將會返回提示信息
<220 Serv-U FTP Server v6.0 for WinSock ready...
>USER LocalAdministrator
<331 User name okay, need password.
******************************************************
>PASS #l@$ak#.lk;0@P
<230 User logged in, proceed.
******************************************************
這個時候,你可以使用用戶名test,密碼test進行登錄了,并且發現自己已經成為超級用戶了,這里不需要再說明什么了,你已經擁有了系統的超級權限了,入侵者已經可以在你的電腦上為所欲為了。
漏洞解決方案:盡快升級到最新版本,由于此本地提升權限漏洞為軟件設計問題,并非程序出現異常。
安全對策
Serv-U安全隱患重重,那么如何才能防范入侵呢?筆者以Windows 2003 Sp1系統、NTFS分區為例,在保證系統安裝好最新補丁的情況下,來對系統進行安全部署。首先安裝Serv-U最新版本于非系統分區,由于默認情況下系統盤的一些目錄都被賦予了everyone權限,這給攻擊者在獲取Webshell的時候執行攻擊程序提供了環境。安裝過程很簡單,注意安裝過程中是否有必要設置匿名登錄,否則禁止匿名登錄。
1.系統權限設置
第一步:對Serv-U目錄設置權限。對用戶組進行清理,留下Administrators和system,我們賦予Administrator權限,當然我們還可以新建立一個用戶組來對Serv-U操作,把目錄賦予此用戶完全控制的能力,不過此方法不適合虛擬主機進行日常添加和刪除用戶操作。
第二步:建立一個FTP用戶目錄,根目錄賦予Administrators完全控制權限,System只讀權限。
第三步:為每個用戶創建各自的目錄,并賦予如下安全策略:
刪除 Everyone group(這里尤為關鍵)
該System aclearcase/" target="_blank" >ccount's folder's 完全控制
添加給用此目錄的用戶完全訪問控制
第四步:通過Serv-U設置用戶權限,取消“執行”權限。在Web目錄中去掉執行權限,以防止取得webshell后運行攻擊程序來對Serv-U進行攻擊。在進行權限設置的時候請遵循基本規律:有特殊屬性的放在前面,共用屬性的放在后面!
此外,針對Serv-U的插件實現賬號隱藏的攻擊方式惟有在目錄權限設置不當并且入侵者取得WebShell的時候進行文件替換,掛接Dll。只要權限設置合理,定期對Serv-U目錄檢查,Serv-U安裝后文件并不多,此類攻擊方式很容易現形。
2.防范大容量文件攻擊
在安裝好FTP軟件后,首先需要添加自己的域,然后在域上添加FTP的登錄用戶,當添加用戶后,軟件一般默認沒有對添加的用戶進行文件上傳、下載的速率進行設置,因此這樣一來就有被攻擊的隱患,那就是黑客會利用這個漏洞對FTP軟件發送大容量的文件,然后導致FTP處理不過來而造成程序沒響應或者自動關閉。
在“常規”中能看到“最大上傳速度、最大下載速度(KB/秒)”的選項。我們一般默認是不填的,建議用戶設置一個具體的數字來限制這個速度。同時,最好把在“空閑超時、任務超時、最大用戶數”的選項上也設置一個具體的數值。一般地,默認10分鐘就足夠了(見圖2)。
3.溢出防范
近期內暫未發現軟件所造成的緩沖區溢出漏洞,但是建議用戶關注安全新聞,注意打補丁,新版本中也解決了出現的BUG,最好的方法就是升級,以免造成不必要的損失。當然這是極為被動的方式,但愿廣大朋友對安全多一點認識,多一點細致,多一點防范,也就會少一點損失。
4.端口密碼設置
由于筆者使用的是Serv-U6.0.0.2版本,固可以在ServUDaemon.ini中加上LocalSetupPortNo=12345來改變本地管理端口,不用去改ServUDaemon.exe。修改以后我們要利用IPSec來限制IP訪問12345端口。在新版本Serv-U6.0.0.2中已經提供對本地密碼進行修改的功能,在其主界面右邊,我們可以更改設置本地服務器密碼,這樣一來,就需要輸入密碼才能進行本地管理,默認的是#l@$ak#.lk;0@P也就是空,不需要密碼就可以管理。我們設置和更改密碼的時候,舊密碼留空,然后設置好你的本地管理密碼。設置完成后會在ServUDaemon.ini中添加LocalSetupPassword=eq8BD223881747 DB4FCC458FC5EE3774D6之類的一段(見圖3)。
5.傳輸安全
由于Serv-U在未開啟SSL時,FTP傳輸是以明文方式傳輸數據,在位于路由或交換環境下,這很容易被嗅探工具捕獲,如強大的Sniffer Pro、NetXray,小一點的arpsniffer、Dsniffer都可以抓到,利用此方式攻擊,很多安全站點被滲透也不是什么新鮮的話題了。所以下面我們來看看如何啟用Serv-U的SSL功能。
第一步: 首先為Serv-U創建新的SSL服務器證書,啟動Serv-U管理員,Serv-U默認為我們提供了一個證書,但所有默認安裝的SSL證書私人密鑰均一樣。為安全起見,我們需重新建立一個,很簡單,打開Serv-U“本地服務器”的“設置”選項,在管理界面右邊,打開“SSL證書”,依次填入“普通名稱(FTP服務器的IP地址)”、“電子郵件”等相關信息(見圖4),點“應用”按鈕將會在Serv-U目錄下覆蓋掉原Serv-U提供的證書ServUCert.crt。
第二步:初次使用我們應該對證書進行認證,把它安裝到受信任的區域,點擊“安裝證書”,進入下一步“證書導入向導”,選擇默認存儲區域,點擊“下一步”或者自行選擇存儲區域、完成,接著會彈出安全性警告(因為沒有從證書頒發機構安裝),這里不管它,點擊“是”,進行證書安裝,成功后會彈出“證書導入成功”對話框,確定后,我們再次打開ServUCert.crt,OK,證書已經信任了,這方便了FTP客戶端進行登錄時候不會彈出“是否信任”煩人的提示框,下一步我們來設置Serv-U以提供SSL支持(見圖5)。
第三步:打開Serv-U服務器下面的域,比如www.xhacker.cn),在右邊出現的“安全性”下拉框中,有三個選項,默認的是“僅僅規則FTP,無SSL/TLS會話”,既然我們要對FTP服務器進行SSL支持,我們就選擇下面的“只允許SSL/TSL會話”,也可以根據需要選擇“同時允許規則FTP,SSL/TSL會話”,應用后,Serv-U服務器就已經具備了SSL傳輸加密傳輸功效。
為安全考慮,只有對FTP客戶端也啟用SSL連接。以FlashFxp為例,首先在FlashFxp的快速連接窗口中,選擇“SSL”,然后在“安全套接字”下面選擇“認證SSL”。這樣我們就可以使用SSL連接了,連接成功后,我們將會在FlashFxp的狀態欄下看到一把小鎖的標志,說明已經進行成功SSL安全連接?,F在大家可以用嗅探工具對ftp端口進行嗅探,在未使用SSL傳輸連接的時候,可以嗅探到明文密碼,通過使用SSL加密傳輸連接,逃過了明文傳輸被嗅探這一劫。
現在Serv-U FTP服務器在國內應用相當廣泛,小到個人,大到集團,只要BUG一發現,針對漏洞的攻擊代碼一流傳起來,將給諸多企業及個人用戶帶來巨大的災難。對此,我們惟有確保安全部署好系統的情況下,對安全界投以關注的目光,時刻關注最新漏洞,做好防范措施,發現漏洞,及時給系統打上補丁,才能夠保證Serv-U不被入侵。
(責任編輯:銘銘 mingming_ky#126.com TEL:(010)-68476636)