最近接到客户投诉说我们托管的服务器向国外某个地区发送大量的数据包,而我们的系统中根本没这样的应用,初步估计就是服务器已经被***了,有可能会被挂马。把公司的副总裁请过来看了一下,几分种就搞定了,特别记录一下过程以备后忘。

    首先,因为是往外发包,所以固然会用到端口,那么先用netstat -anp来查看一下端口使用情况。结果拉下来一看就有很多使用22端口的,仔细一看,是连接其他主机的22端口,看来是本机中***了,还在扫描其他主机的登录信息。再netstat -anp | grep sshd看了一下,果然非常的不正常。

    然后,根据lsof查看一下其程序打开的文件情况,这就非常清楚了,正好用的文件会列出了其程序路径,很快就定位到程序所在的位置。这里看到一个程序也命名成sshd,看来明显是混淆视听的。简单看了一下这个程序的文件,明显是一个字典暴力破解的程序,我们服务器原先密码设置太简单了,所以被上了***。正准备删掉进程的时候发现有点棘手,因为用killall命名的话会把真的sshd也杀掉,结果自己就连不上了。所以想了一下,把***程序目录给删掉以后,直接重启服务器。

    我被告知这样还没结束,***还有一个常用的手段就是替换原系统的程序,因为有两台服务器装的是一样的系统,所以使用md5sum /usr/sbin/sshd看了一下,果然已经不是一样的文件了,看来这个sshd已经被串改,很可能还留了后门。把另外一个系统的sshd拷贝过来替换掉,并重启sshd服务,总算问题解决。

    这次又是一个教训,我让运维人员拿到服务器就改密码,结果一直偷懒迟迟不做,结果吃了苦头。服务器在外网肯定会受到持续***,是必须要做好加固的工作。