本來計劃每天11點準時睡覺的,誰知道昨晚10點多被浩鵬拉出去喝酒了。那個菜雞一瓶就倒了,之后我回到宿舍之后異常清醒,還看了兩個小時張宇的視頻(信宇哥,得永生)。睡醒了之后發現,阿里云盾給了我一個警告,我的服務器對外進行DDOS攻擊了!PS:心想,WHAT?真的被掛上木馬了。
緣由
之前安裝一個openlims的時候,為了安裝PostgreSQL,我開啟了一個postgres的一個用戶,并且執行了openlis系統的一個自動裝載腳本。過了沒多久,服務器密碼就被修改了。他直接拿到root權限,十分恐怖,我趕緊去esc控制臺改了回來,那時候沒有發生什么特殊的情況,我就沒有再深入下去了。
線索
線索源于木彬在oj上的一個題目的提交,題目是Gdinoj的一道題目。其實題目內容很簡單,就是一個建素數表然后再遍歷一遍。但是他的代碼始終通不過,實在沒有辦法給我看了一看。我在本地運行也是沒有問題,邏輯復雜但是終究是正確的。沒有辦法,只能直接放到服務器上直接運行,發現了很神奇的事情(GCC版本一致),就是在棧區頭指針內容被修改了,也是是代碼指針邏輯的問題(因為指針指向實在是有點混亂),也有可能是棧區內存不足的原因導致的。后面沒有辦法,先讓木彬跳過。
不過,我那時候我看了一下內存,感覺很奇怪,不知道為什么內存只剩下100M都不到。自從新內核搞好了之后,OJ這邊就徹底是交給了鎮濤跟倫凱了,之前讓他們用memcache來處理頁加載慢的事情,我那時候懷疑是不是他們的代碼導致的這個內存泄漏得如此嚴重。更詭異的是,這個情況是不間斷出現的。后來,我開始懷疑是被人留了后門
高潮
因為也一直在自學黑客技術,希望用手中的利劍懲惡除奸,首先我的目標是那些國內騙人的色情網站。。。以下省略一萬字。
故事回到今天早上的事情,首先我top了一下進程,真的是被嚇一跳,有一個進程占了CPU99%的資源。
我們可以從這里得出了兩個關鍵的信息:
- 是postgres用戶/usr/sbin/apach程序導致的這個問題
- 我們知道這個進程ID(非常重要)
因為我的經驗不足,這里我應該第一時間whereis一下,把這個進程找出來的。后來我直接kill掉了,然后再去找/usr/sbin/apach,真的沒有找到這個文件,十分奇怪。(大神請指教,是不是他捕捉了這個信號,在退出的時候把文件刪除了?)
ok,不管了,因為我有root,我不怕,首先我切換到問題用戶,看一下它里面有什么內容。
Fuck,有一個用于DDOS攻擊的python文件,我個人感覺不只這么些東西,我check了黑客的history,他還是留下了蹤跡。
可以看到除了python文件之外,還有一個用于滲透的perl編寫的1.txt文件。代碼很長,兩個文件加起來3千多行,我已經把它收藏到自己的武器庫了。
初步分析可以得到,木馬是通過postgres這個用戶進來的,而postgres肯定是通過openlims的Install.sh腳本里面裝載了木馬。毋庸置疑,PostgreSQL和postgres用戶就是問題所在。
解決
- 首先到了這里還是要讓阿里云盾的白名單權限設置得全高先,然后用戶都可以訪問80端口,但是其他端口就要白名單來做限制。
現在服務器還是有幾個端口暴露了的,但是我已經不允許任何IP的訪問這些端口了。之前就是因為PostgreSQL暴露了一個端口導致的問題。
然后要開始干掉那個問題用戶和問題進程了,首先是干掉PostgreSQL。
刪掉問題用戶,不過當我刪掉的時候,出現了點問題
不明白為啥有新的進程一直使用著這個用戶,最后重啟了一下之后就刪掉了。
- 擔心題庫被干掉了,我還是先改權限先。現在這個權限,被入侵了就要跪了!!
結語
還有很多事情沒有弄明白,感覺事情還遠遠沒有結束。這件事讓我對服務器的安全提高了幾個檔次的認識,真的幸好他并沒有把我文件刪除,只是讓我當肉雞。哎。
---- 小白成長紀錄篇