Rootkit 真刀真槍的許可權保衛戰

2021-04-09 06:55:29 字數 4085 閱讀 9029

通常,我們在獲得了對目標的控制權後,還想保持這種控制許可權,於是就出現了

木馬後門,rootkit之類的保護許可權的手段。首先來說一下我們常見的應用層次的

木馬後門,比如我們常見的遠端控制類的

軟體,像國外的sub7,vnc,netbus,國內的冰河,灰鴿子,黑洞等等,這些大家都很熟悉就不詳細介紹了。此類後門很容易被發現,現在的防毒

軟體大多都能輕鬆的查殺,即使暫時查不到,用其它手段檢測發現也不困難,而這次給大家介紹的是比一般

木馬後門潛伏的更深

木馬後門--rootkit。

傳統的rootkit是一種比普通

木馬後門更為陰險的

木馬後門。它主要通過替換系統檔案來達到目的,這樣就會更加隱蔽,使檢測變得比較困難。傳統的rootkit主要針對unix平台,例如linux、aix、sunos等作業系統,有些rootkits可以通過替換dll檔案或更改系統來

攻擊windows平台。rootkit並不能讓你直接獲得許可權,相反它是在你通過各種方法獲得許可權後才能使用的一種保護許可權的措施,在我們獲取系統根許可權(根許可權即root許可權,是unix系統的最高許可權)以後,rootkits提供了一套

工具用來建立後門和隱藏行跡,從而讓

攻擊者保住許可權。

傳統rootkit對unix的

攻擊rootkits是如何實現後門的呢?為了理解rootkits後門,有必要先了解一下unix的基本工作流程,當我們訪問unix時(不管是本地還是遠端登入),/bin/login程式都會執行,系統將通過/bin/login來收集並核對使用者的帳號和

密碼。rootkits使用乙個帶有根許可權後門

密碼的/bin/login來替換系統的/bin/login,這樣

攻擊者輸入根許可權後門的

密碼,就能進入系統。就算管理員更改了原來的系統

密碼或者把

密碼清空。我們仍能夠使用後門

密碼以根使用者身份登入。在攻入unix系統後,

入侵者通常會進行一系列的

攻擊動作,如安裝嗅探器收集重要資料,而unix中也會有些系統檔案會監視這些動作,比如ifconfig等,rootkit當然不會束手就擒,它會同樣替換一下這些系統檔案,通常被rootkit替換的系統程式有login,ifconfig,du,find,ls,netstart,ps等。由於篇幅問題,這些系統檔案的功能就不一一羅列,有興趣的讀者可以自己去查詢,現在rootkit的

工具很多,裡面基本都是包含一些處理過的系統檔案來代替原來的系統檔案的,像tomkit等一些rootkit就是比較優秀的了。

防禦辦法:rootkit如此可怕,得好好防它才行,實際上,最有效的防禦方法是定期對重要系統檔案的完整性進行核查,這類的

工具很多,像tripwire就是乙個非常不錯的檔案完整性檢查

工具。一但發現遭受到rootkit

攻擊,必須完全重灌所有的系統檔案、部件和程式,以確保安全性。

寫到這裡,戰爭似乎結束了,然而更可怕的rootkit還沒登場,那就是核心級rootkit。在大多數作業系統中(各種unix和windows),核心是作業系統最基本的部件,它控制著對網路裝置、程序、系統記憶體、磁碟等的訪問。例如當你開啟乙個檔案時,開啟檔案的請求被傳送到核心,核心負責從磁碟得到檔案的位元位並執行你的檔案瀏覽程式。核心級rootkit使

攻擊者獲得對系統底層的完全控制權。

攻擊者可以修改你的核心,大多數核心級rootkit都能進行執行重定向,即截獲執行某一程式的命令,將其重定向到

入侵者所選中的程式並執行此程式。也就是說使用者或管理員要執行程式a,被修改過的核心假裝執行a,實際卻執行了程式b。

核心級rootkit對unix的

攻擊和傳統的rootkit不同,核心級rootkit

攻擊時unix的bin/login並未被修改,但所有執行/bin/login的請求(當登入系統時將產生)都被重定向到

攻擊者製作的隱藏檔案/bin/backdoorlogin,這樣當系統管理員使用檢測傳統級別的rootkit的方法(比如用tripwire之類的

軟體檢測檔案的完整性)就行不通了,因為/bin/login並沒有被改變。同樣的道理,

攻擊者對其他的系統程式也進行重定,這樣你的操作實際就是按照

入侵者的意願執行了。

核心級rootkit不僅會進行「執行重定向」設定,還有很多支援檔案隱蔽。傳統的rootkit是通過替換ls程式來實現檔案的隱藏,而核心級的rootkit則是通過對核心的修改來對ls程式欺騙,更加的陰險隱蔽。另外核心級的rootkit還能對程序和網路進行隱藏,使用者將得不到真實的系統情況報告。

實現思路:根據系統的型別,

攻擊者有不同的方法來對核心進行修改,在n種unix系統上修改核心最簡單的方法就是利用系統本身的載入的核心模組(lkm)的功能,因此大多數的核心級rootkit通過利用lkm

動態地將核心更新來提供新功能,新新增的模組擴充套件了核心,同時對核心和其他使用核心的所有東西有了完全訪問權。

因此,許多核心級rootkit都通過lkm來實現。安裝通過lkm實現的核心級rootkit十分簡單。例如,在linux上安裝knark核心級rootkit只需具有根許可權的

入侵者輸入命令:in**od knark.o就行了,模組被安裝後就等著我們輸入命令了。更妙的是整個過程不需要重啟。通過lkm實現的rootkit在unix上十分流行。我們也常常會通過給windows平台打lkm補丁的方法

攻擊windows。

核心級rootkit例項

現在有大量的核心級rootkit可用,就選幾種比較強大的來跟大家討論一下。

一、linux

上的核心級rootkit:knark

knark具有各種標準的核心級rootkit功能,包括執行重定向,檔案隱藏,程序隱藏和網路隱藏。另外,還有不少比較過癮的功能,如:

1、遠端執行:我們可以通過網路向執行knark的機器傳送一條命令,源位址是假造的,命令被發往udp埠53,使之表面上看起來像是dns流量。我們就可以利用這個功能來公升級knark,刪除系統檔案或任何我們想做的事。

2、任務

攻擊:當某一程序在系統上執行時,它總是具有與uid和有效的uid(euid)相關的許可權。另外程序還具有與檔案系統uid(fsuid)相關的檔案及目錄訪問權。knark的任務

攻擊能力可實時地將程序uid,euid和fsuid改變。程序在不停止運動的情況下突然具有了新的許可權。

3、隱藏混雜模式:同一般的rootkit一樣,

入侵者也會在受害者機器上執行嗅探器。我們可以用檔案隱藏和程序隱藏將嗅探器隱藏起來。然而,乙太網卡會被設成混雜模式,管理員可以檢查到這一點knark將核心進行了修改,使之隱瞞網絡卡的混合模式,這將使嗅探變得更加隱秘。

4、實時程序隱藏:knark可以將乙個正在執行的程序隱藏起來。通過傳送訊號31給乙個程序,此程序將消失,但仍在執行。命令kill-31 process_id將阻止核心匯報任何有關此程序的資訊。程序在執行時,ps和lsof命令的使用都不能顯示此程序。

5、核心模組隱藏:linux中的l**od命令可以列出當前在機器上安裝的lkm,我們自然不想讓管理員看到knark模組,因此knark包含了乙個單獨的模組modhide,modhide將knark和自己隱藏了起來。這樣,當我們用knark

攻擊乙個系統時,我們首先為knark.o做乙個in**od,然後為modhide.o做乙個in**od。這樣不管誰執行l**od命令,這些模組都不會被發現。

二、另乙個linux上的核心級rootkit:adore

同knark一樣,adore也是乙個針對linux的lkm rootkit,他包含了標準的核心級rootkit功能,如檔案隱藏,程序隱藏,網路隱藏和核心模組隱藏。我們只所以討論adore,是因為他還有乙個非常強大的功能:內建的根許可權後門。

adore的根許可權後門可以讓我們連線到系統上並獲得根許可權的命令外殼,此功能十分直接了當 ,adore將此功能巧妙的包含在核心模組中了。這一招十分難破,因為管理員看不到任何檔案、程序、偵聽網路埠的跡象。

防禦辦法:防禦核心級的rootkit的根本辦法是不要讓

攻擊者得到你的機器的系統的根本許可權(unix裡的root和windows裡的admin),不過這看起來像廢話:),目前對核心級的rootkit還沒有絕對的防禦體系。

現在也存在一些rootkit自動檢測

工具,但都不是很可靠。同時核心級的rootkit也在不斷的發展中,對一些系統來說防禦它最好的辦法是使用不支援lkm的核心,linux的核心就可以設成不支援lkm的單一核心。

Rootkit的學習與研究

rootkit的學習與研究 rootkit是什麼?估計很多朋友並不明白,簡單的說,rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的檔案 程序和網路鏈結等資訊,比較多見到的是rootkit一般都和木馬 後門等其他惡意程式結合使用。rootkit通重載入特殊的驅動,修改系統核心...

Rootkit的學習與研究

rootkit是什麼?估計很多朋友並不明白,簡單的說,rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的檔案 程序和網路鏈結等資訊,比較多見到的是rootkit一般都和木馬 後門等其他惡意程式結合使用。rootkit通重載入特殊的驅動,修改系統核心,進而達到隱藏資訊的目的。技...

Linux下Rootkit的另類檢測

linux下rootkit的另類檢測 當 獲取管理員許可權時,首先是抹掉 系統的相關記錄,並且隱藏自己的行蹤,要實現這一目的最常用的方法就是使用 rootkits 簡單的說,rootkits 是一種經修改的 指令碼 系統程式,用於在乙個目標系統中非法獲取系統的最高控制許可權。rootkits 被廣泛...