[linux]遇到了一次服务器被黑

这因疫情还在家里放假呢,结果服务器被黑了,登不上去了。ping的通但ssh无响应。无奈让老师重启了一下,重启完我就ssh登录进去了。刚开始好好的,结果越来越卡,虽然这个ssh没断,但再ssh就已经连不进去了。
这时候我ps -ef|grep ssh打印了下进程,发现有这么一种进程存在:

sh -c if [ `id -u 2>/dev/null` -eq '0' ]; then ps aux 2>/dev/null | grep -v grep 2>/dev/null | grep -v -- 'sshd[[:space:]]*$' 2>/dev/null | grep -v /usr/sbin/httpd 2>/dev/null | awk '{if($3>30.0) print $2}' 2>/dev/null | while read procid; do kill -9 $procid 2>/dev/null; done else ps -u `whoami 2>/dev/null` ux | grep -v grep 2>/dev/null | grep -v -- 'sshd[[:space:]]*$' 2>/dev/null | grep -v /usr/sbin/httpd 2>/dev/null | awk '{if($3>30.0) print $2}' 2>/dev/null | while read procid; do kill -9 $procid 2>/dev/null; done fi

咱也看不大明白,不过大体意思可能就是kill掉远程连接过来的ssh了。
我把它kill掉之后,又蹦出三四条这种进程,怕了怕了,就从开机启动项和进程号里找相关脚本/文件,然后删除掉。

  1. 找到异常进程,用ll /proc/进程号查看异常进程的启动文件在哪里。
    找到一个/var/下边的,删除完,继续。
  2. 查看开机启动项。
    参照:https://blog.csdn.net/qq_42671480/article/details/90371042
    1./etc/rc.local
    /etc/rc.local是/etc/rc.d/rc.local的软连接,该脚本是在系统初始化级别脚本运行之后再执行的,想要/etc/rc.local起作用必须chmod +x /etc/rc.d/rc.local
    2 . /etc/profile.d/.sh
    /etc/profile.d/
    .sh是bash的全局配置文件,/etc/profile.d/下有许多shell脚本,可以在开机时启动。
    3 . /etc/rc.d/rcX.d
    rcX.d 目录名,后面的X代表着每个运行级别。
    运行级别
    目录内有每个服务在init.d内启动脚本的链接文件,根据链接文件的名字来判断启动状态
    K开头表示不启动服务,S打头表示启动服务。
    4 . /etc/init.d下的脚本
    init.d 目录名,目录内放的是各个服务的启动脚本,比如sshd、httpd等
  3. 还真让我找到了,但是root权限删除不掉。。。找办法。
    lsattr可以查看文件的属性,删除不掉的话可以用chattr -i 文件名把权限修复,然后就可以删除掉了。
  4. 按照上述步骤删干净之后重启了下,结果还有问题,ssh连不上也ping不同,gg。自信重启的时候,最好还是看看网络连接是不是也被修改了,否则ssh连不上就很难过了。
  5. 未完待续
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章