阿里云centos7 服务器XorDDoS木马查杀

一、问题描述

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..错误

然后再次登陆后会经常提示

  Last failed login: Sun July 14 09:34:18 CST 2018 from 59.63.166.105 on ssh:notty
 There were 232failed login attempts since the last successful login.
其中 59.63.166.105 明显不是本地的IP,通过网上查看,该IP位于江西南昌


该IP的主机明显在暴力破解SSH的登陆账号密码。

2、异常现象二:通过ps -aux命令查看进程,存在异常的进程,非人为操作启动的进程,并且进行ID都是靠后

root      4257  0.0  0.0      0     0 ?        R    19:32   0:00 [kworker/0:2]
root      9378  0.0  0.0   1452   840 ?        Ss   19:35   0:00 grep "A"
root      9383  0.0  0.0   1452   836 ?        Ss   19:35   0:00 sleep 1
root      9386  0.0  0.0   1452   840 ?        Ss   19:35   0:00 ifconfig eth0
root      9387  0.0  0.0   1452   836 ?        Ss   19:35   0:00 ls
root 9389 0.0 0.0 1452 836 ? Ss 19:35 0:00 netstat -antop
root      9390  0.0  0.0 155284  1840 pts/0    R+   19:35   0:00 ps -aux

3、异常现象三:通过netstat -tnp 查看网络连接,然后网上搜索建立连接的IP,存在可疑的IP连接请求(SYN-SENT)和连接(ESTABLISHED)

104.166.89.67:8080----美国

91.195.240.82:8080----德国

三、SSH暴力破解问题处理

通过安装Fail2ban防御暴力破解密码(配合FirewallD):


安装和配置后,通过fail2ban-client status sshd命令查看,可以看到江西南昌市的IP地址59.63.166.105已经被禁止建立SSH连接请求。


三、可疑木马查杀

用到的常用工具和命令有:netstat -tnpa 、pstree 、top 、ps -aux   、rkhunter(检查确认系统命令工具是否被替换的工具,需要在线安装)

 1.确认木马并通过防火墙关闭其对外访问的IP地址(104.166.89.6791.195.240.82)

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -d 104.166.89.67 -p tcp -j  DROP
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -d 91.195.240.82 -p tcp -j  DROP
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -d 104.166.89.67 -p tcp -j  DROP
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 2 -d 91.195.240.82 -p tcp -j  DROP
重新加载配置生效: firewall-cmd --reload
此时通过netstat -tnpa 命令查看,上述的2个IP只会对外请求建立连接( SYN-SENT),但是因防火墙设置原因会无法建立( ESTABLISHED),断绝了 木马与外部的联系, 多次kill掉,虽然会重建,但无法对外进行访问,不过进程名会变化,进程名为随机的字母组合
2、停止定时任务

对于所有的木马或病毒,必定会创建定时任务,以便定时重建进程,或者在被杀掉后重建。

2.1检查系统级别的定时任务配置
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

3.2.查找木马进程文件

1)查看进程树确认木马进程名

使用top命令查看的结果,以CPU倒序的方式查看,可以看到占用 CPU 最多的进程,类似这样的 “twdqlpkekz” (随机名称进程),


用kill -9杀死进程后,会出现类似的十位随机名称进程,可以看出有多个守护进程,显然没用

使用pstree也可以看到类似的十位随机名称的进程,还有子进程数量


2)查找木马进程文件的所在位置

which [木马进程名]

尽然发现不了,找不到


然后通过xftp工具在相关目录下按时间排序,发现在tmp和/usr/bin等目录下发现可疑文件数个,时间和前面手动kill进程,然后自动又运行的时间基本差不多,并且文件大小也一样。


3.3.尝试解析木马进程文件内容

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脚本的内容,


3.4.木马程序文件的处理:

删除会重建,可以照上面的修改权限,使之无法运行,此时千万不要先删掉

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

至此,上面定时任务涉及到的就都找出来,但是作为一个合格的木马,必定会设置开机启动项,这样不管你怎样清理掉我运行中的木马,一旦重启系统,木马就又回来了,下一步就是删除开机启动相关项

4.删除开机自启动的木马程序和软链接 

4.1.检查最基本的开机启动项配置文件
cat /etc/rc.local
4.2.检查chkconfig方法配置的自启动的服务

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链接也全部正常。



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值