排查伺服器被黑的一些方法

2020-08-09 19:43:00

1.awk -F: '{if($3==0 || $4==0) {print $0} }' /etc/passwd     #檢視使用者和組爲0的使用者

2.stat filename  檢視可疑檔案日期

4.對伺服器異常進程進行檢查 netstat -anpt,檢查異常IP連線,查詢ip歸屬地如果是國外的,查詢pid  ,lsof -p pid 檢視進程打開了哪些檔案,查詢當前佔用cpu 大於30%的進程,top  大寫P,檢查該進程所在目錄,ll /proc/pid,其中cwd是程式執行目錄,exe是程式絕對路徑,cmdline就是程式執行時輸入的命令列命令;environ記錄了進程執行時的環境變數;fd目錄下是進程開啓或使用的檔案的符號連線

5.檢視系統所有安裝包,有沒有被修改rpm -Va > rpm_check.txt  ,注意 5 S T g ,5代表md5,檔案內容被修改,s代表檔案長度被改變,T代表修改日期被改變,g代表此檔案不是包的本身檔案,是多出來的可疑檔案。

6.排查開機啓動檔案/etc/rc.d/rc.local , chkconfig, /etc/profile.d/下的指令碼,ls -alt /etc/init.d/ ,是否有多餘啓動檔案,檔案修改日期,是否被修改,建議先儲存檔案屬性到txt 方便對比。 ll -Shi /etc/profile.d/ > check_sh.txt  然後對比diff  check_sh.txt  b.txt 

7.export TIME_STYLE='+%Y-%m-%d %H:%M:%S' 修改日期格式便於觀察,或追加到/etc/proflie中永久生效,ll -rt /etc/profile.d 檢視啓動指令碼的修改日期

8.history > check_history  把歷史命令追加到檔案,然後vim check_history 繼續查詢可疑的命令如 wget ,ssh, scp ,tar,zip等 

9.檢查伺服器所有賬號,cat /etc/login.defs 檢查UID的值是否變化

10.ll /var/spool/cron  排查所有的計劃任務 ,ls -l /etc/cron.*

11.檢查最近修改過的檔案 find ./ -mtime 2           以及  find / -ctime 2   找inode被改動過的檔案

12.查詢有哪些php檔案包含nameseve字串的         grep -ri "nameseve" --include="*.php" / 

13.echo $PATH     #檢查系統路徑

14. arp -a         #檢查arp記錄

15.ifconfig -a      #檢查網絡卡

16.ip link | grep PROMISC #網絡卡不應該存在promisc,存在則可能有嗅探器

16.find / -size +10000k -print     #檢查大於10M的檔案

17.檢視隱藏的進程 

ps -ef | awk '{print}' | sort -n | uniq >1

ls /proc | sort -n |uniq >2

diff 1 2

18.lastlog 命令檢視登錄上一次的登錄

19.檢視登錄失敗的使用者  grep   -ri   "Fail"   /var/log/secure*

20.檢視登錄成功的使用者 grep  -ri  "accept"   /var/log/secure*