一、问题描述
2018年6月份,阿里云搞活动大促销,本人花了298元购买了一台阿里云centos 服务器(3年),期间部署了反向代理软件frpc,用来打通内网WEB服务等场景的应用,期间没做什么特别的防护设置,6月下旬以来,邮箱一直提示:
通过阿里云管理控制台查看,服务器被IP107.179.35.251(美国加利福尼亚州)SSH暴力破解了,并且存在异常的远程登录记录。
二、异常现象初定位
通过Xshells ssh远程到云服务器后,有以下异常现象:
1、异常现象一:Xshells ssh登陆后,会经常隔几分钟就断开,需要重新连接,报错:
Xshell Socket error Event: 32 Error: 10053..错误
然后再次登陆后会经常提示
该IP的主机明显在暴力破解SSH的登陆账号密码。
2、异常现象二:通过ps -aux命令查看进程,存在异常的进程,非人为操作启动的进程,并且进行ID都是靠后
3、异常现象三:通过netstat -tnp 查看网络连接,然后网上搜索建立连接的IP,存在可疑的IP连接请求(SYN-SENT)和连接(ESTABLISHED)
104.166.89.67:8080----美国
91.195.240.82:8080----德国
三、SSH暴力破解问题处理
三、可疑木马查杀
用到的常用工具和命令有:netstat -tnpa 、pstree 、top 、ps -aux 、rkhunter(检查确认系统命令工具是否被替换的工具,需要在线安装)
对于所有的木马或病毒,必定会创建定时任务,以便定时重建进程,或者在被杀掉后重建。
vi /etc/crontab
发现配置中被增加了一项异常的定时任务,先“#”号注释掉,但过会又会重新创建,改了后先不要管
2.2检查用户级别的定时任务配置文件
ll /var/spool/cron/
该目录用于保存以用户名作为文件的定时任务,没有文件表示没有用户级别的定时任务
2.3.查看木马创建的定时任务的内容
vi /etc/cron.hourly/gcc.sh
初步判断libudev.so 和libudev.so.6为可疑文件
2.4.处理相关木马文件
尝试失败的处理方法:
手动清理木马文件,清除定时任务配置,不久就会重新产生
可以成功的处理方法:
对于木马文件,删除会重建,可以修改权限,使之无法运行,但此刻千万不要删掉(因此删除后,木马又会自动生成该文件)
chmod 600 /lib/libudev.so
chmod 600 /lib/libudev.so.6
或者用xftp工具修改上述文件的属性,修改为禁止可执行。
对于定时任务,删除或者注释都会被删掉重写,可以设置权限,使crontab文件无法写入
chattr +i /etc/crontab
处理完以上的文件,定时任务就无法运行了,接下来需要处理木马的相关进程
3.查杀木马
3.1.检查确认系统命令工具是否被替换
下载并安装 rkhunter,扫描 Rootkit 替换的系统程序
wget https://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz
tar xzvf rkhunter*
cd rkhunter*
./installer.sh --layout /usr --install
rkhunter --update
rkhunter -C
暂时没有命令被替换,如果有,需要重装被修改的命令工具,如:
看网络上有其他人的以下命令被替换了
ps, lsof, ss, netstat ps 属于 procps ss 属于 iproute netstat 属于 net-tools
yum -y reinstall procps lsof iproute net-tools
1)查看进程树确认木马进程名
使用top命令查看的结果,以CPU倒序的方式查看,可以看到占用 CPU 最多的进程,类似这样的 “twdqlpkekz” (随机名称进程),
用kill -9杀死进程后,会出现类似的十位随机名称进程,可以看出有多个守护进程,显然没用
使用pstree也可以看到类似的十位随机名称的进程,还有子进程数量
2)查找木马进程文件的所在位置
which [木马进程名]
尽然发现不了,找不到
然后通过xftp工具在相关目录下按时间排序,发现在tmp和/usr/bin等目录下发现可疑文件数个,时间和前面手动kill进程,然后自动又运行的时间基本差不多,并且文件大小也一样。
1)确定木马文件所在位置,备份下该木马文件
mkdir -p /tmp/virus
cp /usr/bin/vdlumzcrrg /tmp/virus/usr-bin-vdlumzcrrg
cp /usr/bin/ehrplmetjc /tmp/virus/usr-bin-ehrplmetjc
cp /usr/bin/ikfipxwzni /tmp/virus/usr-bin-ikfipxwzni
cp /usr/bin/tsnahmodkp /tmp/virus/usr-bin-tsnahmodkp
cp /usr/bin/myxgqkipqg /tmp/virus/usr-bin-myxgqkipqg
cp /usr/bin/arqnvyzzgh /tmp/virus/usr-bin-arqnvyzzgh
cp /tmp/twdqlpkekz /tmp/virus/usr-bin-twdqlpkekz
2)直接打开该文件会显示乱码,可以通过 strings 命令把二进制的木马文件转化成可识别的字符
cd /tmp/virus
strings usr-bin-twdqlpkekz>usr-bin-twdqlpkekz.txt和其它类似文件
3)查找转化后的文件内容可以看到:
sed -i '/\/etc\/cron.hourly\/gcc.sh/d' /etc/crontab && echo '*/3 * * * * root /etc/cron.hourly/gcc.sh' >> /etc/crontab
这一行是修改定时任务的命令,也就是前面注释掉定时任务又会重新生成的原因,不管有没有,强制重建
#!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done cp /lib/libudev.so /lib/libudev.so.6 /lib/libudev.so.6
这个是上面定时任务执行的gcc.sh脚本的内容,
删除会重建,可以照上面的修改权限,使之无法运行,此时千万不要先删掉
chmod 600 /usr/bin/vdlumzcrrg
chmod 600 /usr/bin/ehrplmetjc
chmod 600 /usr/bin/ikfipxwzni
chmod 600 /usr/bin/tsnahmodkp
chmod 600 /usr/bin/myxgqkipqg
chmod 600 /usr/bin/arqnvyzzgh
chmod 600 /tmp/twdqlpkekz
至此,上面定时任务涉及到的就都找出来,但是作为一个合格的木马,必定会设置开机启动项,这样不管你怎样清理掉我运行中的木马,一旦重启系统,木马就又回来了,下一步就是删除开机启动相关项
cat /etc/rc.local
1)查看该文件内容
可以看出,无论怎样操作这个程序,都是启动它,并且在12345模式下都会开机自启动
2)接下来找这个启动的源文件,找十位随机名称的进程文件
ls /etc/rc*/init.d ls /etc/rc*/
3)通过xftp工具进入系统启动相关目录删除全部可疑文件
/etc/rc.d/init.d
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
。。。。。。
4)然后通过ls /etc/rc*/查看系统启动全部目前的相关文件,发现rc1.d下尽然还有木马文件,但是用xftp工具查看没有,判断是做为系统隐藏文件形式存在rc1.d的目录下,可疑通过命令行的强制删除木马文件。
5.手动kill全部木马进程
通过ps -aux查看可疑的伪装成系统命令,进程ID全部靠后数字非常大的进程
如:kill -9 10297
。。。。。。
删除后,发现没有新的木马进程启动了
6.手动清除全部木马原始文件
rm -f /usr/bin/vdlumzcrrg
rm -f /usr/bin/ehrplmetjc
rm -f /usr/bin/ikfipxwzni
rm -f /usr/bin/tsnahmodkp
rm -f /usr/bin/myxgqkipqg
rm -f /usr/bin/arqnvyzzgh
rm -f /tmp/twdqlpkekz
rm -f /lib/libudev.so
rm -f /etc/cron.hourly/gcc.sh
检查/etc/crontab文件,屏蔽
最后再次检查
rm -f /etc/rc*.d/K90* ls /etc/rc*/
使用以下命令可以恢复被删除的K90network文件
chkconfig network on
查看修复后的自启动配置目录
ls /etc/rc*/
至此,木马已经彻底删除,然后重启Linux 后检查进程和目录,无任何可能进程和新的文件生成,网络TCP链接也全部正常。