Linux伺服器入侵檢測基礎

來源:互聯網
上載者:User

標籤:包括   情況   mount   lrzsz   檔案   form   name   程式   sort   

最近遇到了很多伺服器被入侵的例子,為了方便日後入侵檢測以及排查取證,我查詢了一些linux伺服器入侵取證的相關資料,並在此總結分享,以便日後查詢。
  一般伺服器被入侵的跡象,包括但不局限於:由內向外發送大量資料包(DDOS肉雞)、伺服器資源被耗盡(挖礦程式)、不正常的連接埠串連(反向shell等)、伺服器日誌被惡意刪除等。那麼既然是入侵檢測,首先要判斷的是伺服器是否被入侵,必須排除是管理員操作不當導致的問題,因此入侵檢測的第一項工作就是詢問管理員伺服器的異常現象,這對之後入侵類型的判斷非常重要。

  在詢問了相關異常資訊,排除了管理員操作失誤等原因後,那麼便可以開始正式的上伺服器進行入侵檢測以及取證操作了。

 

審計命令last

  這個命令可用於查看我們系統的成功登入、關機、重啟等情況,本質就是將/var/log/wtmp檔案格式化輸出,因此如果該檔案被刪除,則無法輸出結果。

相關參數:
last -10(-n) 查看最近10條記錄
last -x reboot 查看重啟的記錄
last -x shutdown 查看關機的記錄
last -d 查看登陸的記錄
last –help 命令協助資訊
last -f wtmp 用last命令查看wtmp檔案(直接開啟無法查看)

lastb

這個命令用於查看登入失敗的情況,本質就是將/var/log/btmp檔案格式化輸出。

相關參數:
lastb name(root) 查看root使用者登陸失敗記錄
lastb -10(-n) 查看最近10條登陸失敗記錄
lastb –heplp 命令協助資訊

lastlog

這個命令用於查看使用者上一次的登入情況,本質就是將/var/log/lastlog檔案格式化輸出。

相關參數:
lastlog 所有使用者上一次登陸記錄
lastlog -u username(root) root使用者上一次登陸記錄
lastlog –help 命令協助資訊

who

  這個命令使用者查看當前登入系統的情況,本質就是將/var/log/utmp檔案格式化輸出。主要用來查看目前使用者名稱,以及登陸的ip地址資訊,w命令與who一樣,會更詳細一些。

history

查看曆史命令記錄,其實就是查看root/.bash_history檔案內容,刪除這個檔案,記錄就沒了。

相關參數:
history 查看所有記錄
history -10 查看最近10條記錄
history | grep “wget” 查看wget相關資訊的記錄
history –help 命令協助資訊

history顯示時間戳記:

12 export HISTTIMEFORMAT="%F %T `whoami` "history | more

 

檢查使用者

Linux不同的使用者,有不同的操作許可權,但是所有使用者都會在/etc/passwd、/etc/shadow、/etc/group檔案中記錄。

12345 less /etc/passwd  查看是否有新增使用者grep :0 /etc/passwd  查看是否有特權使用者(root許可權使用者)ls -l /etc/passwd  查看passwd最後修改時間awk -F: ‘$3==0 {print $1}‘ /etc/passwd  查看是否存在特權使用者awk -F: ‘length($2)==0 {print $1}‘ /etc/shadow  查看是否存在空口令使用者

 

註:linux設定空口令:passwd -d username

檢查進程

  一般被入侵的伺服器都會運行一些惡意程式,或是挖礦程式,或者DDOS程式等等,如果程式運行著,那麼通過查看進程可以發現一些資訊。

普通進程
123456 ps -aux  查看進程top 查看進程lsof -p pid  查看進程所開啟的連接埠及檔案lsof -c 進程名  查看關聯檔案ps -aux | grep python | cut -d ‘ ‘ -f 2 | xargs kill 殺死python相關的進程檢查/etc/inetd.conf檔案,輸入:cat /etc/inetd.conf | grep –v "^#",輸出的資訊就是你這台機器所開啟的遠程服務。

如果進程中沒有發現異常,那麼可以看看有沒有開啟某些隱藏進程。

隱藏進程
123 ps -ef | awk ‘{print}‘ | sort -n | uniq >1ls /proc | sort -n |uniq >2diff 1 2

註:以上3個步驟為檢查隱藏進程。

檢查檔案

被入侵的網站,通常肯定有檔案被改動,那麼可以通過比較檔案建立時間、完整性、檔案路徑等方式查看檔案是否被改動。

123456789 find / -uid 0 -print  尋找特權使用者檔案find / -size +10000k -print  尋找大於10000k的檔案find / -name "…" -prin  尋找使用者名稱為…的檔案find / -name core -exec ls -l {} \;  尋找core檔案,並列出詳細資料md5sum -b filename  查看檔案的md5值rpm -qf /bin/ls  檢查檔案的完整性(還有其它/bin目錄下的檔案)whereis 檔案名稱  查看檔案路徑ls -al 檔案名稱  查看檔案建立時間du -sh 檔案名稱 查看檔案大小

 

檢查網路

檢查網路的目的,是查看駭客是否通過篡改網卡類型,進行流量嗅探等操作。

12345 ip link | grep PROMISC  正常網卡不應該存在promisc,如果存在可能有snifferlsof -inetstat -nap  查看不正常連接埠arp -a  查看arp記錄是否正常ifconfig -a  查看網卡設定

 

檢查計劃任務

當我們嘗試kill惡意程式時,往往會遇到被kill程式自動啟動的問題,那麼就要檢查下計劃任務(cron)了。

1234 crontab -u root -l  查看root使用者的計劃任務cat /etc/crontabls -l /etc/cron.*  查看cron檔案是否變化的詳細資料ls /var/spool/cron/

 

檢查系統後門

可以使用工具,如:Conmodo、rkhunter等,當然也可以手工輸入命令檢查。

123 vim $HOME/.ssh/authorized_keys  查看ssh永久連結檔案lsmod  檢查核心模組chkconfig –list/systemctl list-units –type=service  檢查自啟

 

查看著名的木門後門程式:

1234 ls /etc/rc.d #系統開機後,此目錄下的檔案會被啟動ls /etc/rc3.d find / -name “.rhosts” –printfind / -name “.forward” –print

 

檢查網站後門

  如果伺服器上運行著web程式,那麼需要檢查是否通過web漏洞入侵伺服器,具體的判斷方法可以結合分析中介軟體日誌以及系統日誌,但過程需要較長時間。我們也可以通過檢查伺服器上是否留有入侵者放置的網站後門木馬,以此判斷駭客是否通過web應用入侵到伺服器。

Method One
  • 將網站目錄下,檔案名稱中含有jsp、php、asp、aspx的檔案(注意是含有)都copy出來並壓縮。
  • 通過windows下的D盾工具掃描打包出來的目錄,掃描是否存Webshell(網站後門)
Method Two

  直接使用MaskFindShell工具,進行webshell掃描(目前只能掃描jsp與php的網站,並且php的誤判比較高)
關於MaskFindShell詳細用法,可以參考:MaskFindShell-Document

尋找伺服器實體路徑

無論哪種方法的webshell尋找,首先要確定的是web伺服器安裝的路徑,因為webshell都是放在web路徑下的。

  • 詢問管理員、網站開發商
  • SearchWebPath,具體用法參考:SearchWebPath用法
打包檔案

  當我們做好一切入侵檢測分析後,我們需要把一些記錄檔copy到本地進行更進一步詳細的分析時,怎麼打包伺服器相關資訊,並且copy到本地呢?

打包web檔案

打包檔案名稱中包含jsp的檔案,打包後的檔案為my_txt_files.tar:

1 tar cvf my_txt_files.tar `find . -type f -name "*.jsp*"`

 

打包記錄檔
1 tar -cvf log.tar /var/log
打包其他資訊
123 last > last.lognetstat -an > netstat.log......
傳輸檔案到本地

將伺服器上的檔案傳輸到本地電腦上的幾種方法。

lrzsz

如果ssh串連的用戶端為xshell等,可以安裝lrzsz命令(putty無法使用)

1 apt-get install lrzsz

 

使用:
上傳檔案到linux,rz;下載linux檔案,sz 檔案名稱。

開啟ftp或者http

  開ftp這裡我不介紹了,網上很多教程,這裡主要說說開啟http服務。
  一般linux伺服器都預設安裝了python,那麼可以藉助python快速開啟一個http服務,詳細參考:基於Python的WebServer

隨身碟掛載

如果我們不是通過ssh的方式串連,而是直接通過顯示器串連上伺服器進行操作,那麼可以嘗試隨身碟傳輸。

1234 fdisk -l 查看隨身碟路徑monut /dev/sdb4 /mnt 掛載隨身碟cd /mnt 進入隨身碟umount /mnt 退出隨身碟

 

本文總結的都是一些Linux入侵檢測最基礎的命令,至於怎麼用好這些命令,需要結合實際情況,主要還是看經驗。以上所訴,還只是入侵檢測資訊收集階段,至於如何通過現有資訊分析出入侵途徑,還需要藉助其他工具以及知識。

參考連結:http://www.jb51.net/hack/421908.html

Linux伺服器入侵檢測基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.