qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Linux后門入侵檢測工具,附bash漏洞解決方法

           一、rootkit簡介
            rootkit是Linux平臺下最常見的一種木馬后門工具,它主要通過替換系統文件來達到入侵和和隱蔽的目的,這種木馬比普通木馬后門更加危險和隱蔽,普通的檢測工具和檢查手段很難發現這種木馬。rootkit攻擊能力極強,對系統的危害很大,它通過一套工具來建立后門和隱藏行跡,從而讓攻擊者保住權限,以使它在任何時候都可以使用root權限登錄到系統。
            rootkit主要有兩種類型:文件級別和內核級別,下面分別進行簡單介紹。
            1、文件級別rootkit
            文件級別的rootkit一般是通過程序漏洞或者系統漏洞進入系統后,通過修改系統的重要文件來達到隱藏自己的目的。在系統遭受rootkit攻擊后,合法的文件被木馬程序替代,變成了外殼程序,而其內部是隱藏著的后門程序。通常容易被rootkit替換的系統程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最經常被替換的,因為當訪問Linux時,無論是通過本地登錄還是遠程登錄,/bin/login程序都會運行,系統將通過/bin/login來收集并核對用戶的賬號和密碼,而rootkit就是利用這個程序的特點,使用一個帶有根權限后門密碼的/bin/login來替換系統的/bin/login,這樣攻擊者通過輸入設定好的密碼就能輕松進入系統。此時,即使系統管理員修改root密碼或者清除root密碼,攻擊者還是一樣能通過root用戶登錄系統。攻擊者通常在進入Linux系統后,會進行一系列的攻擊動作,最常見的是安裝嗅探器收集本機或者網絡中其他服務器的重要數據。在默認情況下,Linux中也有一些系統文件會監控這些工具動作,例如ifconfig命令,所以,攻擊者為了避免被發現,會想方設法替換其他系統文件,常見的就是ls、ps、ifconfig、du、find、netstat等。如果這些文件都被替換,那么在系統層面就很難發現rootkit已經在系統中運行了。
            這就是文件級別的rootkit,對系統維護很大,目前最有效的防御方法是定期對系統重要文件的完整性進行檢查,如果發現文件被修改或者被替換,那么很可能系統已經遭受了rootkit入侵。檢查件完整性的工具很多,常見的有Tripwire、 aide等,可以通過這些工具定期檢查文件系統的完整性,以檢測系統是否被rootkit入侵。
            2、內核級別的rootkit
            內核級rootkit是比文件級rootkit更高級的一種入侵方式,它可以使攻擊者獲得對系統底層的完全控制權,此時攻擊者可以修改系統內核,進而截獲運行程序向內核提交的命令,并將其重定向到入侵者所選擇的程序并運行此程序,也就是說,當用戶要運行程序A時,被入侵者修改過的內核會假裝執行A程序,而實際上卻執行了程序B。
            內核級rootkit主要依附在內核上,它并不對系統文件做任何修改,因此一般的檢測工具很難檢測到它的存在,這樣一旦系統內核被植入rootkit,攻擊者就可以對系統為所欲為而不被發現。目前對于內核級的rootkit還沒有很好的防御工具,因此,做好系統安全防范就非常重要,將系統維持在最小權限內工作,只要攻擊者不能獲取root權限,就無法在內核中植入rootkit。
            二、rootkit后門檢測工具chkrootkit
            chkrootkit是一個Linux系統下查找并檢測rootkit后門的工具,它的官方址: http://www.chkrootkit.org/。 chkrootkit沒有包含在官方的CentOS源中,因此要采取手動編譯的方法來安裝,不過這種安裝方法也更加安全。下面簡單介紹下chkrootkit的安裝過程。
            1.準備gcc編譯環境
            對于CentOS系統,需要安裝gcc編譯環境,執行下述三條命令:
            [root@server ~]# yum -y install gcc
            [root@server ~]# yum -y install gcc-c++
            [root@server ~]# yum -y install make
            2、安裝chkrootkit
            為了安全起見,建議直接從官方網站下載chkrootkit源碼,然后進行安裝,操作如下:
            [root@server ~]# tar zxvf chkrootkit.tar.gz
            [root@server ~]# cd chkrootkit-*
            [root@server ~]# make sense
            # 注意,上面的編譯命令為make sense
            [root@server ~]# cd ..
            [root@server ~]# cp -r chkrootkit-* /usr/local/chkrootkit
            [root@server ~]# rm -rf chkrootkit-*
            3、使用chkrootkit
            安裝完的chkrootkit程序位于/usr/local/chkrootkit目錄下,執行如下命令即可顯示chkrootkit的詳細用法:
            [root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit  -h
            chkrootkit各個參數的含義如下所示。
            參數含義
            -h顯示幫助信息
            -v顯示版本信息
            -l顯示測試內容
            -ddebug模式,顯示檢測過程的相關指令程序
            -q安靜模式,只顯示有問題的內容
            -x高級模式,顯示所有檢測結果
            -r dir設置指定的目錄為根目錄
            -p dir1:dir2:dirN指定chkrootkit檢測時使用系統命令的目錄
            -n跳過NFS連接的目錄
          chkrootkit的使用比較簡單,直接執行chkrootkit命令即可自動開始檢測系統。下面是某個系統的檢測結果:
          [root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit
          Checking `ifconfig'... INFECTED
          Checking `ls'... INFECTED
          Checking `login'... INFECTED
          Checking `netstat'... INFECTED
          Checking `ps'... INFECTED
          Checking `top'... INFECTED
          Checking `sshd'... not infected
          Checking `syslogd'... not tested
          Checking `tar'... not infected
          Checking `tcpd'... not infected
          Checking `tcpdump'... not infected
          Checking `telnetd'... not found
            從輸出可以看出,此系統的ifconfig、ls、login、netstat、ps和top命令已經被感染。針對被感染rootkit的系統,最安全而有效的方法就是備份數據重新安裝系統。
            4、chkrootkit的缺點
            chkrootkit在檢查rootkit的過程中使用了部分系統命令,因此,如果服務器被黑客入侵,那么依賴的系統命令可能也已經被入侵者替換,此時chkrootkit的檢測結果將變得完全不可信。為了避免chkrootkit的這個問題,可以在服務器對外開放前,事先將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始系統命令讓chkrootkit對rootkit進行檢測。這個過程可以通過下面的操作實現:
            [root@server ~]# mkdir /usr/share/.commands
            [root@server ~]# cp `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
            [root@server ~]# /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/
            [root@server share]# cd /usr/share/
            [root@server share]# tar zcvf commands.tar.gz .commands
            [root@server share]#  rm -rf commands.tar.gz
            上面這段操作是在/usr/share/下建立了一個.commands隱藏文件,然后將chkrootkit使用的系統命令進行備份到這個目錄下。為了安全起見,可以將.commands目錄壓縮打包,然后下載到一個安全的地方進行備份,以后如果服務器遭受入侵,就可以將這個備份上傳到服務器任意路徑下,然后通過chkrootkit命令的“-p”參數指定這個路徑進行檢測即可。
            三、rootkit后門檢測工具RKHunter
            RKHunter是一款專業的檢測系統是否感染rootkit的工具,它通過執行一系列的腳本來確認服務器是否已經感染rootkit。在官方的資料中,RKHunter可以作的事情有:
            MD5校驗測試,檢測文件是否有改動
            檢測rootkit使用的二進制和系統工具文件
            檢測特洛伊木馬程序的特征碼
            檢測常用程序的文件屬性是否異常
            檢測系統相關的測試
            檢測隱藏文件
            檢測可疑的核心模塊LKM
            檢測系統已啟動的監聽端口
            下面詳細講述下RKHunter的安裝與使用。
            1、安裝RKHunter
            RKHunter的官方網頁地址為:http://www.rootkit.nl/projects/rootkit_hunter.html,建議從這個網站下載RKHunter,這里下載的版本是rkhunter-1.4.0.tar.gz。RKHunter的安裝非常簡單,過程如下:
            [root@server ~]# ls
            rkhunter-1.4.0.tar.gz
            [root@server ~]# pwd
            /root
            [root@server ~]# tar -zxvf rkhunter-1.4.0.tar.gz
            [root@server ~]# cd rkhunter-1.4.0
            [root@server rkhunter-1.4.0]# ./installer.sh  --layout default --install
            這里采用RKHunter的默認安裝方式,rkhunter命令被安裝到了/usr/local/bin目錄下。
            2、使用rkhunter指令
            rkhunter命令的參數較多,但是使用非常簡單,直接運行rkhunter即可顯示此命令的用法。下面簡單介紹下rkhunter常用的幾個參數選項。
            [root@server ~]#/usr/local/bin/rkhunter–help
            Rkhunter常用參數以及含義如下所示。
            參數             含義
            -c, –check必選參數,表示檢測當前系統
            –configfile <file>使用特定的配置文件
            –cronjob作為cron任務定期運行
            –sk, –skip-keypress自動完成所有檢測,跳過鍵盤輸入
            –summary顯示檢測結果的統計信息
            –update檢測更新內容
            -V, –version顯示版本信息
            –versioncheck檢測最新版本
            下面是通過rkhunter對某個系統的檢測示例:
          [root@server rkhunter-1.4.0]# /usr/local/bin/rkhunter   -c
          [ Rootkit Hunter version 1.4.0 ]
          #下面是第一部分,先進行系統命令的檢查,主要是檢測系統的二進制文件,因為這些文件最容易被rootkit攻擊。顯示OK字樣表示正常,顯示Warning表示有異常,需要引起注意,而顯示“Not found”字樣,一般無需理會
          Checking system commands...
          Performing 'strings' command checks
          Checking 'strings' command                           [ OK ]
          Performing 'shared libraries' checks
          Checking for preloading variables                        [ None found ]
          Checking for preloaded libraries                         [ None found ]
          Checking LD_LIBRARY_PATH variable                 [ Not found ]
          Performing file properties checks
          Checking for prerequisites                              [ Warning ]
          /usr/local/bin/rkhunter  [ OK ]
          /sbin/chkconfig                                       [ OK ]
          ....(略)....
          [Press <ENTER> to continue]
          #下面是第二部分,主要檢測常見的rootkit程序,顯示“Not found”表示系統未感染此rootkit
          Checking for rootkits...
          Performing check of known rootkit files and directories
          55808 Trojan - Variant A                                 [ Not found ]
          ADM Worm                                           [ Not found ]
          AjaKit Rootkit                                         [ Not found ]
          Adore Rootkit                                          [ Not found ]
          aPa Kit                                               [ Not found ]
          Apache Worm                                          [ Not found ]
          Ambient (ark) Rootkit                                    [ Not found ]
          Balaur Rootkit           [ Not found ]
          BeastKit Rootkit                                         [ Not found ]
          beX2 Rootkit                                             [ Not found ]
          BOBKit Rootkit                    [ Not found ]
          ....(略)....
          [Press <ENTER> to continue]

          posted on 2014-10-16 14:11 順其自然EVO 閱讀(301) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 姚安县| 衡山县| 海丰县| 车致| 临西县| 安阳县| 芦溪县| 玉树县| 新巴尔虎右旗| 定陶县| 龙陵县| 平湖市| 平凉市| 常宁市| 军事| 元阳县| 神池县| 金溪县| 武宣县| 会宁县| 嵊泗县| 枝江市| 慈利县| 莱州市| 上饶县| 乌苏市| 哈巴河县| 志丹县| 富蕴县| 东安县| 文登市| 鄂伦春自治旗| 凤山市| 南丹县| 鄂州市| 桃园县| 浙江省| 西安市| 大同县| 蒙山县| 凯里市|