1. 程式人生 > >對付溢位提權攻擊的解決辦法

對付溢位提權攻擊的解決辦法

    在頻頻惡意攻擊使用者、系統漏洞層出不窮的今天,作為網路管理員、系統管理員雖然在伺服器的安全上都下了不少功夫,諸如及時打上系統安全補丁、進行一些常規的安全配置,但有時仍不安全。因此必須惡意使用者入侵之前,通過一些系列安全設定,來將入侵者們擋在“安全門”之外,下面就將最簡單、最有效的防(Overflow)溢位、本地提供許可權攻擊類的解決辦法給大家分享。

中國.網管聯盟

  一、如何防止溢位類攻擊
  1、盡最大的可能性將系統的漏洞補丁都打完,最好是比如Microsoft Windows Server系列的系統可以將自動更新服務開啟,然後讓伺服器在您指定的某個時間段內自動連線到Microsoft Update網站進行補丁的更新。如果您的伺服器為了安全起見 禁止了對公網外部的連線的話,可以用Microsoft WSUS服務在內網進行升級。

bbs.bitsCN.com

  2、停掉一切不需要的系統服務以及應用程式,最大限能的降底伺服器的被攻擊係數。比如前陣子的MSDTC溢位,就導致很多伺服器掛掉了。其實如果WEB類伺服器根本沒有用到MSDTC服務時,您大可以把MSDTC服務停掉,這樣MSDTC溢位就對您的伺服器不構成任何威脅了。 bitsCN_com

  3、啟動TCP/IP埠的過濾,僅開啟常用的TCP如21、80、25、110、3389等埠;如果安全要求級別高一點可以將UDP埠關閉,當然如果這樣之後缺陷就是如在伺服器上連外部就不方便連線了,這裡建議大家用IPSec來封UDP。在協議篩選中"只允許"TCP協議(協議號為:6)、UDP協議(協議號為:17)以及RDP協議(協議號為:27)等必需用協議即可;其它無用均不開放。

bitsCN.nET中國網管部落格

  4、啟用IPSec策略:為伺服器的連線進行安全認證,給伺服器加上雙保險。如③所說,可以在這裡封掉一些危險的端品諸如:135 145 139 445 以及UDP對外連線之類、以及對通讀進行加密與只與有信任關係的IP或者網路進行通訊等等。(注:其實防反彈類木馬用IPSec簡單的禁止UDP或者不常用TCP埠的對外訪問就成了,關於IPSec的如何應用這裡就不再敖續,可以到服安討論Search "IPSec",就 會有N多關於IPSec的應用資料..)

bbs.bitsCN.com

  5、刪除、移動、更名或者用訪問控制表列Access Control Lists (ACLs)控制關鍵系統檔案、命令及資料夾:
 
  (1).黑客通常在溢位得到shell後,來用諸如net.exe net1.exe ipconfig.exe user.exe query.exe regedit.exe regsvr32.exe 來達到進一步控制伺服器的目的如:加賬號了,克隆管理員了等等;這裡可以將這些命令程式刪除或者改名。(注意:在刪除與改名時先停掉檔案複製服務(FRS)或者先將 %windir%system32dllcache下的對應檔案刪除或改名。)
  (2).也或者將這些.exe檔案移動到指定的資料夾,這樣也方便以後管理員自己使用。
  (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中進行拒絕訪問即可。
  (4).如果覺得在GUI下面太麻煩的話,也可以用系統命令的CACLS.EXE來對這些.exe檔案的Acls進行編輯與修改,或者說將他寫成一個.bat批處理 檔案來執行以及對這些命令進行修改。(具體使用者自己參見cacls /? 幫助進行,由於這裡的命令太多就不一一列舉寫成批處理程式碼給各位了!!)

中國網管論壇


  (5).對磁碟如C/D/E/F等進行安全的ACLS設定從整體安全上考慮的話也是很有必要的,另外特別是win2k,對Winnt、WinntSystem、Document and Setting等資料夾。

BBS.bitsCN.com網管論壇

  6、進行登錄檔的修改禁用命令直譯器: (如果您覺得用⑤的方法太煩瑣的話,那麼您不防試試下面一勞永逸的辦法來禁止CMD的執行,通過修改登錄檔,可以禁止使用者使用命令直譯器(CMD.exe)和執行批處理檔案(.bat檔案)。具體方法:新建一個雙位元組(REG_DWORD)執行 HKEY_CURRENT_USERSoftwarePolicies MicrosoftWindowsSystemDisableCMD,修改其值為1,命令直譯器和批處理檔案都不能被執行。修改其值為2,則只是禁止命令直譯器的執行,反之將值改為0,則是開啟CMS命令直譯器。如果您賺手動太麻煩的話,請將下面的程式碼儲存為*.reg檔案,然後匯入。
  Windows Registry Editor Version 5.00
  [HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsSystem]
  "DisableCMD"=dword:00000001

DL.bitsCN.com網管軟體下載

  7、對一些以System許可權執行的系統服務進行降級處理。(諸如:將Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以System許可權執行的服務或者應用程式換成其它administrators成員甚至users許可權執行,這樣就會安全得多了...但前提是需要對這些基本執行狀態、呼叫API等相關情況較為了解. ) bitsCN.nET中國網管部落格

  其實,關於防止如Overflow溢位類攻擊的辦法除了用上述的幾點以外,還有N多種辦法:諸如用組策略進行限制,寫防護過濾程式用DLL方式載入windows到相關的SHell以及動態連結程式之中這類。當然自己寫程式碼來進行驗證加密就需要有相關深厚的Win32程式設計基礎了,以及對Shellcode較有研究;由於此文僅僅是討論簡單的解決辦法,因此其它辦法就不在這裡詳述了。

www.bitsCN.com

  二、如何防止溢位獲取Shell後對系統的進一步入侵

DL.bitsCN.com網管軟體下載

  1、 在做好1中上述的工作之後,基本上可以防目駭客在溢位之後得到shell了;因為即使Overflow溢位成功,但在呼叫CMDSHELL、以及對外聯接時就卡了。 (為什麼呢,因為:1.溢位後程序無法再呼叫到CMDSHLL已經禁止system訪問CMD.exe了。2.溢位之後在進行反彈時已經無法對外部IP進行連線了。所以,基本上要能過system許可權來反彈shell就較困難的了...)

bitsCN_com

  2、 當然世界上是不存在絕對的安全的,假設入侵者在得到了使用者的shell之後,做些什麼呢?一般入侵者在在得到shell之後,就會諸如利用系統命令加賬號了 通過tftp、ftp、vbs等方式傳檔案了等等來達到進一步控制伺服器。這裡通過1上述的辦法對命令進行了限制,入侵者是沒有辦法通過tftp、ftp來傳檔案了,但他們仍然可以能過echo寫批處理,用批處理通過指令碼BAT/VBS/VBA等從WEB上下載檔案,以及修改其它盤類的檔案等潛在破壞行為。所以使用者需要 將echo命令也限制以及將其它盤的System寫、修改檔案的許可權進行處理。以及將VBS/VBA類指令碼以及XMLhttp等元件進行禁用或者限制system的執行權。這樣的話別人得到Shell也無法對伺服器上的檔案進行刪除以及進行步的控制系統了;以及本地提權反彈Shell了。