linux系統被***後處理經歷

linux系統被***後處理經歷

背景

操作系統:Ubuntu12.04_x64

運行業務:公司業務系統,爬蟲程序,數據隊列。

服務器託管在外地機房。

突然,頻繁收到一組服務器ping監控不可達郵件,趕緊登陸zabbix監控系統查看流量狀況。

wKioL1cjFOTyIO2sAABkSBOorW8950.png

wKioL1cjFPGSppbDAADd32iT3AI593.png

可見流量已經達到了800M左右,肯定不正常,馬上嘗試SSH登陸系統,不幸的事,這種情況是很難登錄系統操作的。該怎麼辦?

1、排查問題

第一反應是想馬上切斷外部網絡,通過內網連接查看。可是這樣一來流量就會消失,但也很難查找***源了。

於是聯繫機房協助解決,授權機房技術登錄到系統,先通過w命令查看是否有異常用戶在登錄,再看看登錄日誌/var/log/auth.log,預料之中,日誌已經清空;最後使用工具找出那個連接佔用流量大,我使用了iftop工具。

wKioL1cjFT6T1dttAAOY0JDSTUc606.png

機房技術給我拍了照,看到本地一直通過http方式向104.31.225.6這個ip發送數據包,而且持續不斷。

那好,先把這個ip給屏蔽了試試:

iptables –A OUTPUT –d 104.31.225.6 –j DROP

哇塞!奇蹟出現了,流量下去了,能正常連接了,面部逐漸露出笑容。j_0063.gif

過一會兒,不幸的事情發生了,流量又上來了,擦!什麼情況!心情頓時緊張起來。

又趕緊聯繫機房技術,執行上次的操作。

wKioL1cjFXDzrYVgAATklwVCE3Q320.png

傻眼了,目的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方式來判斷工具是否可信任,因爲完全相同版本操作系統不好找,稍微有點差別,工具就有可能已被更新,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的執行文件在運行呢,經過找同事覈實有沒有運行這樣的,他們說沒有,那好先殺掉並刪除再說。

wKiom1cjFOKzFjoUAAAUIuvKFbk803.png

緊接着怎麼會有我執行的命令呢,ps –ef,命令的路徑不是/bin/ps,引起了我的懷疑,馬上進入此目錄下查看。

wKioL1cjFbyQ_aCFAAApwXDfVN4723.png

擦,還有幾個,初步判斷是工具被替換了。

還有一個怎麼叫getty呢,再正常系統裏面對比進程,發現沒有這個。估計又是***留下的,勞資怒了,寧可錯殺一百,也不放過一個!

wKioL1cjFdihG2q7AAAUUc4e0Fo320.png

殺掉進程,刪除目錄。

.sshd進程?明顯很可疑,難道是ssh後門,先殺掉刪除再說!

wKioL1cjFcrSFWh7AAAQ7XfUmrs431.png

再執行ps –ef命令看下,奇怪,java.log進程又起來了,難道有自啓動設置?於是到了/etc/init.d下查看,有個異常腳本,在正常系統的也沒有,打開看了下,果然是啓動***程序的腳本。把腳本刪除,再刪除一次java.log,不再出現了。j_0069.gif

wKioL1cjFe2hrmIpAAB33YwJaxI695.png

wKiom1cjFTDjQKW6AAAh8i07Fx8226.png


刪除了/sbin/java.log文件過一會又出現了,怎麼回事?估計是getty趁搞的鬼,同樣清除,不再自動生成了。

好了,可以開啓外網了,觀察了一會網絡流量不再飆升了,心情有如看到美女一樣的愉快!j_0061.gif


博客地址:http://lizhenliang.blog.51cto.com


4、事件總結

ls /usr/bin/dpkgd/   #替換的工具,系統自帶的工具正常不會在這個目錄下,並且也不可用

netstat lsof ps ss

/sbin/java.log  #判斷是發包程序,刪除後會自動生成

/usr/bin/bsd-port #判斷是自動生成java.log或着後門程序

/usr/sbin/.sshd  #判斷是後門程序

***代碼程序下載地址:http://pan.baidu.com/s/1b3yOVW

小心,直接執行java.log可能會導致linux瞬間基本上無法連接~!


如果還有其他***程序怎麼辦?如果是XSS***,應用層漏洞***怎麼辦?

針對這些問題,從我們公司角度來說,儘量不重裝系統,業務太複雜。找出***點,跑的程序多,***面多,很棘手。先這樣吧!兵來將擋,水來土掩。~

 

讓***趁機***的原因:

1. 運維對網絡安全實施落實力度低

2. 沒有相關安全測試人員,不能及時發現應用層漏洞

等等...

針對這次***,總結了下防護思路:

1. linux系統安裝後,啓用防火牆,只允許信任源訪問指定服務,刪除不必要的用戶,關閉不必要的服務等。

2. 收集日誌,包括系統日誌,登錄日誌,程序日誌等,及時發現潛在風險。

3. 針對用戶登錄實時收集,包括登錄時間,密碼重試次數以及用戶執行命令記錄等。

4. 對敏感文件或目錄變化進行事件監控,如/etc/passwd、/etc/shadow、/web、/tmp(一般上傳文件提權用)等。

5. 進程狀態監控,對新增或可疑進程做好記錄並通知。

6. 對上線的服務器系統、Web程序進程安全漏洞掃描。

 

還是那句話,沒有絕對的安全,只有儘可能減少***面,提供系統防護能力。

網絡安全,從我做起!j_0019.gif

歡迎你加入技術羣一起交流:323779636(Shell/Python運維開發羣)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章