博客日志(我是一名白帽黑客,今天博客被黑了(附全套日志分析及模塊代碼))
前言:
人在江湖漂,哪能不挨刀。我的博客在21號被黑了,想不到從來都是我黑人,如今卻慘被人黑(悲傷臉)
其實挨刀不可怕,可怕的是他砍到了我這塊鐵板上,滋出了一溜的火花。所謂知己知彼方能百戰不殆,必須知道對方是如何拿下我網站的,如果不分析出原因,下次被黑的還是我。
所以接下來,我們要對整個入侵事件進行一次簡單的分析。
博客基本情況
我博客用的系統是 centos6,博客程序是emlog的cms。模塊是一個付費模塊【fly】
說實話這個模塊挺好看的,首次安裝的時候我就D盾掃了下,看看是不是有后門,掃描結果除了發現幾個加密的php文件,其他看起來也沒啥毛病,所以就沒管了,想不到就是這幾個加密文件,才導致了博客被入侵。
被入侵的時間是8月21號,登錄服務器后發現文件被刪,index.php文件被篡改。
文件修改時間是2018年8月21日18:04:15
被掛的黑頁如下:
等等,這不是我使用的模塊售后群嗎?
難道是作者黑了我的站點?
當然不排除是其他黑客黑了以后故意甩鍋給作者,所以我們先來分析一下日志再說。
入侵過程分析
首先我博客是用寶塔的控制面板,但是我888端口做了白名單,只有跳板IP可以訪問這個端口,ssh端口也做了白名單,沒有開放ftp,mysql沒有開放外聯,waf用的云鎖。
第一步我們先登錄云鎖看看,在20號左右沒有發現可疑日志。
那么我們先看看日志吧,先撥號上跳板,然后輸入xxxx.cc:888登錄云鎖控制臺。
然后進入【安全】菜單,點擊web日志的路徑進入。
然后下載19號之前和22號以后的日志
我的博客也沒啥流量,所以日志文件比較小,直接notepad 打開就行了。
因為之前看到那個黑頁的修改時間是2018年8月21日16:15:15
所以直接定位到8月21日18點04分左右的部分開始看.
直接在notepad 里面查找關鍵詞【.php】
然后定位到18點以后的部分。
疑似入侵者IP:222.240.56.48
查詢一下,湖南長沙的
現在咱們挨個文件看看他是如何發起攻擊的。
多做備份才能減少損失
因為博客上的文件已經被他刪得差不多了,只剩下一些配圖文件夾,不過還好對接了阿里云的oss。
每3天自動備份整站到阿里云oss。
這里不得不贊一下阿里云的oss,如果只是歸檔存儲的話,價格很便宜,不下載備份文件不用付費,只要購買儲存空間就行了
我們登錄阿里云控制臺,進入oss存儲。
然后進入文件管理,可以看到在19號之前的備份文件都是30多M
但是22號以后備份只有10多M了
所以我們得下載19號的這個備份文件去恢復到博客。
點擊19號這個文件,進入以后解凍文件,然后等大概兩分鐘就會解凍成功。
然后就能看到下載地址了,直接下載后上傳到我們博客,然后解壓就行了。
----小提示----
在恢復站點前,我們先閉站。
先把80端口和443端口加個白名單,只允許我們的IP訪問,這樣可以避免在你沒有查出問題之前,又被人給黑了。
官方后門 最為致命
他訪問的第一個文件 /include/lib/checkcode.php
我們本地訪問以下看看,發現這是驗證碼的文件。
第二個文件/content/templates/FLY/inc/ajax.php?a=ajax
我們直接訪問后顯示;
{"code":"208"}
如果管理員處于登錄博客狀態,會返回賬號密碼等等數據。
那么問題肯定出在這個ajax.php上面了,我們打開看看。
厲害厲害,加密了,這里非常感謝“空格表哥”幫忙解密了這個文件
我們查找ajax看看,發現在這里,賬號密碼被打印出來了。
日志里面發現post了一個數據
/content/templates/FLY/inc/ajax.php?a=login
我們在解密后的ajax.php里面搜索login看看
好家伙,官方后門真可怕,看到我注釋的地方,已經明白大概是啥意思了。
我們登錄博客后臺后,會把url 賬號 密碼等等數據傳送到作者的以下地址。
https://api.pjax.cn/i.php?data=
貼上代碼
我們繼續往下看。
在這里他上傳了一個模塊文件,然后安裝。
因為日志里面沒有發現他訪問了其他PHP文件,所以我首頁文件index.php被修改的可能只有一個,就是他上傳的模塊里面已經寫好了黑頁,然后上傳模塊,覆蓋掉我網站上面的首頁文件。
然后刪除我的模塊,這也證明了為什么只刪除了模塊,而我文章配圖文件夾都還在的原因。
我們該去找找攻擊者了
先再確認一下是不是作者干的,通過日志已經知道IP地址了。
222.240.56.48
查詢是湖南長沙的。
沒錯了,就是你了,直接問下作者是啥意思。
事情已經很明了啦,因為我之前購買以后換過一次域名,作者以為我現在這個域名是盜用了他的模塊,然后把我日的,躺槍了,這他媽是誤傷啊。但是模塊存在后門這個是事實。
總結下過程
1.作者在/content/templates/FLY/inc/ajax.php文件里面寫了個后門
2.我們正常登錄后臺以后,會自動把你的后臺地址,賬號密碼發送到作者哪里
3.然后作者那邊有個授權列表,會做對比,如果不在授權列表里面,會單獨標記出來。
4.然后某一天你就被作者刪模塊,掛黑頁了.....
避免被日方法
以防護軟件【云鎖】為例;
打開云鎖,進入詳細設置
進入漏洞防護設置
新增一條防護規則
用正則禁止訪問/admin后臺下的文件。
正則表達式;
/admin([sS]*?)
注意:新增這個規則以后你會無法訪問后臺,不過你可以把你ip或者跳板機加入白名單,以后只有你跳板機和你IP可以訪問/admin下面的所有文件。
繼續禁止ajax=login
([sS]*?)?a=login
禁止下列幾個文件訪問
useragent_setting.php
install.php.lock
setting.php
functions.php
寫在最后
雖然這是一起誤傷事件,但是改變不了把我站黑了的事實,所以,我做了一個決定,直接公開你的模塊,并寫出避免被日的方法。
收費模塊鏈接大家關注我后發私信索要即可
ajax文件后門部分已經被我注釋掉了,表哥們安心使用就是了。
另外有幾個加密文件沒有研究,有興趣的表哥們自行解密研究看看。
1.本站遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.本站的原創文章,請轉載時務必注明文章作者和來源,不尊重原創的行為我們將追究責任;
3.作者投稿可能會經我們編輯修改或補充。