Centos7 查杀挖矿程序(systemd-private)
最近发现公司服务器莫名访问外国网站增多,所以查了目的地址,发现是挖矿地址,主要有以下几个特性。
1.中毒机器会暴力破解其它主机,并启用tracepath进行。
2.中毒主机会利用其它主机的安全漏洞进行传播,如hadoop、reids、mysql等。
3.中毒机器杀完会复发。
4.病毒会设置定时任务。
针对以上特性制作脚本,脚本需要以下特性。
1.必须持续查杀,杀掉病毒源文件、删掉定时任务。
2.发现被暴力破解的主机要,查找源头,直至没用暴力破解事件出现。
3.进行SSH加固。
#!/bin/bash
echo "检查病毒进程是否存在"
#ps -aux | awk '$11~/^([a-z]|[0-9]|[A-Z]){8}$/{print $11}'
#杀完把定时任务添加上一分钟执行一次。
#*/1 * * * * /home/shadu.sh
ps -ef | grep tracepath | grep -v grep | awk '{print $2}'| sed -e "s/^/kill -9 /g" | sh
echo "杀掉tracepath进程"
ps -ef | grep 4fsSLkA | grep -v grep | awk '{print $2}'| sed -e "s/^/kill -9 /g" | sh
echo "杀掉4fsSLkA进程"
#病毒进程需要根据病毒的特性制作,我发现的这个是病毒会自动生成8个字母数字名字的进程。
ps -aux | awk '$11~/^([a-z]|[0-9]|[A-Z]){8}$/{print $2}'| awk 'NR==1' | xargs -I % kill -9 %
echo "杀掉病毒进程"
sed -i '/systemd-private/d' /var/spool/cron/root
echo "杀掉病毒定时任务"
#根据实际情况进行删除
rm -rf /tmp/.X11-unix/*
echo '已删除/tmp/.X11-unix/下所有文件'
rm -rf /root/.systemd-private*
echo '已删除病毒文件'
echo '开始SSH安全加固'
cat /var/log/secure |tail -n 200 |awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'|grep -v 'session' >> /usr/local/bin/Denyhosts.txt
#筛选出状态为Invalid user的ip和次数
cat /var/log/secure |tail -n 200|awk '/Invalid user/{print $(NF-2)}'|sort|uniq -c|awk '{print $2"="$1;}' >> /usr/local/bin/Denyhosts.txt
DEFINE="10" #规定允许次数为10次
for i in `cat /usr/local/bin/Denyhosts.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ]; then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ]; then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done
echo 'SSH安全加固完毕'

浙公网安备 33010602011771号