记录服务器被黑事故

前言:
突然发现自己公司买的本地测试服务居然被黑客入侵拿来挖矿了,这能忍吗?
1:查看服务
image

2:查看定时任务
image

检查开机启动项
cd /etc/init.d/
image

cat /etc/rc.d/rc.local
image

查看启动时间:ps -p 5952 -o lstart
image

查看脚本位置
image
image

crontab -r #删除定时任务
image

提示无法删除,于是我去目录查看了一下这个文件跟之前的病毒脚本一致,居然还有一堆的隐藏脚本,外面的脚本估计是来迷惑我们

查看任务计划:
cat /var/spool/cron/root
image

删除计划任务(如果没有配置其他任务):
rm -rf /var/spool/cron/*
解决办法:

①杀死/bin/dhpcd进程
image

②删除/etc/rc.d/rc.local文件的可疑命令
image

③备份/bin/dhpcd为/bin/dhpcd.bak,然后删除/bin/dhpcd
image

①检查进程(top -c)
②检查定时任务(crontab -l、cat /etc/crontab)
③检查端口的状态(netstat -aulntp)
image
image
image

④检查开机启动项(ll /etc/init.d/、cat /etc/rc.d/rc.local)

经过重装系统后不到2天,又被攻击了,所以重装系统虽然能解决90%的问题,但是有可能治本不治本,毕竟提示自己的防御力才是真正的治本。
image

还是按上面的方法先操作一遍
image

这次居然是瑞士的服务器
image

查看密钥认证文件
删除木马创建的密钥认证文件,如果当前系统之前并未配置过密钥认证,可以直接清空认证存放目录:cat /root/.ssh/authorized_keys
image

rm -rf /root/.ssh/*
如果有配置过密钥认证,需要删除指定的黑客创建的认证文件即可

如果出现无法删除,则执行

chattr -i authorized_keys
image

删除执行的进程
image

查询远程登陆用户
lastb
image

查看ssh远程登陆成功的用户,发现有3个陌生的IP
tail -1000000 /var/log/secure | grep Accepted
image

彻底解决方法:

1.修改ssh端口

[root@zwlbsweb ~]# vim /etc/ssh/sshd_config
---------------配置如下----------------
Port 2298

重启ssh
systemctl restart sshd
查看端口

[root@zwlbsweb ~]# netstat -ntlp | grep 2298
tcp 0 0 0.0.0.0:2298 0.0.0.0:* LISTEN 15156/sshd
tcp6 0 0 :::2298 ::😗 LISTEN 15156/sshd

2.防止ssh暴力破解

同一个IP地址超过10次的尝试,就加入/etc/hosts.deny。

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /sshPrevent/black.txt
DEFINE="10"
for i in `cat  /sshPrevent/black.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

添加计划任务

[root@zwlbsweb ~]# crontab -e
*/5 * * * * /bin/bash /sshPrevent/ssh_pervent.sh

每五分钟检查一次

重启crontab

[root@zwlbsweb ~]# systemctl restart crond

不定时查看效果

ssh防爆力破解脚本Fail2ban

gihub地址:GitHub - FunctionClub/Fail2ban: 最简单的防止SSH暴力破解的脚本

一.安装Fail2ban
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log

  1. 第一步选择是否修改SSH端口。
  2. 第二部输入最多尝试输入SSH连接密码的次数
  3. 第三部输入每个恶意IP的封禁时间(单位:小时)

二.重启ssh
systemctl restart sshd

三.验证
经过几个月的验证,再也没有被黑客入侵过了,虽然每天想登录的非法ip很多,但是全部被拦截在外了

posted @ 2022-06-01 10:21  Harry_666  阅读(75)  评论(0编辑  收藏  举报