linux系統被入侵后處理實戰
事件背景
操作系統:Ubuntu12.04_x64
運行業務:公司業務系統,爬蟲程序,數據隊列。
服務器托管在外地機房。
突然,頻繁收到一組服務器ping監控不可達郵件,趕緊登陸zabbix監控系統查看流量狀況。
可見流量已經達到了800M左右,肯定不正常!
馬上嘗試SSH登陸系統,不幸的是,這種情況是很難登錄系統的。
該怎么辦?
1、排查問題
當時我的第一反應是想馬上切斷外部網絡,通過內網連接查看。
可是這樣一來流量就會消失,也就很難查找攻擊源了。
于是聯系機房協助解決,授權機房技術登錄到系統:
首先通過w命令查看是否有異常用戶在登錄;
再查看登錄日志/var/log/auth.log,預料之中,日志已經清空;
最后使用iftop工具找出占用大量流量的連接。
下圖是機房技術給我拍的照:
可以看到本地一直通過http方式向104.31.225.6這個ip發送數據包,而且持續不斷。
那好,先把這個ip給屏蔽了試試:
iptables –A OUTPUT –d 104.31.225.6 –j DROP
哇塞!奇跡出現了,流量下去了,能正常連接了。
過一會兒,不幸的事情發生了,流量又上來了!
什么情況!我的心情頓時緊張起來。
又趕緊聯系機房技術,執行上次的操作。
下圖是當時的情況:
傻眼了,目的ip變了,這可咋搞,不可能一個個封吧!
靜下心來,仔細想了下,本地向外發包,那本地肯定會有程序來發!
找到本地程序就能解決了!
2、查找攻擊源
首先我使用了netstat工具過濾端口,查看運行的進程ID:
netstat –atup |grep 15773
沒有任何結果,更換端口嘗試后仍然沒有結果。
拜托機房技術大哥觀察了下連接狀態,原來是短連接,會很快的釋放端口,所以才看不到端口的連接狀態。
正常長連接來說,可以使用lsof –i :15773這樣方式找到PID,再lsof –p PID找到打開的相關文件。
好吧!只好先切斷外部網絡,內網SSH進入系統,然后找到這個發包的程序。
第一步:通過netstat –antup 查看有無開放可疑的端口或者連接。
第二步:通過ps –ef查看有無可疑的進程。
結果是~
都沒有!
難道是植入了rootkit木馬程序?!
想要判斷系統有沒有植入了rootkit可以使用md5sum校驗執行文件判斷:
先找個同版本操作系統,獲取到這個工具執行文件的md5值,再獲取可疑的工具執行文件md5值,比較兩個值是否相同。
如果相同說明這個工具是可信任的,如果不相同很有可能是被替換的。
另外,一般工具可執行文件大小都在幾十K到幾百K。
但我沒有選擇用md5方式來判斷工具是否可信任,因為完全相同版本的操作系統并不好找。
我直接使用du –sh /bin/lsof查看,發現大小1.2M,明顯有問題。
所以直接下載正常系統里的netstat、ps等工具上傳到被黑的系統里使用,再將不可用的替換掉。
3、清理木馬程序
完成第二步的操作后,奇跡出現了,執行ps –ef后,發下最下面有幾行可疑程序。
本想截圖的,可惜SSH客戶端給關了,沒留下截圖。
記憶中,大概是這樣的:
pid /sbin/java.log
pid /usr/bin/dpkgd/ps –ef
pid /usr/bin/bsd-port/getty
pid /usr/bin/.sshd
看到這幾個,感覺很奇怪,怎么會有個java.log的執行文件在運行呢?
先殺掉并刪除再說。
這里就更奇怪了,怎么會有我執行的命令呢?
ps –ef,命令的路徑不是/bin/ps,引起了我的懷疑,馬上進入此目錄下查看。
擦,還有幾個,初步判斷是工具被替換了。
還有一個怎么叫getty呢,再正常系統里面對比進程,發現沒有這個。
寧可錯殺一百,也不放過一個!
殺掉進程,刪除目錄。
這個.sshd進程明顯很可疑,可能是ssh后門,先殺掉刪除再說!
再執行ps –ef命令看下,奇怪,java.log進程又起來了,難道有自啟動設置?
于是到了/etc/init.d下查看,有個異常腳本,在正常系統的也沒有,打開看了下,果然是啟動木馬程序的腳本。
把腳本刪除,再刪除一次java.log,不再出現了。
刪除了/sbin/java.log文件過一會又出現了,估計是getty趁搞的鬼,同樣清除,不再自動生成了。
好了,可以開啟外網了,觀察了一會網絡流量不再飆升了,心情有如看到美女一樣的愉快!
4、事件總結
ls /usr/bin/dpkgd/ ? #替換的工具,系統自帶的工具正常不會在這個目錄下,并且也不可用
netstat lsof ps ss
/sbin/java.log ?#判斷是發包程序,刪除后會自動生成
/usr/bin/bsd-port #判斷是自動生成java.log或著后門程序
/usr/sbin/.sshd ?#判斷是后門程序
如果還有其他木馬程序怎么辦?如果是XSS攻擊,應用層漏洞入侵怎么辦?
針對這些問題,從我們公司角度來說,盡量不重裝系統,業務太復雜。找出入侵點,跑的程序多,攻擊面多,很棘手。
就先這樣吧!兵來將擋,水來土掩。~
被黑客趁機入侵的原因:
1. 運維對網絡安全實施落實力度低
2. 沒有相關安全測試人員,不能及時發現應用層漏洞
等等...
針對這次攻擊,總結了下防護思路:
1. Linux系統安裝后,啟用防火墻,只允許信任源訪問指定服務,刪除不必要的用戶,關閉不必要的服務等。
2. 收集日志,包括系統日志,登錄日志,程序日志等,及時發現潛在風險。
3. 針對用戶登錄實時收集,包括登錄時間,密碼重試次數以及用戶執行命令記錄等。
4. 對敏感文件或目錄變化進行事件監控,如/etc/passwd、/etc/shadow、/web、/tmp(一般上傳文件提權用)等。
5. 進程狀態監控,對新增或可疑進程做好記錄并通知。
6. 對上線的服務器系統、Web程序進程安全漏洞掃描。
最后,沒有絕對的安全,只有盡可能減少攻擊面,提供系統防護能力。
網絡安全,從我做起!
?
文章來源:馬哥教育
官方微信:馬哥Linux運維
Linux運維學習交流群:537045784