入侵者在入侵成功后,往往會留下后門以便再次訪問被入侵的系統,而創建系統賬號是一種比較常見的后門方式。在做入侵排查的時候,用戶配置文件/etc/passwd和密碼配置文件/etc/shadow是需要去重點關注的地方。

查詢特權用戶特權用戶(uid 為0)

> awk -F: '$3==0{print $1}' /etc/passwd

查找遠程可以登錄的賬戶

> awk '/\$1|\$5|\$6/{print $1}' /etc/shadow
  • $1:MD5(長度 22個字符)
  • $5:SHA-256(長度 43 個字符)
  • $6:SHA-512(長度86 個字符)

檢查sudo權限

> cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL"

刪除或鎖定賬號

通過上面的步驟可以找到可疑的賬號
> usermod -L rooot #禁用帳號,帳號無法登錄,/etc/shadow第二欄為!開頭
> userdel rooot    #刪除user用戶
> userdel -r rooot #將刪除root用戶,并且將/home目錄下的root目錄一并刪除

查看當前登錄系統的信息

> who    #查看當前登錄用戶(tty本地登陸  pts遠程登錄)
> w      #查看系統信息,想知道某一時刻用戶的行為
> uptime #查看登陸多久、多少用戶,負載

檢查異常端口

使用netstat 網絡連接命令,分析可疑端口、IP、PID等信息。
> netstat -tunlp | less

抓包分析

> tcpdump -c 10 -q //精簡模式顯示 10個包

使用ps命令檢查可疑的進程

> ps -ef

查超系統中占用資源最高的資源

> top

發現異常進一步檢查

> ps eho command -p $PID  #查看該進程啟動的完整命令行
> readlink /proc/$PID/cwd #查看該進程啟動時候所在的目錄
> ls -l /proc/$PID/exe    #查看下pid所對應的進程文件路徑
> strings -f /proc/$PID/environ | cut -f2 -d '' #查看該進程啟動時的完整環境變量:
> lsof -p $PID #列出該進程所打開的所有文件

檢查系統服務

Linux系統服務管理,CentOS7使用systemd控制 CentOS6之前使用chkconfig控制。

檢查開機自啟的服務

//對于systemd服務管理器來說,可以通過下述方式查看開機自啟的服務
> systemctl list-unit-files --type=service | grep "enabled"
//chkconfig就是CentOS6以前用來控制系統服務的工具,查看服務自啟動狀態
> chkconfig --list | grep "3:on\|5:on"

檢查啟動項腳本

命令查看下開機啟動項中是否有異常的啟動服務。
> cat /etc/rc.local

檢查計劃任務

利用計劃任務進行權限維持,可作為一種持久性機制被入侵者利用。檢查異常的計劃任務,需要重點關注以下目錄中是否存在惡意腳本。
/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*