Rookit

Rootkit出現於二十世紀90年代初,在1994年2月的一篇安全諮詢報告中首先使用了rootkit這個名詞。這篇安全諮詢就是CERT-CC的CA-1994-01,題目是Ongoing Network Monitoring Attacks,最新的修訂時間是1997年9月19日。從出現至今,rootkit的技術發展非常迅速,套用越來越廣泛,檢測難度也越來越大。

主要功能

在網路安全中經常會遇到rootkit,NSA安全和入侵檢測術語字典( NSA Glossary of Terms Used in Security and Intrusion Detection)對rootkit的定義如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operating systems.
好多人有一個誤解,他們認為rootkit是用作獲得系統root訪問許可權的工具。實際上,rootkit是攻擊者用來隱藏自己的蹤跡和保留root訪問許可權的工具。通常,攻擊者通過遠程攻擊獲得root訪問許可權,或者首先密碼猜測或者密碼強制破譯的方式獲得系統的訪問許可權。進入系統後,如果他還沒有獲得root許可權,再通過某些安全漏洞獲得系統的root許可權。接著,攻擊者會在侵入的主機中安裝rootkit,然後他將經常通過rootkit的後門檢查系統是否有其他的用戶登錄,如果只有自己,攻擊者就開始著手清理日誌中的有關信息。通過rootkit的嗅探器獲得其它系統的用戶和密碼之後,攻擊者就會利用這些信息侵入其它的系統。

什麼是rootkit

其中針對SunOS和Linux兩種作業系統的rootkit最多(樹大招風:P)。所有的rootkit基本上都是由幾個獨立的程式組成的,一個典型rootkit包括:
乙太網嗅探器程程式,用於獲得網路上傳輸的用戶名和密碼等信息。
特洛伊木馬程式,例如:inetd或者login,為攻擊者提供後門。
隱藏攻擊者的目錄和進程的程式,例如:ps、netstat、rshd和ls等。
可能還包括一些日誌清理工具,例如:zap、zap2或者z2,攻擊者使用這些清理工具刪除wtmp、utmp和lastlog等日誌檔案中有關自己行蹤的條目。
一些複雜的rootkit還可以向攻擊者提供telnet、shell和finger等服務。
還包括一些用來清理/var/log和/var/adm目錄中其它檔案的一些腳本
攻擊者使用rootkit中的相關程式替代系統原來的ps、ls、netstat和df等程式,使系統管理員無法通過這些工具發現自己的蹤跡。接著使用日誌清理工具清理系統日誌,消除自己的蹤跡。然後,攻擊者會經常地通過安裝的後門進入系統查看嗅探器的日誌,以發起其它的攻擊。如果攻擊者能夠正確地安裝rootkit併合理地清理了日誌檔案,系統管理員就會很難察覺系統已經被侵入,直到某一天其它系統的管理員和他聯繫或者嗅探器的日誌把磁碟全部填滿,他才會察覺已經大禍臨頭了。但是,大多數攻擊者在清理系統日誌時不是非常小心或者乾脆把系統日誌全部刪除了事,警覺的系統管理員可以根據這些異常情況判斷出系統被侵入。不過,在系統恢復和清理過程中,大多數常用的命令例如ps、df和ls已經不可信了。許多rootkit中有一個叫做FIX的程式,在安裝rootkit之前,攻擊者可以首先使用這個程式做一個系統二進制代碼的快照,然後再安裝替代程式。FIX能夠根據原來的程式偽造替代程式的三個時間戳(atime、ctime、mtime)、date、permission、所屬用戶和所屬用戶組。如果攻擊者能夠準確地使用這些優秀的應用程式,並且在安裝rootkit時行為謹慎,就會讓系統管理員很難發現。
LINUX ROOTKIT IV
前面說過,大部分rootkit是針對Linux和SunOS的,下面我們介紹一個非常典型的針對Linux系統的rootkit---Linux Rootkit IV。Linux Rootkit IV是一個開放源碼的rootkit,是Lord Somer編寫的,於1998年11月發布。不過,它不是第一個Linux Rootkit,在它之前有lrk、lnrk、lrk2和lrk3等Linux Rootkit。這些rootkit包括常用的rootkit組件,例如嗅探器日誌編輯/刪除工具、和後門程式的。
經過這么多年的發展,Linux Rootkit IV功能變的越來越完善,具有的特徵也越來越多。不過,雖然它的代碼非常龐大,卻非常易於安裝和使用,只要執行make install就可以成功安裝。如果你還要安裝一個shadow工具,只要執行make shadow install就可以了。注意:Linux Rootkit IV只能用於Linux 2.x的核心。下面我們簡單地介紹一下Linux Rootkit IV包含的各種工具,詳細的介紹請參考其發布包的README檔案。

隱藏程式

為了隱藏入侵者的行蹤,Linux Rootkit IV的作者可謂煞費心機,編寫了許多系統命令的替代程式,使用這些程式代替原由的系統命令,來隱藏入侵者的行蹤。這些程式包括:
ls、find、du
這些程式會阻止顯示入侵者的檔案以及計算入侵者檔案占用的空間。在編譯之前,入侵者可以通過ROOTKIT_FILES_FILE設定自己的檔案所處的位置,默認是/dev/ptyr。注意如果在編譯時使用了SHOWFLAG選項,就可以使用ls -/命令列出所有的檔案。這幾個程式還能夠自動隱藏所有名字為:ptyr、hack.dir和W4r3z的檔案。
ps、top、pidof
這幾個程式用來隱藏所有和入侵者相關的進程。
netstat
隱藏出/入指定IP位址或者連線埠的網路數據流量。
killall
不會殺死被入侵者隱藏的進程。
ifconfig
如果入侵者啟動了嗅探器,這個程式就阻止PROMISC標記的顯示,使系統管理員難以發現網路接口已經處於混雜模式下。
crontab
隱藏有關攻擊者的crontab條目。
tcpd
阻止向日誌中記錄某些連線
syslogd
過濾掉日誌中的某些連線信息
木馬程式
為本地用戶提供後門,包括:
chfn
提升本地普通用戶許可權的程式。運行chfn,在它提示輸入新的用戶名時,如果用戶輸入rookit密碼,他的許可權就被提升為root。默認的rootkit密碼是satori。
chsh
也是一個提升本地用戶許可權的程式。運行chsh,在它提示輸入新的shell時,如果用戶輸入rootkit密碼,他的許可權就被提升為root。
passwd
和上面兩個程式的作用相同。在提示你輸入新密碼時,如果輸入rookit密碼,許可權就可以變成root。
login
允許使用任何帳戶通過rootkit密碼登錄。如果使用root帳戶登錄被拒絕,可以嘗試一下rewt。當使用後門時,這個程式還能夠禁止記錄命令的歷史記錄。
木馬網路監控程式
這些程式為遠程用戶提供後門,可以向遠程用戶提供inetd、rsh、ssh等服務,具體因版本而異。隨著版本的升級,Linux Rootkit IV的功能也越來越強大,特徵也越來越豐富。一般包括如下網路服務程式:
inetd
特洛伊inetd程式,為攻擊者提供遠程訪問服務。
rshd
為攻擊者提供遠程shell服務。攻擊者使用rsh -l rootkitpassword host command命令就可以啟動一個遠程root shell。
sshd
為攻擊者提供ssh服務的後門程式。
工具程式
所有不屬於以上類型的程式都可以歸如這個類型,它們實現一些諸如:日誌清理、報文嗅探以及遠程shell的連線埠綁定等功能,包括:
fix
檔案屬性偽造程式
linsniffer
報文嗅探器程式。
sniffchk
一個簡單的bash shell腳本,檢查系統中是否正有一個嗅探器在運行。
wted
wtmp/utmp日誌編輯程式。你可以使用這個工具編輯所有wtmp或者utmp類型的檔案。
z2
utmp/wtmp/lastlog日誌清理工具。可以刪除utmp/wtmp/lastlog日誌檔案中有關某個用戶名的所有條目。不過,如果用於Linux系統需要手工修改其原始碼,設定日誌檔案的位置。
bindshell rootkit
在某個連線埠上綁定shell服務,默認連線埠是12497。為遠程攻擊者提供shell服務。
如何發現rootkit
很顯然,只有使你的網路非常安裝讓攻擊者無隙可乘,才能是自己的網路免受rootkit的影響。不過,恐怕沒有人能夠提供這個保證,但是在日常的網路管理維護中保持一些良好的習慣,能夠在一定程度上減小由rootkit造成的損失,並及時發現rootkit的存在。
首先,不要在網路上使用明文傳輸密碼,或者使用一次性密碼。這樣,即使你的系統已經被安裝了rootkit,攻擊者也無法通過網路監聽,獲得更多用戶名和密碼,從而避免入侵的蔓延。
使用Tripwire和aide等檢測工具能夠及時地幫助你發現攻擊者的入侵,它們能夠很好地提供系統完整性的檢查。這類工具不同於其它的入侵檢測工具,它們不是通過所謂的攻擊特徵碼來檢測入侵行為,而是監視和檢查系統發生的變化。Tripwire首先使用特定的特徵碼函式為需要監視的系統檔案和目錄建立一個特徵資料庫,所謂特徵碼函式就是使用任意的檔案作為輸入,產生一個固定大小的數據(特徵碼)的函式。入侵者如果對檔案進行了修改,即使檔案大小不變,也會破壞檔案的特徵碼。利用這個資料庫,Tripwire可以很容易地發現系統的變化。而且檔案的特徵碼幾乎是不可能偽造的,系統的任何變化都逃不過Tripwire的監視(當然,前提是你已經針對自己的系統做了準確的配置:P,關於Tripwire和aide的使用請參考本站的相關文章)。最後,需要能夠把這個特徵碼資料庫放到安全的地方。

相關詞條

相關搜尋

熱門詞條

聯絡我們