Linux伺服器發現挖礦病毒(crypto和pnscan)導致CPU爆滿100的詳細解決方法
木馬攻擊問題由來闡述
我買了三年的阿里雲伺服器(在
阿里雲官網買的),已經使用了一年多了,平時拿來搭建網站,有時也拿來學習技術和開發測試,一直使用很穩定。直到近期我伺服器上安裝了docker並部署了springboot+mysql+nginx專案,就被攻擊了。但就在今年的5月14號,我的伺服器被木馬攻擊,然後被拿去挖礦了。我伺服器的cpu持續維持在CPU100%. 後果是直接導致我網站無法正常請求和響應。而且Linux伺服器的root許可權被竊取了。
駭客在伺服器/root/.ssh目錄下生成了連root使用者也無法刪除的ssh金鑰檔案(本質就是利用chattr命令加了特殊許可權),可以免密碼登入。這樣的後果就是,我的伺服器的控制權被別人控制了。是可忍熟不可忍,必須解決。
我是第一次遇見這種噁心的問題,也不知道駭客們是怎麼盯上我的伺服器的,也許我是無目的的攻擊受害者。作為建站老鳥以及程式設計師的我,硬著頭皮也得解決。因為我是搞前端方面的,所以Linux方面的技能都是我業餘時間學習。所以這次問題的解決經過還是挺考驗學習能力的。
大致過程分為兩大步:
-
第一步:清除木馬後門(ssh免登入金鑰)
-
第二步:殺死木馬程式以及清除木馬檔案(挖礦病毒crypto和蠕蟲病毒pnscan)
我用到的工具
-
阿里雲伺服器: 阿里雲伺服器,國內第一大雲品牌,當初是用它來入門學習程式設計技術的。當然用到它了,要不然中病毒的受害者是誰呢。當然不是說買了阿里雲的伺服器才會中毒,因為病毒中毒是因為你Linux安全意識和使用不當造成的。這次我是因為docker使用或者純碎因為ssh暴力破解有關係。所以你換其它家的雲伺服器,比如 騰訊雲伺服器,也一樣存在被攻擊的可能。事後,我們必須去學點基礎的安全防護技巧。
-
寶塔皮膚:寶塔皮膚是很重要的工具,這裡就不多說了,入門和使用教程彙總參考: 寶塔皮膚安裝和入門教程彙總
-
FinalShell客戶端: 下載地址 該客戶端可以安裝之後更新到最新版本。
-
chattr原始碼檔案一份(C程式):需要編譯chattr檔案,破解病毒的chattr附加的特殊屬性i 。我再文章中已經給了原始碼地址,自己去下載使用。Linux系統可以敲命令列去編譯c程式原始碼檔案。
第一步:刪除免登入ssh金鑰檔案(木馬後門)
1、先下載C檔案( ), 上傳到伺服器的任意目錄
2、編譯,cc chattr,得到檔案a.out,把名字改成chattr
這一步出現了一個錯誤:
collect2: fatal error: cannot find 'ld' compilation terminated.
解決方法是(兩條命令):
yum -y install binutils ln -s /usr/bin/ld.gold /usr/bin/x86_64-nptl-linux-gnu-ld.gold
參考資料: 執行gcc出現collect2: fatal error: cannot find ‘ld’
3、執行編譯好的檔案,把被篡改的檔案去掉不可修改的隱藏屬性,
./chattr -ia /usr/bin/chattr
編譯檔案執行命令是:”./chattr” 使用指令 ./a.out 執行該程式
參考資料:
Linux環境編譯執行C語言程式
4、再把編譯好的檔案,放回/usr/bin/。這一步我沒有選擇覆蓋chattr檔案,我選擇的是先刪除
rm -f chattr
檔案,然後執行安裝命令:
yum install e2fsprogs
安裝chattr和lsattr. 然後就可以正常的修改和刪除/root/.ssh/目錄下的金鑰檔案了。幹掉駭客的root許可權。
chattr檔案目錄: /usr/bin/chattr
ssh金鑰檔案目錄:/root/.ssh
編譯chattr檔案原始碼目錄:/root (這個目錄可以隨意選)
編譯安裝chattr之後,就可以正常使用chattr命令了
#檢視檔案屬性 lsattr authorized_keys # 去除a屬性 chattr -a authorized_keys # 去除i屬性 chattr -i authorized_keys # 去除e屬性 chattr -e authorized_keys
沒有修改特殊屬性的檔案 許可權是600 。root使用者無法刪除和修改。透過上面的chattr命令一一去除特殊屬性,就可以正常修改和刪除金鑰檔案了。
金鑰檔案裡面的內容已經被我清空了。這兩個檔案終於可以修改了。
參考教程:
-
chattr命令被篡改 主要是這篇文章的啟發
第二步:殺病毒crypto和pnscan病毒程式
查詢CPU100耗盡的原因
挖礦病毒crypto和pnscan 入侵linux主機,留有/root/.ssh/金鑰免登入後門。
第1步:清除root免登入許可權。這一步我們已經做好了。
第2步:刪除挖礦病毒crypto和pnscan檔案。
crypto檔案目錄位置:
/urs/share/
pnscan檔案目錄位置:
/usr/local/bin
如果木馬檔案不在這兩個位置,可以使用命令來查詢:
whereis pnscan
和
whereis crypto
這命令會顯示檔案所在的Linux路徑
這兩個病毒相關檔案,可以直接用rm -f 檔名 直接刪除乾淨。它們沒有加chattr特殊許可權。
我把這幾個要刪除的病毒檔案全部下載到了window電腦上。就是為了截圖給大家,要刪除哪些檔案。注意pnscan病毒目錄和crypto病毒目錄不在一塊,我是下載到window才統一放到一個目錄的。
我在自己的阿里雲伺服器上刪除了這兩個病毒相關檔案(crypto是5個檔案,pnscan是1個檔案),這一步就算完成了。
第3步:殺crypto和pnscan兩個程式,cpu就會降下來。而不是百分百耗盡。
用 top 命令查出cpu佔用高的程式。很明顯能發現是crypto和pnscan兩個程式cpu佔用高。
crypto程式可能會偽裝其它名字,需要仔細發現。pnsan程式有可能會殺不死,需要先刪除兩個病毒檔案,才去殺病毒程式,效果會更好。
# Linux執行top查詢cpu程式佔用情況top
小技巧:這次我沒有用finalshell來操作這些命令,因為cpu佔用100的情況下,寫命令列也很卡,而且無法看到Linux目錄檢視。所以我用寶塔皮膚的終端來寫ssh命令,主要是能看到Linux檔案目錄檢視。
透過top命令可以清晰的檢視到病毒程式的高cpu佔用率。記住它們的程式pid
# 殺死兩個病毒程式,伺服器CPU恢復正常。這是關鍵的一步操作 sudo kill -9 27220 24131
你執行上面的kill命令也會出現kill沒有許可權而執行失敗的錯誤提示。毫無疑問,linux系統的關鍵命令都被加了chattr特殊屬性,需要去除它的i屬性,去除之後,才執行上面的殺病毒程式命令。殺完病毒程式之後,再用top命令去監控,發現沒有了cpu高佔用率的程式之後,可以去觀察寶塔皮膚和其它FinalShell客戶端,會顯示cpu執行正常的。
# 找到kill路徑 whereis kill# lsattr檢視特殊屬性lsattr /usr/bin/kill# chattr去除附加特殊屬性 ichattr -i /usr/bin/kill# chmod賦許可權chmod 755 /usr/bin/kill # 現在你就可以正常去執行kill命令了。
寶塔皮膚ssh命令終端展示:
[root@iZuf6bm7y86rsciyk4lvriZ ~]# lsattr /bin/kill----i--------e-- /bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# chattr -i /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# lsattr /usr/bin/kill-------------e-- /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# chmod +x /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# lsattr /usr/bin/kill-------------e-- /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# sudo ls -l /bin/kill---xr-xr-x. 1 root root 33608 Apr 1 2020 /bin/kill
FinalShell終端命令展示:
[root@iZuf6bm7y86rsciyk4lvriZ ~]# whereis kill kill: /usr/bin/kill /usr/share/man/man1/kill.1.gz[root@iZuf6bm7y86rsciyk4lvriZ ~]# lattr /usr/bin/kill-bash: lattr: 未找到命令[root@iZuf6bm7y86rsciyk4lvriZ ~]# lsattr /usr/bin/kill-------------e-- /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# chattr -i /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]# chmod 755 /usr/bin/kill[root@iZuf6bm7y86rsciyk4lvriZ ~]#
其中用到的命令:netstat 也會遇到和kill命令類似的問題。解決方法類似:
[root@iz8vb8rrw7wiwqtau1dp8jz bin]# netstat -nltp-bash: /usr/bin/netstat: Permission denied[root@iz8vb8rrw7wiwqtau1dp8jz bin]# chmod 755 /usr/bin/netstat chmod: changing permissions of ‘/usr/bin/netstat’: Operation not permitted[root@iz8vb8rrw7wiwqtau1dp8jz bin]# lsattr /usr/bin/netstat-------i------e-- /usr/bin/netstat[root@iz8vb8rrw7wiwqtau1dp8jz bin]# chattr -i /usr/bin/netstat[root@iz8vb8rrw7wiwqtau1dp8jz bin]# chmod 755 /usr/bin/netstat # 用 netstat命令檢視埠情況。netstat命令附帶屬性可以查資料[root@iz8vb8rrw7wiwqtau1dp8jz bin]# netstat -nltp Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN [root@iz8vb8rrw7wiwqtau1dp8jz bin]#
在殺了病毒程式之後,CPU終於恢復到正常水平,終於成功了,好開心啊,因為過程還是比較曲折的。
FinalShell客戶端顯示cpu正常。
寶塔皮膚顯示cpu執行正常。
總結:經過這次安全事件,我應該去學點基礎的安全防護技巧,比如,不能用root使用者操作Linux系統,不能用賬戶和密碼登入賬戶,禁用它,然後用ssh金鑰登入。比如使用相關的安全工具去防護它。
參考教程:
原文出處: https://www.yundashi168.com/272.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69988117/viewspace-2773055/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CPU挖礦病毒解決方法
- 伺服器挖礦病毒的解決方案伺服器
- 解決伺服器滿CPU被當礦機問題伺服器
- 解決Linux索引節點(inode)用滿導致故障的方法Linux索引
- Oracle程式導致CPU 100%解決步驟(轉)Oracle
- 解決new Thread().Start導致高併發CPU 100%的問題thread
- 如何解決centos伺服器被植入挖礦病毒CentOS伺服器
- Filecoin礦機挖礦系統開發(案例詳細)
- 解決伺服器 CPU 佔用 100% 導致 PHP-fpm 程式假死問題伺服器PHP
- 全面清理整頓挖礦病毒,如何防止被通報?深信服挖礦病毒防護解決方案出爐
- 伺服器CPU跑滿的解決辦法伺服器
- SQL Server伺服器CPU爆高解決SQLServer伺服器
- 【已解決】挖礦病毒 logrotate 185.196.8.123logrotate
- system表空間爆滿解決方法
- MySQL伺服器Swap滿了100%導致db很慢很卡MySql伺服器
- 記一次NACOS開放公網訪問導致伺服器被挖礦的解決流程 [kdcflush] acosd伺服器
- 解決阿里雲伺服器被挖礦阿里伺服器
- 比特幣CPU挖礦、GPU挖礦、礦池及礦機挖礦技術原理比特幣GPU
- 支援雙系統挖礦,警惕新型挖礦病毒入侵
- 挖礦系統開發技術詳解丨挖礦APP開發原始碼案例APP原始碼
- 雲算力挖礦app開發詳情丨雲算力挖礦系統開發(詳細及邏輯)丨雲算力挖礦原始碼APP原始碼
- ORACLE 中undo表空間爆滿的解決方法Oracle
- 一條主鍵索引SQL導致的CPU被打滿索引SQL
- MDEX挖礦系統開發規則詳解 | MDEX挖礦系統開發原始碼原始碼
- 華納雲:香港伺服器CPU爆滿如何應對?伺服器
- 挖礦病毒分析(centos7)CentOS
- 挖礦病毒消滅記二
- IPFS挖礦開發解決方案及IPFS礦機挖礦原理及最優規劃
- Linux 離奇磁碟爆滿解決辦法Linux
- 系統RAM幾乎爆滿與解決方法
- Linux磁碟爆滿無法進入圖形化介面解決方法Linux
- ASM空間爆滿導致資料庫掛起ASM資料庫
- DeFi流動性質押挖礦系統開發及馬蹄鏈質押挖礦詳細開發方案
- 阿里雲伺服器被挖礦怎麼解決阿里伺服器
- DAPP質押挖礦理財系統開發細節詳情/Defi質押挖礦技術開發模型APP模型
- linux inode已滿解決方法Linux
- Linux 磁碟舊RAID 資訊 導致不能格式化和mount 的解決方法LinuxAI
- 遇上DG挖礦病毒的處理記錄