頁面篡改安全事件應急流程
文章首發于奇安信攻防社區
地址:https://forum.butian.net/share/902
一、認識網頁篡改
了解網頁篡改類型
網頁篡改指的是黑客通過技術手段上傳了webshell(網頁木馬)拿到控制權限后對網站的內容及頁面進行刪、增、改。
網站首頁替換型:首頁面index.html、default.html被替換成與主體網站毫不相干的頁面,大多數為黑色頁面或其他炫目的網頁俗稱黑頁,此類大多為黑客入侵后炫技或惡作劇的行為。

網站頁面TDK篡改型:TDK為標題(Title)、描述(Description)、關鍵詞(KeyWords)的縮寫,其作用是關鍵詞優化用戶在輸入關鍵詞后能第一時間找到你的產品,提升在搜索引擎排名提高知名度讓用戶認可,提高網站的權重值已以及訪問量,此類型的篡改大多數為BC等違法網站篡改手法,該篡改手法比較隱匿不易發現可正常訪問網頁,需要查看網頁源代碼。

加載外部js腳本劫持型:js腳本劫持更為隱匿不易察覺,其頁面TDK可能不會被篡改,js劫持是通過代碼來判斷和識別蜘蛛訪問的,若正常訪問,則給出正常內容,若判斷到是搜素引擎來訪問,就給出另一個頁面,使搜素引擎抓取快照進行改變,之后判斷來路跳轉,簡而言之通過瀏覽器正常輸入域名URL是不會跳轉到違規頁面,反而通過搜索引擎點擊URL則觸發了js代碼規則從而實現js腳本劫持,可通過修改自身瀏覽器User Agent模擬搜索引擎的蜘蛛來辨別。


網頁孤島頁面型:孤島頁面是指網站文件內生成一個與網站主體毫不相干充斥違規內容的一個全新html頁面,孤島頁面顧名思義就像一座孤島在網站上沒有外部鏈接可進行跳轉到此頁面所以稱之為孤島頁面,該篡改類型大多數是黑客通過網站的編輯器上傳違規的html頁面也不排除黑客通過webshell上傳的,孤島頁面的生成情況絕大部分是黑客通過網站的編輯器未授權訪問自動化腳本上傳的,由此可通過html頁面的生成時間來進行判斷。

Global文件快照劫持型:Global.asax 文件是 ASP.NET 全局應用程序文件,這類文件是動態腳本每次加載時都會加載的配置文件,如訪問x.php時會加載conn.php,這樣的話只需要修改這些全局的動態腳本文件(如global.asax),訪問所有的aspx文件時都會加載這個global.asax文件,可以達到全局劫持的效果從而劫持流量跳轉至違規網站,此類篡改全局流量劫持手法與加載外部js達到流量劫持的手法基本一致,也可通過修改自身瀏覽器User Agent模擬搜索引擎的蜘蛛來辨別。

二、現場處置
對接談話
到達客戶現場后第一時間告知負責網絡相關的人員請勿對被篡改文件進行刪除或修改,這樣做的原因是方便后續對入侵途徑進行溯源分析。
詢問相關網絡管理人員,發生篡改后有沒有自主發現異常或者是被通報后才知道被篡改的,自主發現的話發現時間又是多久,確定好第一篡改的時間對后續的調查工作有很大的幫助。
了解安全事件發生的網絡情況、服務器系統、其他安全設備等
通過判斷確認該篡改為內容篡改還是跳轉劫持,詢問管理員當前web文件存放的位置部署的服務以及對外開放的端口都有哪些和運行服務的系統類型:
- 首先向網絡管理的負責人要求打印一份當前網絡拓撲圖出來,這樣方便更快定位出發生安全事件服務器所在的區域。
- 查看網絡中或者網絡邊界有沒有流量監控設備如邊界的應用防火墻(WAF)或者上網行為管理,如果有部署流量設備那這些設備是否可以檢測到發生安全事件的服務器流量。
- 發生安全事件的服務器為Windows還是Linux或者其他的操作系統,確認好操作系統類型方便取證工作。
- 發生安全事件的服務器是否開啟日志記錄功能或者網絡中是否部署有日志審計系統,日志審計系統是否能夠正常接收到該服務器推送過來的日志,日志這一點對溯源工作至關重要。
- 網絡中是否有部署防篡改設備,設備防篡改功能是否生效是否對此次事件產生告警,因為還是有挺多單位防篡改設備是購買了的但策略或者功能未開啟也有可能的。
- 需要了解客戶業務內容的發布流程,在編輯好文章后需要發布時有沒有專門的審核部門對文章進行審核,因為絕大部分的文章內容上存在暗鏈鏈接,編輯人員不細心就也會將內容里的暗鏈給復制過來。
判斷安全事件表現
通過以上綜合與相關網絡管理人員訪談結果,判斷安全事件是否誤報:
- 是否在系統更新迭代時,對該文件進行修改所導致的異常告警。
- 是否為用戶誤操作所導致觸發告警。
- 是否為緩存文件所導致觸發異常告警。
- 篡改事件是否只發生在互聯網端,內網訪問是否返回正常頁面,如果是則考慮鏈路挾持或者CDN節點問題。
2.2確認篡改對象
2.2.1系統文件
通過登錄到服務器上,對比查看被篡改文件和舊文件的MD5值、查看數字簽名(Windows)完整性和對文件進行樣本分析,來判斷該文件是否為被篡改,確認是否為誤報。
Windows系統下:
使用“MD5校驗器”打開原有文件與疑似篡改文件,獲得MD5值后進行比對,如果兩文件MD5不一樣證明該文件被篡改。如果文件有數字簽名,右鍵屬性查看數字簽名是否完整,如果數字簽名被損壞證明該文件被篡改。通過右鍵文件屬性查看,文件創建、修改時間晚于用戶最后一次更新時間,則判斷文件被修改。
Linux系統下:
使用md5sum + [文件名],獲得MD5值后進行比對,如果兩文件MD5不一樣證明該文件被篡改。通過stat + [文件名],獲得時間三個時間:access time(訪問時間)、modify time(內容修改時間)、change time(屬性改變時間),如果modify time修改時間晚于用戶最后一次更新時間,則判斷文件被修改(由于Linux系特殊性,modify time黑客可以對其進行修改,所以需要在現場根據change time進行研判)。
2.2.2網頁文件
通過現有的網頁文件進行查看源代碼是否包含違法違規與網頁不相干的內容辨別網頁是否被篡改,若看不出是否存在篡改詢問相關管理人員在篡改發生前是否有備份文件,再對新舊文件的源代碼進行內容對比判斷網頁是否被篡改。
Windows系統下:
右鍵被篡改文件查看屬性,創建時間、修改時間、訪問時間將其截圖記錄下來。右鍵被篡改文件通過記事本打開查看其源代碼,文件中的源代碼篡改內容通常都會被Unicode編碼,可通過網上在線的站長工具進行Unicode編碼轉換(地址:http://tool.chinaz.com/tools/unicode.aspx)。利用第三方文件對比工具“Beyond Compare”將原文件與疑似被篡改文件載入,可以顯示出兩文件不同的部分,確定文件是否被篡改(下載地址:https://www.scootersoftware.com/download.php)。
Linux系統下:
使用cat命令查看文件內容。使用diff命令,將原文件與疑似被篡改文件載入,可以顯示出兩文件不同的部分,確定文件是否被篡改。使用find ./ -mtime 0 -name "*.jsp"查找24小時內被修改的jsp文件,以此類推可查找其他后綴的文件。使用find / -ctime -2命令查找72小時內新增的文件。使用find / *.jsp -perm 4777查找權限為777的jsp文件。
值得注意的是網頁篡改不一定發在網頁文件當中黑客可能通過修改web容器的配置進行篡改、劫持、跳轉等操作,若找不到被篡改的內容可對webserver等中間件容器的配置進行檢查(案例:https://forum.butian.net/share/836),排查配置文件是否在安全事件發生期間有過改動,常見的中間件容器配置如下:Apache: http.conf、Tomcat: web.xml、IIS: web.config、Nginx:nginx.conf、PHP:php.ini。
2.3后門查殺與工具推薦
類似發生網頁篡改類安全事件,絕大部分黑客已經拿到了網站的一定控制權,一般網頁類后門俗稱webshell分為一句話、小馬、大馬、內存馬,這時我們要對webshell進行查殺清除以防黑客進一步的攻擊。
Windows系統下:
D盾:不分擴展名的代碼分析引擎,能分析更為隱藏的WebShell后門行為,其規則庫強大掃描速度快,使用方法點擊選擇目錄選擇web的根目錄掃描即可,下載地址:http://www.d99net.net/。

Linux系統下:
河馬查殺:針對于Linux環境下的webshell查殺,擁有海量webshell樣本和自主查殺技術,采用傳統特征+云端大數據雙引擎的查殺技術,查殺速度快、精度高、誤報低,進入河馬工具目錄使用命令./hm -h查看具體的查殺指令,下載地址:https://www.shellpub.com/。

在線查殺webshell地址:
百度WEBDIR+,下一代WebShell檢測引擎,采用先進的動態監測技術,結合多種引擎零規則查殺,地址:https://scanner.baidu.com/。
Web Shell Detector具有“ Webshell”簽名數據庫,可幫助識別高達99%的“ Webshell”,地址:http://www.shelldetector.com/。
深度學習模型檢測PHP Webshell,地址:http://webshell.cdxy.me/。
若客戶業務環境不允許上傳工具到服務器進行查殺,可將整個網站文件打包后下載至本地在使用工具進行查殺或者上傳至線上查殺,值得注意的是,當在拷貝整站源碼文件的時候如果對方客戶使用的是虛擬主機空間上傳下載都需要FTP來操作,直接將源碼文件下載下來的話文件的修改時間會變成當天的下載時間這樣對后面的溯源分析帶來很大的困難,需要在面板將源碼文件都打包成一個壓縮包在將其下載下來。
2.4所需提取的材料
樣本的材料提取對后續安全事件的溯源分析起到了至關重要的作用,所需要做的工作內容是首先將被篡改的頁面截圖下來,篡改的頁面文件最后的修改時間也需要截圖,工具所掃出來的后門和最早被上傳的后門也需要截圖,需要相關管理人員配合將網站整站打包、系統日志、中間件日志拷回,必要時可要求對方將整個系統鏡像拷貝:
Windows系統日志:控制面板>管理工具>事件查看器>Windows日志。

Linux系統日志:cd /var/log

各個中間件日志的默認路徑:
IIS:C:\WINDOWS\system32\LogFilesApache:Linux:/usr/local/apache/logs/;Windows:apache/logs/Tomcat:conf/logging.propertiesWeblogic:domain_name/servers/server_name/logs/Jboss:jboss/server/default/conf/jboss-log4j.xmlNginx:/var/log/nginx/