手動檢測是否被入侵?
入侵檢測原理:
基于日志(Audit日志為主,監控系統調用,網絡訪問,新建進程,隱藏進程)
威脅情報(根據IP,文件,隱藏的文件,隱藏進程,suid文件)
文件完整性
命令審計,進程做的所有操作通過安全庫進行判斷;
病毒木馬庫(后門、Rootkit、病毒木馬等);
Gitlab代碼是否又被修改過,用gitdiff查看 查看代碼的日志 代碼是否有被改動過 查看服務器日志 是否有被劫持 查看登錄記錄 查看非法sql語句執行記錄
secure的登錄日志,看有沒有成功的異地IP登錄 用md5工具查看,是否有文件被修改過的 看日志,是否有被刪除,是否有異常日志 看歷史記錄, 看audit審計,是否執行了異常的syscall 查看異常進程 查看異常端口 查看堡壘機日志,是否有異常操作,比如傳輸文件,比如安裝程序;
用NIDS查看,是否有網絡異常行為, rpm -Va,看哪些包被替換了;
看這臺機器的外聯IP,用tcpdump抓包 用威脅情報查看這個外聯IP tcpdump抓包一小時,用wireshark分析 查看當前運行的內核模塊 查看一個可執行文件對應的庫文件,是否正常 ldd,strace 查看dns日志記錄,看是否有惡意的域名記錄 應用程序日志,被滲透日志 find被滲透時間內被修改過的文件;
然后分析這些文件 服務器登錄記錄,tty等 看運行了什么應用,各個應用的日志 從防火墻上看到這臺機器的網絡連接日志 用戶信息文件/etc/passwd who,w,uptime看哪些用戶在登陸 查看特權用戶,uid=0 弱密碼掃描一遍,所有應用和ssh 基線檢測掃描一遍 看有沒有重大漏洞,比如未授權等,漏洞掃描一遍 more /etc/sudoers,看可以切換到root的用戶 /etc/profile .bash_profile .bashrc /etc/rc.d/rc.local /etc/rc.d/init.d /etc/rc.d/rc.sysinit /etc/inittab vim /etc/cron里的每一個文件;ls /etc/rc.d/rc3.d /etc/rc.sysinit /etc/rc.d/所有 /etc/fstab vim /etc/bashrc ~/.bash_login ~/.profile ~/.bash_profile ~/.xinitrc ~/.xserverrc 不允許有這個圖形配置文件 /etc/init.d 查看是否有惡意腳本 ls /tmp 這里是高權限目錄 cron日志,看自動任務都有什么
/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/*
more /etc/cron.daily/* 查看目錄下所有文件 掃描webshell 看php的代碼文件是否被修改過 /var/log/cron 記錄了系統定時任務相關的日志 /var/log/cups 記錄打印信息的日志 /var/log/dmesg 記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息 /var/log/mailog 記錄郵件信息 /var/log/message 記錄系統重要信息的日志。
這個日志文件中會記錄Linux系統的絕大多數重要信息,如果系統出現問題時,首先要檢查的就應該是這個日志文件 /var/log/btmp 記錄錯誤登錄日志,這個文件是二進制文件,不能直接vi查看,而要使用lastb命令查看 /var/log/lastlog 記錄系統中所有用戶最后一次登錄時間的日志,這個文件是二進制文件,不能直接vi,而要使用lastlog命令查看 /var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時記錄系統的啟動、重啟、關機事件。
同樣這個文件也是一個二進制文件,不能直接vi,而需要使用last命令來查看 /var/log/utmp 記錄當前已經登錄的用戶信息,這個文件會隨著用戶的登錄和注銷不斷變化,只記錄當前登錄用戶的信息。
同樣這個文件不能直接vi,而要使用w,who,users等命令來查詢 /var/log/secure 記錄驗證和授權方面的信息,只要涉及賬號和密碼的程序都會記錄,比如SSH登錄,su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼都會記錄在這個日志文件中
chkrootkit rootkit檢查一遍?
rkhunter Clamav https://github.com/grayddq/GScan?
安全檢查腳本
https://github.com/ppabc/security_check?
https://github.com/T0xst/linux?more /etc/sudoers?
查找所有suid和guid文件,find . -perm /2000 find . -perm /4000 /root/.ssh/authorized_keys?
看誰能免密登陸我 /root/.ssh/known_hosts?
誰成功登陸過我 看ssh進程 ls -al /usr/sbin/sshd cat /usr/sbin/sshd alias stat /lib/security/pam_unix.so #32位 stat /lib64/security/pam_unix.so #64位 看/usr/sbin/nologin文件是否被修改,被修改成bash則證明所有用戶能登錄;查看所有的連接文件,看su或bash是否出現在不該出現的位置 是否有這個文件/etc/ld.so.preload echo $LD_PRELOAD /usr/lib/ld.so unhide proc 用unhide工具找隱藏進程 查找所有隱藏文件 /etc/profile、/.bash_login、/.bashrc、/etc/bashrc、/etc/profile.d/*.sh
木馬后門排查路徑
Linux后門就那么幾種:
反彈shell
修改系統配置形成的后門;
修改系統bin文件,隱藏的后門
修改庫文件,隱藏的后門
內核態的rootkit;
基于文件,新建進程的木馬后門;7
除了rootkit類似的隱藏木馬,其他都能查出來;木馬都有自我恢復功能,在處理的時候,要一次性執行所有指令清除木馬;遍歷Linux系統下的所有文件,并查看文件類型,用file指令,如果是elf類型的文件就輸出,看他是不是異常的疑似木馬;crontab -l /etc/crontab /etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env /etc/init.d/ /etc/rc.d/init.d /etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/ /etc/rc.local /etc/profile /etc /bashrc $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile ~/.bash_logout /tmp /dev/shm /etc/passwd
ps -ef看沒用的進程 netstat -anplt 看沒用的目標IP 看服務器支持什么開發語言,有什么應用,找應用對應數據目錄下的腳本(尤其是用戶上傳目錄和頭像等目錄);每個用戶默認的家目錄,因為他執行rce,只能在自己的家目錄生效;全盤查找elf類型的文件 last, lastlog grep -i Accepted /var/log/secure /var/spool/cron/ /etc/cron.hourly /etc/crontab find / -ctime 1 /usr/lib/systemd/system /etc/systemd/system chkconfig --list
檢查/etc/passwd和/etc/shadow文件,是否有可疑用戶 檢查臨時目錄/tmp、/vat/tmp、/dev/shm,這些目錄權限是1777,容易被上傳木馬文件 查看自啟動的服務 pstree lsof:1. 進程使用的文件, 2. 文件被哪個進程使用,3. 使用某個端口的進程, 4. 系統打開的端口 iftop 監控每個socket使用的網絡流量 nethogs 監控每個進程使用的網絡流量 strings輸出文件中可打印的字符 /var/spool/cron/root /var/spool/cron/crontabs/root /var/spool/anacron/cron.{daily,weekly,monthly} /etc/anacrontab 如果有php防止是webshell
其余的殺毒軟件,只能用在下線機器上,進行溯源使用:clamav殺毒引擎、rkhunter、chkrootkit find -type f -name .php -exec chmod 444 {} ; grep -r –include=.php '[^a-z]eval($_POST' . > grep.txt grep -r –include=.php 'file_put_contents(。$_POST[.*]);' . > grep.txt
后門查找 /etc/passwd ssh公鑰刪除沒用的 visudo find / -perm /4000 找所有suid文件 防止ssh軟連接,查找無用的開放端口 有可能把sshd等命令已經替換了,都替換成了帶有后門的程序了。有可能把庫文件都給替換了;w uptime last lastlog lastb who strings /usr/bin/.sshd | egrep '[1-9]{1,3}.[1-9]{1,3}.' 1、root的歷史命令 histroy 2、打開/home各帳號目錄下的.bash_history,查看普通帳號的歷史命令 /var/log/secure /var/log/message /var/log/yum.log
執行last,lastlog命令,查看最近登錄的賬戶和登錄時間,鎖定異常賬戶。執行grep -i Accepted /var/log/secure命令,查看遠程登錄成功的IP地址。執行以下命令,查找計劃任務。/var/spool/cron/ /etc/cron.hourly /etc/crontab 執行find / -ctime 1通過文件狀態最后修改時間來查找木馬文件。檢查/etc/passwd和/etc/shadow文件,確認是否有可疑用戶。檢查臨時目錄/tmp、/vat/tmp、/dev/shm下的文件,這些目錄權限是1777,容易被上傳木馬文件。查看端口對外的服務日志是否存在異常,例如:tomcat、nginx。執行service --status-all | grep running,查看當前運行的服務中是否存在異常。執行chkconfig --list | grep :on,查看自啟動的服務中是否存在異常。執行ls -lt /etc/init.d/ | head,查看是否有異常啟動腳本
ps aux查看進程,是否有su、(無橫杠-)的bash、chsh、chfn進程;vim /root/.bashrc(所有用戶下都看下) alias 看一下這個顯示有沒有異常信息;主要看文件md5值改變了就要注意;vim /var/spool/cron/用戶名 這個就是crontab -l調用的文件,必須用vim看,隱藏的任務是cat查不出來的;/tmp下面的可疑文件全刪,這里一般和業務沒關系,但是權限是最大的目錄。把所有用戶下的.ssh目錄下的證書刪除,只保留堡壘機等業務需要的;cat /etc/ls.so.preload cat /etc/ld.so.cache echo $LD_AUDIT echo $LD_PRELOAD 看/proc下的所有進程Id統計和ps -ef出來的不一樣,就證明有隱藏進程;vi /etc/hosts.allow 查看里面是否有惡意代碼 清理/etc/passwd下,沒有空密碼的用戶;刪除socat命令
審核編輯:黃飛
?
評論
查看更多