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