【WebShellQuickScanner】 檢查Linux伺服器上的PHP WebShell的快檢腳本,並將报告推至Telegram
【WebShellQuickScanner】 一個在 Linux 伺服器上檢查是否有 PHP WebShell 和使用了高危函數的 PHP 文件的快檢腳本,同時能把檢查結果推送至 Telegram。
其實早在 17 年 Typecho 出了個 0Day 被人駭了插了一句話 shell 之後我就已經想寫這東西了。放飛機放了兩年之後這 0day 都已經成為 114514day 了我終於把這腳本給摸出來了。
這篇文章將作為此腳本的繁體中文説明檔案。
項目位址
GitHub: https://github.com/DeepSkyFire/WebShellQuickScanner
關於腳本
一個在 Linux 伺服器上快速檢查位址下是否含有 PHP WebShell 和使用了高危函數的 PHP 文件的快速檢查腳本。
它可以在 Linux 下快速檢查指定位址內的所有.php
檔案中是否使用了高危函數,但它並不會刪除被檢測出來的檔案。所以需要自行決定如何處理這些被檢查出來的檔案。
它並不能替代防毒軟體,請將它給出的報告作為參考。
快捷使用
獲得 WebShellQuickScanner
wget --no-check-certificate https://raw.githubusercontent.com/DeepSkyFire/WebShellQuickScanner/master/src/WebShellScanner.sh && chmod +x WebShellScanner.sh
開始快速檢查
./WebShellScanner.sh -p /data/www-data(要檢查的檔案位址)
詳細訊息
- 使用依賴
如要使用將報告推至 Telegram 功能,需要在作業系統內安裝 cURL。
- 將報告推至 Telegram
你需要先在 Telegram 中擁有一個 Bot。並取得你的 Chat ID。
- 關於主機名
你可以自定一個主機名。如果你不指定主機名,腳本將會自動讀取作業系統默認的主機名。主機名的唯一作用是在將發送至 Telegram 的報告中作為伺服器的標識便於識別。
關於保存日誌檔案
如你想要在伺服器本地保存日誌檔案,你可使用以下設置:
./WebShellScanner.sh -p /data/www-data -l /home/wwwwlogs
請注意!日誌保存位址的結尾不要帶“/”號。
完整演示
如你準備檢查“/data/www-data”的站點位址並將檢查日誌保存至“/home/wwwlogs”,然後把檢查報告推至 Telegram 並將主機名自定義為“MyServer1”,你可以使用以下設置:
./WebShellScanner.sh -p /data/www-data -t TELEGRAM_BOT_TOKEN -c TELEGRAM_CHAT_ID -n MyServer1 -l /home/wwwwlogs
查看幫助訊息
./WebShellScanner.sh -h
- 定期檢查
你可以使用
crontab -e
设置一个定期扫描任务。
参数说明
WebShellScanner.sh [-h] [-p <檢查位址>] [-t <TELEGRAM BOT TOKEN>] [-c <TELEGRAM CHAT ID>] [-n <自定義主機名>] [-l <日誌保存位址>]
允許使用的命令行選項:
-h 顯示幫助訊息. 可選參數.
-p <檢查位址> 要進行檢查的位址.
-t <TELEGRAM BOT TOKEN> Telegram Bot Token. 可選參數.
-c <TELEGRAM CHAT ID> Telegram Chat id. 可選參數.
-n <HostName> 自定义主机名. 可選參數.
-l <日誌保存位址> 日誌保存位址(日誌保存位址的結尾不要帶“/”號). 可選參數.
開源授權
- 本項目根據 GPLv3(GNU General Public License v3.0)許可進行發佈。