一條指令徹底刪除掃描出來的有害程式
一條指令徹底刪除掃描出來的有害程式
作者:田逸(formyz )
一個NFS 伺服器,為多個Web 專案 所共享。這些目錄包括PHP 程式、圖片、HTML 頁面和使用者上傳的文件和附件等。因為某些Web 框架古老,存在諸如不對上傳檔案做嚴格的安全性檢查,雖然此NFS 伺服器位於受保護的內部網路,但任然被別有用心的人上傳了大量的惡意檔案。強烈要求程式設計師進行程式(Discuz )更新,答覆說更新難度太大,無法在程式上進行處理。從系統管理層面上,臨時的措施僅僅是安裝shadu 軟體,對這個共享目錄進行掃描,然後刪除這些有害的檔案(治標不治本)。
共享儲存NFS 部署在Centos 7.9 上,儲存空間44T ,使用空間4.5T (如下圖所示),由於管理相對鬆懈,有大量的垃圾資訊不進行清理和歸檔。
根據以往的經驗和使用習慣,決定在NFS 服務所在的宿主系統Centos 7.9 部署開源的、大名鼎鼎的安全軟體Clavam ,其官方的宣傳“ ClamAV ® is an open-source antivirus engine for detecting trojans, viruses, malware & other malicious threats ”--ClamAV® 是一款開源防Virtual 引擎,用於檢測特**洛***伊Muma 、病Du 、惡意軟體和其他惡意威脅。不知從什麼時候開始,官網底部的標識換成網路裝置生產商CISCO ,即便如此,Clamav 目前還是開源、免費的,可以不受限制使用。在Centos 7.9 上,至少有3 種部署安裝Clamav 的方法:RPM 二進位制包、二進位制原始碼和線上包管理工具“yum” ,如下圖所示。
在Centos 7.9 下部署安裝Clamav 最容易、最便捷的方式就是“yum install ”,試著在系統命令列下執行“yum install clamav ”,執行過程及輸出如下。
很遺憾,Clamav 沒有包含在軟體倉庫中,不能被正確安裝到系統。再試著新增一個“epel-release ”附加軟體倉庫,執行的命令是“yum install epel-release ”。接著繼續執行“yum list clamav ”, 從輸出可知,附加的倉庫列表已經包含軟體包“clamav ”,如下圖所示。
執行指令“yum install clamav ”進行正式安裝。除了主軟體Clamav 外,還有另外多個依賴包被一起安裝,如下圖所示。
與用原始碼包安裝相比,不需要根據安裝過程中的錯誤輸出逐一安裝所需的依賴,效率大大的提高了。
初次被安裝部署的Clamav 的bingdu 庫比較陳舊滯後,需要在系統命令列下對這個bingdu 特徵庫進行更新,降低掃描識別的遺漏。執行bingdu 庫更新的命令是“freshclam ”,不帶任何引數和選項,執行的過程及輸出如下圖所示。
Bingdu 庫已經是最新的了,在正式執行掃描之前,為了預防SSH 遠端終端斷開而導致掃描中斷,強烈建議在“screen ”上執行掃描。如果執行命令“screen ”提示命令不存在,用“yum install screen ”安裝之。正確執行命令“screen ”後,系統立即返回Shell 提示符,這時,正式輸入如下指令對疑似有問題的共享目錄進行完整掃描,並把輸出記錄到日誌檔案”/var/log/clamscan.log” 。
clamscan -r /data -l /var/log/clamscan.log |
經過漫長的等待,我這個掃描耗費了好多天的時間才完成。檢視掃描日誌檔案,是否存在惡意檔案,使用的命令如下:
[root@nas wenku]# grep FOUND /var/log/clamscan.log /data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip: Win.Trojan.IRCBot-785 FOUND /data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip: Unix.Trojan.Agent-37008 FOUND /data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip: Win.Tool.Chopper-9839749-0 FOUND /data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip: Win.Tool.Chopper-9839749-0 FOUND /data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip: Unix.Dropper.Mirai-7338045-0 FOUND /data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip: Win.Trojan.SdBot-13589 FOUND /data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip: Win.Malware.Aa93a15d-6745814-0 FOUND /data/kong/blog/attach/attachment/201603/9/30229789_1457535724sulu.jpg: Win.Trojan.Generic-6584387-0 FOUND ……………. 省略更多………………………….. /data/wenku/App_Data/Documents/2012-03-10/7da3d2c7-6d16-44c2-aab1-e8a317716c15.txt: Dos.Trojan.Munga-4 FOUND /data/wenku/App_Data/Documents/2014-02-17/4ed74e66-54d1-46b5-8a41-4915ced095a5.ppt: Xls.Trojan.Agent-36856 FOUND /data/wenku/App_Data/Documents/2014-02-23/c5c1dfa6-9f04-4e53-b418-4d711ce5408d.ppt: Win.Exploit.Fnstenv_mov-1 FOUND /data/wenku/App_Data/Documents/2014-07-15/ae2dfca5-ddef-4c41-8812-bcc5543415e1.txt: Legacy.Trojan.Agent-34669 FOUND |
一共有500 多條帶關鍵字“FOUND ”的記錄,而且分佈路徑不規律,無法透過刪除目錄的方式將這些分佈離散的惡意檔案給處理掉。如果手工一條一條的按絕對路徑刪除,即低效也容易出錯;假使這種形式分佈的惡意檔案成千上萬,用手工逐一刪除的方式基本無法完成。
命令“clamscan ”本身帶選項“--remove ”直接刪除掃描出來的惡意檔案,但這樣沒有經過相關人員的確認,可能會引起爭論。所以需要將這些有問題的惡意檔案,呈現給相關人員確認,沒有異議以後,才可以移動或者刪除。
從Clamav 掃描出來的日誌檔案下手,用工具將惡意檔案的全路徑提取出來,使用的指令如下。
[root@nas wenku]#grep FOUND /var/log/clamscan.log |awk -F[:] '{print $1}' /data/wenku/App_Data/Documents/2016-04-11/8fe8d01e-e752-4e52-80df-f202374b2b6d.doc /data/wenku/App_Data/Documents/2016-04-11/03a14021-279f-45cd-83c5-b63076032c9e.doc /data/wenku/App_Data/Documents/2016-04-11/c45ddc01-ec3d-4a54-b674-8c2082d76ce3.doc /data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip /data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip /data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip /data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip /data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip /data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip /data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip ……………… 省略若干 ………………………… |
與原始日誌相比,去掉了冒號“: ”以及其後的全部欄位。在此指令後,增加管道並配合“xargs ”傳遞引數,就可以將掃描出來的惡意檔案全部清理掉,不管它分佈到什麼路徑,完整的命令如下所示。
grep FOUND /var/log/clamscan.log |awk -F[:] '{print $1}'| xargs rm -rf |
執行完畢,隨機找幾條掃描出來的惡意檔案全路徑,檔案應該不存在( 如下圖所示) ,則表明指令碼正確,正是我們所期待的結果。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/632405/viewspace-3006170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle rac 12徹底刪除,徹底刪除該死的racOracle
- 徹底刪除ORACLEOracle
- Ubuntu徹底刪除MySqlUbuntuMySql
- AIX徹底刪除ORACLEAIOracle
- Mac 將 Sublime 徹底刪除Mac
- Ubuntu下徹底刪除vimUbuntu
- win10怎麼徹底刪除office_win10徹底刪除office的詳細教程Win10
- 徹底刪除mysql容器內容MySql
- 電腦上怎麼徹底刪除一個檔案?兩種可以直接徹底刪除檔案的操作方法
- Win10 - 徹底刪除OneDrive的方法Win10
- oracle徹底刪除資料檔案Oracle
- (個人)windowns系統徹底刪除oracleOracle
- SAP徹底刪除物料主檔操作
- win10怎樣徹底刪除印表機 win10如何徹底刪除印表機驅動Win10
- mac上的外掛怎麼徹底刪除Mac
- win10系統如何將檔案徹底刪除 win10電腦徹底刪除檔案的方法Win10
- mongodb安裝失敗如何徹底刪除MongoDB
- 徹底刪除MySQL步驟介紹ATSSMySql
- SAP 徹底刪除物料主資料操作
- 如何徹底刪除解除安裝JDK(java)?JDKJava
- centos 系統如何徹底刪除docker命令CentOSDocker
- 徹底刪除windows自帶的輸入法(轉)Windows
- centos徹底刪除資料夾、檔案命令CentOS
- 百度防毒徹底解除安裝刪除的技巧防毒
- ubuntu 徹底刪除wine及殘留的快捷方式Ubuntu
- 如何徹底刪除資料?AweEraser新手使用小技巧
- 教你怎麼從Windows10徹底刪除FlashWindows
- win10怎麼徹底解除安裝office win10徹底刪除office方法Win10
- win10如何徹底刪除hao123主頁 win10徹底刪除hao123主頁的方法Win10
- 電腦怎麼找回徹底刪除的檔案?年度方法
- openstack中徹底刪除計算節點的操作記錄
- 徹底刪除一個專案中的原始碼管理資訊(VSS6.0)原始碼
- (個人)Linux或UNIX系統下徹底刪除oracleLinuxOracle
- Centos中徹底刪除Mysql(rpm、yum安裝的情況)CentOSMySql
- 徹底刪除解除安裝Windows XP自帶的Windows MessageWindows
- win8系統刪除大檔案總是提示“徹底刪除”怎麼辦
- mac上如何徹底刪除IntelliJ IDEA等軟體MacIntelliJIdea
- mac怎麼徹底刪除檔案不佔用空間Mac