久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

幫助中心 >  技術知識庫 >  數據庫 >  相關技術支持 >  Linux系統是否被植入木馬的排查流程梳理

Linux系統是否被植入木馬的排查流程梳理

2018-12-11 08:00:25 9067

在日常繁瑣的運維工作中,對linux服務器進行安全檢查是一個非常重要的環節。今天,分享一下如何檢查linux系統是否遭受了入侵?


一、是否入侵檢查


1)檢查系統日志


檢查系統錯誤登陸日志,統計IP重試次數(last命令是查看系統登陸日志,比如系統被reboot或登陸情況)

[root@bastion-IDC ~]# last

2)檢查系統用戶


查看是否有異常的系統用戶

[root@bastion-IDC ~]# cat /etc/passwd


查看是否產生了新用戶,UID和GID為0的用戶

[root@bastion-IDC ~]# grep "0" /etc/passwd


查看passwd的修改時間,判斷是否在不知的情況下添加用戶

[root@bastion-IDC ~]# ls -l /etc/passwd


查看是否存在特權用戶

[root@bastion-IDC ~]# awk -F: '$3==0 {print $1}' /etc/passwd


查看是否存在空口令帳戶

[root@bastion-IDC ~]# awk -F: 'length($2)==0 {print $1}' /etc/shadow

3)檢查異常進程


注意UID為0的進程

使用ps -ef命令查看進程


察看該進程所打開的端口和文件

[root@bastion-IDC ~]# lsof -p pid命令查看


檢查隱藏進程

[root@bastion-IDC ~]# ps -ef | awk '{print }' | sort -n | uniq >1

[root@bastion-IDC ~]# ls /porc |sort -n|uniq >2

[root@bastion-IDC ~]# diff 1 2

4)檢查異常系統文件


[root@bastion-IDC ~]# find / -uid 0 –perm -4000 –print

[root@bastion-IDC ~]# find / -size +10000k –print

[root@bastion-IDC ~]# find / -name "…" –print

[root@bastion-IDC ~]# find / -name ".." –print

[root@bastion-IDC ~]# find / -name "." –print

[root@bastion-IDC ~]# find / -name " " –print

5)檢查系統文件完整性


[root@bastion-IDC ~]# rpm –qf /bin/ls

[root@bastion-IDC ~]# rpm -qf /bin/login

[root@bastion-IDC ~]# md5sum –b 文件名

[root@bastion-IDC ~]# md5sum –t 文件名

6)檢查RPM的完整性


[root@bastion-IDC ~]# rpm -Va #注意相關的/sbin,/bin,/usr/sbin,/usr/bin

輸出格式說明:

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

7)檢查網絡


[root@bastion-IDC ~]# ip link | grep PROMISC(正常網卡不該在promisc模式,可能存在sniffer)

[root@bastion-IDC ~]# lsof –i

[root@bastion-IDC ~]# netstat –nap(察看不正常打開的TCP/UDP端口)

[root@bastion-IDC ~]# arp –a

8)檢查系統計劃任務


[root@bastion-IDC ~]# crontab –u root –l

[root@bastion-IDC ~]# cat /etc/crontab

[root@bastion-IDC ~]# ls /etc/cron.*

9)檢查系統后門


[root@bastion-IDC ~]# cat /etc/crontab

[root@bastion-IDC ~]# ls /var/spool/cron/

[root@bastion-IDC ~]# cat /etc/rc.d/rc.local

[root@bastion-IDC ~]# ls /etc/rc.d

[root@bastion-IDC ~]# ls /etc/rc3.d

10)檢查系統服務


[root@bastion-IDC ~]# chkconfig —list

[root@bastion-IDC ~]# rpcinfo -p(查看RPC服務)

11)檢查rootkit


[root@bastion-IDC ~]# rkhunter -c

[root@bastion-IDC ~]# chkrootkit -q

二、linux系統被入侵/中毒的表象


比較常見的中毒表現在以下三個方面:

1)服務器出去的帶寬會跑高這個是中毒的一個特征。

因為服務器中毒之后被別人拿去利用,常見的就是拿去當肉雞攻擊別人;再者就是拿你的數據之類的。

所以服務器帶寬方面需要特別注意下,如果服務器出去的帶寬跑很高,那肯定有些異常,需要及時檢查一下!


2)系統里會產生多余的不明的用戶

中毒或者被入侵之后會導致系統里產生一些不明用戶或者登陸日志,所以這方面的檢查也是可以看出一些異常的。


3)開機是否啟動一些不明服務和crond任務里是否有一些來歷不明的任務?

因為中毒會隨系統的啟動而啟動的,所以一般會開機啟動,檢查一下啟動的服務或者文件是否有異常,一般會在/etc/rc.local和crondtab -l 顯示出來。

三、順便說下一次Linux系統被入侵/中毒的解決過程


在工作中碰到系統經常卡,而且有時候遠程連接不上,從本地以及遠程檢查一下這個系統,發現有不明的系統進程。

初步判斷就是可能中毒了!!!


解決過程:

1)在監控里檢查一下這臺服務器的帶寬,發現服務器出去的帶寬跑很高,所以才會導致遠程連接卡甚至連接不上,這是一個原因。

為什么服務器出去的帶寬這么高且超出了開通的帶寬值?這個原因只能進入服務器系統里檢查了。


2)遠程進入系統里檢查了下, ps -aux查到不明進程 ,立刻關閉它。


3)檢查一下開機啟動項:

#chkconfig --list | grep 3:on

服務器啟動級別是3的,我檢查一下了開機啟動項,沒有特別明顯的服務。

然后檢查了一下開機啟動的一個文件

#more /etc/rc.local

看到這個文件里被添加了很多未知項,注釋了它。


4)然后在遠程連接這臺服務器的時候,還是有些卡。

檢查了一下系統的計劃任務crond,使用crondtab -l 命令進行查看,看到很多注釋行。

這些注釋行與/etc/rc.local的內容差不多。最后備份下/var/spool/cron/root文件(也就是root下的crontab計劃任務內容),就刪除了crontab內容,然后停止crond任務,并chkconfig crond off 禁用它開機啟動。


5)為了徹底清除危害,我檢查了一下系統的登陸日志(last命令查看),看到除了root用戶之外還有其它的用戶登陸過。

檢查了一下/etc/passwd ,看到有不明的用戶,立刻用usermod -L XXX 禁用這些用戶。 

然后更新了下系統的復雜密碼。

----------------------------------------------------

禁用/鎖定用戶登錄系統的方法

1. usermod -L username 鎖定用戶

    usermod -U username 解鎖

2. passwd -l username 鎖定用戶

    passwd -u username 解鎖

3.修改用戶的shell類型為/sbin/nologin(/etc/passwd文件里修改)

4.在/etc/下創建空文件nologin,這樣就鎖定了除root之外的全部用戶

----------------------------------------------------


四、怎樣確保linux系統安全

1)從以往碰到的實例來分析,密碼太簡單是一個錯

用戶名默認,密碼太簡單是最容易被入侵的對象,所以切忌不要使用太過于簡單的密碼,先前碰到的那位客戶就是使用了太簡單的且規則的密碼 1q2w3e4r5t, 這種密碼在掃描的軟件里是通用的,所以很容易被別人掃描出來的。

2)不要使用默認的遠程端口,避免被掃描到

掃描的人都是根據端口掃描,然后再進行密碼掃描,默認的端口往往就是掃描器的對象,他們掃描一個大的IP 段,哪些開放22端口且認為是ssh服務的linux系統,所以才會猜這機器的密碼。更改遠程端口也是安全的一個措施!

3)使用一些安全策略進行保護系統開放的端口

使用iptables或者配置/etc/hosts.deny 和/etc/hosts.allow進行白名單設置

可以對/etc/passwd、/etc/group、/etc/sudoers、/etc/shadow等用戶信息文件進行鎖定(chattr +ai)

4)禁ping設置

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: