linux系统被***后处理经历
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方式來判斷工具是否可信任,因為完全相同版本操作系統不好找,稍微有點差別,工具就有可能已被更新,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趁搞的鬼,同樣清除,不再自動生成了。
好了,可以開啟外網了,觀察了一會網絡流量不再飆升了,心情有如看到美女一樣的愉快!
博客地址: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程序進程安全漏洞掃描。
?
還是那句話,沒有絕對的安全,只有盡可能減少***面,提供系統防護能力。
網絡安全,從我做起!
歡迎你加入技術群一起交流:323779636(Shell/Python運維開發群)
轉載于:https://blog.51cto.com/319692/1897952
總結
以上是生活随笔為你收集整理的linux系统被***后处理经历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java == 与 equals 相同与
- 下一篇: vue.js权威指南----代码解释实例