pD.#C?3 在頻頻惡意攻擊用戶、系統漏洞層出不窮的今天,作為網絡管理員、系統管理員雖然在服務器的安全上都下了不少功夫,諸如及時打上系統安全補丁、進行一些常規 的安全配置,但有時仍不安全。因此必須惡意用戶入侵之前,通過一些系列安全設置,來將入侵者們擋在「安全門」之外,下面就將最簡單、最有效的防 (Overflow)溢出、本地提供權限攻擊類的解決辦法給大家分享。  
&X8>T 13  
)pM(v \e   一、如何防止溢出類攻擊 
9n Xr p@EZ    1、盡最大的可能性將系統的漏洞補丁都打完,最好是比如Microsoft Windows Server系列的系統可以將自動更新服務打開,然後讓服務器在您指定的某個時間段內自動連接到Microsoft Update網站進行補丁的更新。如果您的服務器為了安全起見 禁止了對公網外部的連接的話,可以用Microsoft WSUS服務在內網進行升級。 
!)ne }  
aPw5+8fN@    2、停掉一切不需要的系統服務以及應用程序,最大限能的降底服務器的被攻擊係數。比如前陣子的MSDTC溢出,就導致很多服務器掛掉了。其實如果WEB 類服務器根本沒有用到MSDTC服務時,您大可以把MSDTC服務停掉,這樣MSDTC溢出就對您的服務器不構成任何威脅了。  
g|AZ5^5!  
 .tQmO/    3、啟動TCP/IP端口的過濾,僅打開常用的TCP如21、80、25、110、3389等端口;如果安全要求級別高一點可以將UDP端口關閉,當然 如果這樣之後缺陷就是如在服務器上連外部就不方便連接了,這裡建議大家用IPSec來封UDP。在協議篩選中"只允許"TCP協議(協議號為:6)、 UDP協議(協議號為:17)以及RDP協議(協議號為:27)等必需用協議即可;其它無用均不開放。 
nsrsp6f  
rmPo>    4、啟用IPSec策略:為服務器的連接進行安全認證,給服務器加上雙保險。如③所說,可以在這裡封掉一些危險的端品諸如:135 145 139 445 以及UDP對外連接之類、以及對通讀進行加密與只與有信任關係的IP或者網絡進行通訊等等。(注:其實防反彈類木馬用IPSec簡單的禁止UDP或者不常 用TCP端口的對外訪問就成了,關於IPSec的如何應用這裡就不再敖續,可以到服安討論Search "IPSec",就 會有N多關於IPSec的應用資料..)  
(#T}5vk  
EM#]r   5、刪除、移動、更名或者用訪問控制表列Access Control Lists (ACLs)控制關鍵系統文件、命令及文件夾: 
PsIGb%2?  
MPmbYg@    (1).黑客通常在溢出得到shell後,來用諸如net.exe net1.exe ipconfig.exe user.exe query.exe regedit.exe regsvr32.exe 來達到進一步控制服務器的目的如:加賬號了,克隆管理員了等等;這裡可以將這些命令程序刪除或者改名。(注意:在刪除與改名時先停掉文件複製服務 (FRS)或者先將 %windir%\system32\dllcache\下的對應文件刪除或改名。)  
T]&&,"jY=H   (2).也或者將這些.exe文件移動到指定的文件夾,這樣也方便以後管理員自己使用。  
{RY ,dy<    (3).訪問控制表列ACLS控制:找到%windir%\system32下找到cmd.exe、cmd32.exe net.exe net1.exe ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe 這些黑客常用的文件,在「屬性」→「安全」中對他們進行訪問的ACLs用戶進 行定義,諸如只給administrator有權訪問,如果需要防範一些溢出攻擊、以及溢出成功後對這些文件的非法利用,那麼只需要將system用戶在 ACLs中進行拒絕訪問即可。  
Ru,#cy0H    (4).如果覺得在GUI下面太麻煩的話,也可以用系統命令的CACLS.EXE來對這些.exe文件的Acls進行編輯與修改,或者說將他寫成一個. bat批處理 文件來執行以及對這些命令進行修改。(具體用戶自己參見cacls /? 幫助進行,由於這裡的命令太多就不一一列舉寫成批處理代碼給各位了!!)  
mN|R36L   (5).對磁盤如C/D/E/F等進行安全的ACLS設置從整體安全上考慮的話也是很有必要的,另外特別是win2k,對Winnt、Winnt\System、Document and Setting等文件夾。  
p$@<R-ZS  
Q%Eq<<H    6、進行註冊表的修改禁用命令解釋器: (如果您覺得用⑤的方法太煩瑣的話,那麼您不防試試下面一勞永逸的辦法來禁止CMD的運行,通過修改註冊表,可以禁止用戶使用命令解釋器 (CMD.exe)和運行批處理文件(.bat文件)。具體方法:新建一個雙字節(REG_DWORD)執行 HKEY_CURRENT_USER\Software\Policies\ Microsoft\Windows\System\DisableCMD,修改其值為1,命令解釋器和批處理文件都不能被運行。修改其值為2,則只是禁 止命令解釋器的運行,反之將值改為0,則是打開CMS命令解釋器。如果您賺手動太麻煩的話,請將下面的代碼保存為*.reg文件,然後導入。  
?/ EjCD Windows Registry Editor Version 5.00  
U"/"CM [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]  
YiMsDD(E? "DisableCMD"=dword:00000001  
gY :z=c_~  
#8l@\/1    7、對一些以System權限運行的系統服務進行降級處理。(諸如:將Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以 System權限運行的服務或者應用程序換成其它administrators成員甚至users權限運行,這樣就會安全得多了...但前提是需要對這些 基本運行狀態、調用API等相關情況較為瞭解. )  
UA-D" [I.)  
( 0 ^l9h    其實,關於防止如Overflow溢出類攻擊的辦法除了用上述的幾點以外,還有N多種辦法:諸如用組策略進行限制,寫防護過濾程序用DLL方式加載 windows到相關的SHell以及動態鏈接程序之中這類。當然自己寫代碼來進行驗證加密就需要有相關深厚的Win32編程基礎了,以及對 Shellcode較有研究;由於此文僅僅是討論簡單的解決辦法,因此其它辦法就不在這裡詳述了。  
PvL[\?=*q  
;N*( ^;   二、如何防止溢出獲取Shell後對系統的進一步入侵 
Hl"-nz }  
QT s?rL>    1、 在做好1中上述的工作之後,基本上可以防目駭客在溢出之後得到shell了;因為即使Overflow溢出成功,但在調用CMDSHELL、以及對外聯接 時就卡了。 (為什麼呢,因為:1.溢出後程序無法再調用到CMDSHLL已經禁止system訪問CMD.exe了。2.溢出之後在進行反彈時已經無法對外部IP進 行連接了。所以,基本上要能過system權限來反彈shell就較困難的了...)  
)6I 9R]A  
utY&@SE]+    2、 當然世界上是不存在絕對的安全的,假設入侵者在得到了用戶的shell之後,做些什麼呢?一般入侵者在在得到shell之後,就會諸如利用系統命令加賬號 了 通過tftp、ftp、vbs等方式傳文件了等等來達到進一步控制服務器。這裡通過1上述的辦法對命令進行了限制,入侵者是沒有辦法通過tftp、ftp 來傳文件了,但他們仍然可以能過echo寫批處理,用批處理通過腳本BAT/VBS/VBA等從WEB上下載文件,以及修改其它盤類的文件等潛在破壞行 為。所以用戶需要 將echo命令也限制以及將其它盤的System寫、修改文件的權限進行處理。以及將VBS/VBA類腳本以及XMLhttp等組件進行禁用或者限制 system的運行權。這樣的話別人得到Shell也無法對服務器上的文件進行刪除以及進行步的控制系統了;以及本地提權反彈Shell了。  
>McJz'  
2# |'?o'   編者按:其它服務器、系統的安全是個整體的概念,有可能其它一小點的疏忽就可以讓用戶的網站、甚至服務器淪陷。因此安全策略必需走防患未然的道路,任何一個小地方都不能馬虎、今天關於防Overflow的安全小技巧就為大家介紹到這裡。

by smtk
原始出處 http://bbs.security.ccidnet.com/read.php?tid=542625
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()