我正面臨着我的服務器問題,因爲有時惡意軟件會在文件的末尾或文件開始時添加它們的代碼。據我所知,我已經修復了安全漏洞。我的託管服務提供商已經通知安全性已經足夠,但我已經變得對我的網站上的病毒/惡意軟件活動產生偏執。我有一個計劃,但我不熟悉像sed或awk或gawk這樣的Linux編輯器,所以需要您的幫助。我可以使用我的PHP知識來做到這一點,但這會非常耗費資源。使用awk獲取惡意軟件病毒活動所需的幫助
由於惡意軟件/病毒在文件的開頭或結尾添加了代碼(以便網站不顯示任何錯誤),請您告訴我如何編寫一個可遞歸查看所有.php文件的命令(我將使用幫助對其他類型的文件進行更改)放在父目錄和所有子目錄中,並在文件的開始和結束處添加一個特定標記,例如XXXXXX_START和YYYYYY_END。
然後我需要一個腳本來讀取所有的.php文件,並檢查代碼的第一行是否是XXXXX_START,最後一行是YYYYYYY_END,如果發現任何文件不同,請創建報告。
我將設置一個cron來檢查所有文件,並在發現任何差異時通過電子郵件將報告發送給我。
我知道這不是100%萬無一失,因爲病毒可能會在註釋行之後添加數據,但這是我能想到的最佳選擇。
我曾嘗試下面的命令在開始添加數據 -
sed -i -r '1i add here' *.txt
但這不是遞歸,並將其添加行僅在父目錄中的文件。
然後我發現這個 - BEGIN和END是特殊模式。它們不用於匹配輸入記錄。相反,它們用於爲awk腳本提供啓動或清理信息。在讀取第一個輸入記錄之前,執行一次BEGIN規則。在所有輸入被讀取後,執行END規則一次。例如:
awk 'BEGIN { print "Analysis of `foo'" }
/foo/ { ++foobar }
END { print "`foo' appears " foobar " times." }' BBS-list
但不幸的是,我無法破譯任何東西。
任何有關上述細節的幫助是非常感謝。歡迎任何其他建議。
問候,
尼廷
你會更好,產生SHA-256散列每個文件,並保持的紀錄官方散列比你的託管服務提供商(一個USB棒,或一臺筆記本電腦,或其他地方)的地方。當您需要檢查時,您會重新生成託管提供商上的文件的哈希值,然後將這次得到的結果與上次記錄的結果進行比較。任何差異都歸因於文件更改。最可能的原因是您忘記了更新了文件,並且您沒有更改保存的散列值,但它只給出了有限數量的文件(您希望)進行檢查。 –