Solaris服務(wù)器防范rootkit攻擊攻略_第1頁
Solaris服務(wù)器防范rootkit攻擊攻略_第2頁
Solaris服務(wù)器防范rootkit攻擊攻略_第3頁
Solaris服務(wù)器防范rootkit攻擊攻略_第4頁
Solaris服務(wù)器防范rootkit攻擊攻略_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、rootkit的定義 rootkit這個術(shù)語已經(jīng)存在10多年了。它是由有用的小型程序組成的工具包,使得攻擊者能夠保持訪問計算機上具有最高權(quán)限的用戶“root”。換句話說,rootkit是能夠持久或可靠地、無法檢測地存在于計算機上的一組程序和代碼。在上述rootkit定義中,關(guān)鍵詞是“無法檢測”。rootkit所采用的大部分技術(shù)和技巧都用于在計算機上隱藏代碼和數(shù)據(jù)。例如,許多rootkit可以隱藏文件和目錄。rootkit的其它特性通常用于遠程訪問和竊聽例如,用于嗅探網(wǎng)絡(luò)上的報文。當這些特性結(jié)合起來后,它們會給安全帶來毀滅性的打擊。 要取得一個主機的控制權(quán),最簡單的當然就是以登錄程序(如&#

2、160;login, ssh, telnet 等) 加上猜測密碼的程序來嘗試進行登入的行為。不過,由于登入程序大部分都有登入次數(shù)的限制,因此使用密碼猜測程序就不這么流行了。高級的黑客為了系統(tǒng)網(wǎng)絡(luò)的安全,會撰寫一些程序去測試自己主機的服務(wù)漏洞, 并且在發(fā)現(xiàn)了某些服務(wù)的漏洞之后,會通報該服務(wù)的維護團體,或者是貢獻自己的修補方式,以補足自己系統(tǒng)的安全性。而服務(wù)開發(fā)/維護團體在接到這樣的通報之后,會在最短的時間內(nèi)進行程序修改, 并且在因特網(wǎng)上面進行通報與釋出該漏洞的修補程序。 然而在這個漏洞通報出來之后,與修補程序釋出Sun空窗期,某些惡意的

3、黑客就會針對這樣的漏洞進行攻擊,這些黑客同樣是撰寫程序來攻擊該漏洞,同時取得被攻擊主機的控制權(quán),或者是植入木馬程序在受攻擊的主機上。 這些黑客與高級黑客不同的地方,在于他們會很驕傲的將攻擊的成果貼在一些黑客常上的網(wǎng)站,藉以推銷自己,同時,也會將他們撰寫的惡意程序散播到互聯(lián)網(wǎng)上面。 有些黑客就會將這些惡意程序收集起來,做成軟件包,并使這些程序包更加流行于互聯(lián)網(wǎng)上面, 這些惡意的程序包就被稱為 rootkit 。 二、rootkit 的類型 我們可將unix和Linux下的 rootkit 分為兩大類:應用層級rook

4、it 和內(nèi)核級別rootkit 1.應用層級 rootkit 應用層級 rootkit 是最常被拿來使用的 rootkit。攻擊者以 rootkit 中的木馬程序來替換系統(tǒng)中正常的應用程序與系統(tǒng)文件。木馬程序會提供后門給攻擊者并隱藏其蹤跡,攻擊者做的任何活動都不會儲存在紀錄文件中。下面列舉了一些攻擊者可能取代的文件: 隱藏攻擊者蹤跡的程序 (1)ls, find, du - 木馬程序可以隱藏攻擊者文件、欺騙系統(tǒng),讓系統(tǒng)的文件及目錄泄露訊息。 (2)ps, top, 

5、pidof - 這些程序都是程序監(jiān)看程序,它們可以讓攻擊者在進行攻擊的過程中,隱藏攻擊者本身的程序。 (3)netstat - netstat 是用來檢查網(wǎng)絡(luò)活動的連結(jié)與監(jiān)聽,如開放的通訊端口等等 。木馬程序 netstat 可以隱藏攻擊者的網(wǎng)絡(luò)活動,例如 ssh daemon 或其它服務(wù)。 (4)killall - 木馬程序 killall 讓管理者無法停止程序。 (5)ifconfig - 當監(jiān)聽軟件正在執(zhí)行時,木馬程序 

6、ifconfig 不會顯示 PROMISC flag,這樣可以隱藏攻擊者,不被監(jiān)聽軟件察覺。 (6)crontab - 木馬程序 crontab 可以隱藏攻擊者的 crontab 進入情況。 (7)tcpd, syslogd - 木馬程序 tcpd 與 "syslog" 不會紀錄攻擊者的行為。 后門程序 (1)chfn - 提升使用者的權(quán)限。執(zhí)行 chfn,在輸入新使用者名稱時,只要輸入

7、 rootkit 密碼,就可以取得 root 的權(quán)限。 (2)chsh - 提升使用者的權(quán)限。執(zhí)行 chsh,在輸入新 shell 時,只要輸入rootkit 密碼,就可以取得 root 的權(quán)限。 (3)passwd - 提升使用者的權(quán)限。執(zhí)行 passwd,在輸入新密碼時,只要輸入rootkit 密碼,就可以取得 root 的權(quán)限。 (4)login - 能夠紀錄任何使用者名稱,包含 

8、root 登入的密碼。 (5)bd2 - 木馬程序 rpcbind 允許攻擊者在受害主機上執(zhí)行任意程序代碼。 木馬程序程序 (1)inetd - 木馬程序 inetd 可以替攻擊者打開遠程登入的通訊端口,只要輸入密碼就可以取得 root 的權(quán)限。 (2)rshd - 替攻擊者提供遠程的 shell。 (3)rsh - 透過 rsh 可以取得 root 的密碼。 (4)sshd -攻擊者以

9、特定賬號密碼登入就能擁有 root shell 的權(quán)限。 監(jiān)聽程序 (1)linsniffer - linux 小型的監(jiān)聽程序。 (2)sniffchk - 這個程序可以檢驗與確認網(wǎng)絡(luò)監(jiān)聽程序是否正在執(zhí)行。 (3)le - Solaris Ethernet 封包的監(jiān)聽程序。 (4)snif - linux 其它封包的監(jiān)聽程序。 (5)sniff-10mb - 這是一個設(shè)計來監(jiān)聽 10mbps Etherne

10、t 的監(jiān)聽程序。 (6)sniff-100mb - 這是一個設(shè)計來監(jiān)聽 100mbps Ethernet 的監(jiān)聽程序。 其它種類- (1)fix - 安裝木馬程序時 (例如:ls) 更改的時間戳記與檢驗封包值的訊息。 (2)wted - wtmp 的編輯程序。可讓攻擊者修改 wtmp。 (3)z2 - 移除 wtmp/utmp/lastlog。 (4)bindshell - 把 rootshell

11、 與某個通訊端口結(jié)合在一起。(預設(shè)埠號為 31337) (5)zap3 - 攻擊者會從 wtmp, utmp, lastlog, wtmpx 和 utmpx 移除他們的蹤跡 。zap3 通常根據(jù)下列目錄來找尋紀錄文件的位置,例如 /var/log, /var/adm, /usr/adm, 與 /var/run。 2.內(nèi)核級別rootkit 內(nèi)核級別rootkit 是比應用層級別 rootkit 功能更強大的

12、 rootkit。內(nèi)核級別rootkit 透過操作與利用 kernel,已成為最難被發(fā)現(xiàn) rootkit,因為它能夠在應用層檢查中,建立一條繞過檢驗的通道。雖然這種軟件主要是針對 linux 所制作,但它可能被修改來針對某個通訊端口或者是其它的操作系統(tǒng)來做攻擊,一旦被安裝在目標主機上,系統(tǒng)就可說是完全被黑客所控制,系統(tǒng)管理員甚至根本找不到黑客隱藏的蹤跡。內(nèi)核級別rootkit 是如何運作的呢? 它基本上是利用 LKMLoadable Kernel Module的功能讓攻擊者做出非法的動作。LKM

13、 在 linux 或其它系統(tǒng)中都是非常有用的工具,支持 LKM 的系統(tǒng)包含 FreeBSD 與 Solaris。操作系統(tǒng)里面有一些函數(shù)被系統(tǒng)用來建構(gòu) kernel,當這些函數(shù)遭到假冒與竄改,主機就不能再被信任了。下面針對內(nèi)核級別rootkit 的一些運作方式來做介紹: (1)隱藏程序 - 在 unix 執(zhí)行過程中,程序的紀錄訊息會存放于文件系統(tǒng)中的 "/proc",隱藏程序可以操作 sys_getdents()

14、60;系統(tǒng)呼叫函數(shù),在程序的架構(gòu)里就看不見這些附加且正在執(zhí)行的程序。 (2)隱藏網(wǎng)絡(luò)連結(jié) - 類似于隱藏程序,網(wǎng)絡(luò)連結(jié)會紀錄在 "/proc/net/tcp" 與 "/proc/net/udp" 這兩個文件之中,執(zhí)行 Kernel rootkit,無論何時讀取這兩個文件,都會隱藏攻擊者的蹤跡,不讓用戶知道。 (3)隱藏 LKM 的信號 - 通常 LKM 的默認值是可被看見的,這樣是為了方便其它使用者也可以使用。攻擊者

15、必須使用 "EXPORT_NO_SYMBOLS" 命令隱藏這些信號,以防止任何信號被泄漏出去。 (4)利用 LKM 傳遞訊息 - LKM Kernel rootkit 安裝完成之后,攻擊者若要通知kernel 隱藏另一文件,可透過 Kernel rootkit 來替換 sys_settimeofday()。之后只要透過一些特別的參數(shù),就可以請求系統(tǒng)來完成攻擊者想要完成的事情。 (5)改變文件的執(zhí)行 - 有時攻擊者可能

16、想要替換掉某些文件,例如 "login",但并不想要更改文件,此時 Kernel rootkit 可以替換 sys_execve()。這樣系統(tǒng)會持續(xù)執(zhí)行 "login" 并泄漏 "login" 程序的版本給攻擊者。 目前最流行的內(nèi)核級別rootkit,包含 linux 上的 knark 與 Solaris 上的Loadable Kernel Module,其中

17、0;knark 還包含了以下的程序: (1)hidef:用來隱藏文件。 (2)unhidef:用來設(shè)定執(zhí)行文件重新導向,使攻擊者的木馬可以被執(zhí)行。 (3)nethide:可以隱藏 /proc/net/tcp 與 /proc/net/udp 字符串,這也是netstat 擷取資料的地方,攻擊者可以用這個工具將目標主機上使用中的聯(lián)機訊息隱藏起來。 (4)taskhack:可以改變正在執(zhí)行中的程序,因此攻擊者可以將 /bin/sh 的程序,更改成為 root 的使用者賬號。 (5)rexec:可以從遠

18、程在 knark 服務(wù)器上執(zhí)行命令,也可以用來支持 ip 造假的功能。 (6)rootme:可以將權(quán)限提升到 root。 三、防止 rootkit 的攻擊基本思路 知道了這些 Rootkit 工具包之后,那么我們?nèi)绾味沤^黑客 使用 rootkit 程序包來攻擊我們的主機呢?由于 rootkit 主要是藉由主機的漏洞來攻擊的,因此, 您必須要確定不必要的服務(wù)請務(wù)必關(guān)閉, 此外隨時更新主機上面各套件的修補程序。關(guān)閉不必要的服務(wù)應該很簡單,至于更新套件的修補程序, 最好借助專業(yè)工具軟件提供的在線更新方式來維護, 這樣對于系統(tǒng)管理員來說,會比較輕松。這

19、樣還不夠喔!因為 rootkit 也很可能會偽裝成互聯(lián)網(wǎng)上面合法的軟件, 來吸引您安裝他。例如前幾年,著名的 OpenSSL 網(wǎng)站上所提供的套件竟然被發(fā)現(xiàn)已經(jīng)被黑客 置換掉所以,在您安裝取得的套件之前,請先以 MD5 或者其它指紋數(shù)據(jù)進行檔案的比對, 以確定該檔案是沒有問題的。當然,最好還是不要安裝來路不明的套件較好。而為了確認一下我們的主機是否被 rootkit 程序包所攻擊, 其實我們還可以透過其它的軟件工具來檢查主機的某些重要程序,例如下面提到的 ps, lsof 等的。 這就是我們這篇文章要提到的chkrootkit。四、Solaris服務(wù)器的基本安全檢查這里我們分如下幾個步驟:1.查

20、看登陸系統(tǒng)的用戶:我們用w命令顯示當前所有登陸系統(tǒng)的用戶,如圖1所示,輸出標題行顯示了當前系統(tǒng)時間,該系統(tǒng)已運行的時間,當前登陸用戶數(shù),最近1分鐘,5分鐘和15分鐘內(nèi)的平均系統(tǒng)負載。 USER字段顯示當前登陸的用戶名。TTY字段顯示了會話的控制終端,tty表示從控制臺登陸,pts/typ則可以表示通過一個網(wǎng)絡(luò)連接,2.查看系統(tǒng)開放的端口:我們用netstat an命令來顯示當前系統(tǒng)開放的端口,有時系統(tǒng)開放的端口比較多,一頁顯示不了,我們可以用|more這個管道命令使結(jié)果分頁顯示,便于我們查看輸出行通常有5個結(jié)果,其中比較重要的是proto顯示了使用協(xié)議,local address顯示了使用的本

21、地ip,這對于NAT地址轉(zhuǎn)換的情況比較有用,還有foreign address顯示了外部ip,state顯示了當前這個連接的狀態(tài)。3.使用lsof,使用 lsof 您可以檢查打開的文件,并根據(jù)需要在卸載之前中止相應的進程。同樣地,如果您發(fā)現(xiàn)了一個未知的文件,那么可以找出到底是哪個應用程序打開了這個文件。在 UNIX 環(huán)境中,文件無處不在,這便產(chǎn)生了一句格言:“任何事物都是文件”。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),通常還可以訪問網(wǎng)絡(luò)連接和硬件。在有些情況下,當您使用 ls 請求目錄清單時,將出現(xiàn)相應的條目。在其它情況下,如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報協(xié)議 (UDP) 套接字,不存在相應的

22、目錄清單。但是在后臺為該應用程序分配了一個文件描述符,無論這個文件的本質(zhì)如何,該文件描述符為應用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口。因為應用程序打開文件的描述符列表提供了大量關(guān)于這個應用程序本身的信息,所以能夠查看這個列表將是很有幫助的。完成這項任務(wù)的實用程序稱為 lsof,它對應于“l(fā)ist open files”(列出打開的文件)。幾乎在每個 UNIX 版本中都有這個實用程序。lsof下載安裝          #wget ftp:/ #gunzip lsof-4.77-sol10-

23、x86-local.gz #pkgadd -d lsof-4.77-sol10-x86-local        lsof的使用只需輸入 lsof 就可以生成大量的信息,如圖1所示。因為 lsof 需要訪問核心內(nèi)存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發(fā)揮其功能。                  

24、60;                           圖1 lsof命令輸出        每行顯示一個打開的文件,除非另外指定,否則將顯示所有進程打開的所有文件。Command、PID 和 User 列分別表示進程的名稱、進程標識符 (PID) 和所有者名稱。D

25、evice、SIZE/OFF、Node 和 Name 列涉及到文件本身的信息,分別表示指定磁盤的名稱、文件的大小、索引節(jié)點(文件在磁盤上的標識)和該文件的確切名稱。根據(jù) UNIX 版本的不同,可能將文件的大小報告為應用程序在文件中進行讀取的當前位置(偏移量)。圖5來自一臺可以報告該信息的 Sun Solaris 10 計算機,而 Linux 沒有這個功能。查找網(wǎng)絡(luò)連接網(wǎng)絡(luò)連接也是文件,這意味著可以使用 lsof 獲得關(guān)于它們的信息。假設(shè)您已經(jīng)知道 PID,但是有時候并非如此。如果您只知道相應的端口,那么可以使用 -i 參數(shù)利用套接字信息進行搜索。下面顯示了對 TCP 端口 22 的搜索。

26、60;    # lsof -i :22搜索活動的連接使用下面命令:    # lsof -i 0五、使用chkrootkit工具軟件 chkrootkit簡介顧名思義, chkrootkit 就是, 檢查 rootkit 是否存在的一種便利工具.chkrootkit 可以在以下平臺使用:Linux 、FreeBSD 、OpenBSD 、Solaris HP-UX , Tru64, Mac OS X截至目前(05/08/2001)為止, 最新版本是: c

27、hkrootkit v0.48 。它可以偵測以下63種 rootkit 及 worm,如表-1 。    01. lrk3, lrk4, lrk5, lrk6 02. Solaris rootkit;03. FreeBSD rootkit;04. t0rn (and variants)05. Ambient's Rootkit (ARK)06. Ramen Worm;07. rh67-shaper;08. RSHA;09. Romanian rootkit;10. RK17;11. Lion Worm;12. Adore Worm;13. LPD Worm

28、;14. kenny-rk;15. Adore LKM;16. ShitC Worm;17. Omega Worm;18. Wormkit Worm;19. Maniac-RK;20. dsc-rootkit;21. Ducoci rootkit;22. x.c Worm;23. RST.b trojan;24. duarawkz;25. knark LKM;26. Monkit;27. Hidrootkit;28. Bobkit;29. Pizdakit;30. t0rn v8.0;31. Showtee;32. Optickit;33. T.R.K;34. MithRa's Roo

29、tkit;35. George;36. SucKIT;37. Scalper;38. Slapper A, B, C and D;39. OpenBSD rk v1;40. Illogic rootkit;41. SK rootkit.42. sebek LKM;43. Romanian rootkit;44. LOC rootkit;45. shv4 rootkit;46. Aquatica rootkit;47. ZK rootkit;48. 55808.A Worm;49. TC2 Worm;50. Volc rootkit;51. Gold2 rootkit;52. Anonoying

30、 rootkit;53. Shkit rootkit;54. AjaKit rootkit;55. zaRwT rootkit;56. Madalin rootkit;57. Fu rootkit;58. Kenga3 rootkit;59. ESRK rootkit;60. rootedoor rootkit;61. Enye LKM;62. Lupper.Worm;63. shv5;        1.配置pkg-get        # pkg-ge

31、t installsoftwore        這條命令會自動下載適合你的體系結(jié)構(gòu)和為你的OS修訂的版本software(如果存在的話),并安裝它。如果你已安裝了一個較老的版本,就可以使用'upgrade'代替 'install',這樣就會用新的版本覆蓋老的版本(即升級)。安裝pkg-get: #pkgadd -d pkg_get.pkg all如果在solaris8下安裝有問題,請打下面幾個補丁patch:110380-04 (x86 110403)110934-11 (x86

32、110935)pkg-get將會安裝在/opt/csw/bin/目錄下。從blastwave安裝的軟件均安裝到該目錄中,請把/opt/csw/bin/設(shè)置到你的PATH環(huán)境變量中。編輯/etc/profile文件:       PATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin    2.pkg-get主要參數(shù)pkg-get -a :顯示所有軟件包。pkg-get -i gcc :安裝gcc軟件及其使用相關(guān)庫文件。pkg-get -D open :搜索所有相關(guān)軟件包pkg-get -U 升級使用軟件包3.使用pkg-get在線安裝chkrootkit    pkg-get install chkrootkit      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論