系统环境:CentOS Linux release 7.6.1810 (AltArch)
CPU架构:ARM
最近发现生产服务器CPU占用过高但是查看进程却没有任何过高的进程,最高也才是1点多,而且系统经常收到root用户发送的邮件
所以有理由是怀疑中了挖矿病毒,查看网络连接信息(命令:netstat -napt)后发现一条疑似矿池的连接记录
然后去查找这个IP地址发现是M国的一个地址,去到某服安全中心查看这个IP果然是矿池地址无疑
某安的威胁中心查出来的结果也是一样的,
显示结果跟网络连接中的信息是一样的,这下确定无疑了
首先根据root用户发送给系统的邮件内容的路径去查看文件,
cat /etc/ld.so.preload
发现内容是/usr/local/lib/libprocesshider.so,是linux系统的一个链接库,在这个文件里面写下的地址系统在运行程序时会自动去这些个目录里面找需要的动态库文件,先删除试一下
rm /etc/ld.so.preload
发现无法删除,查找资料后得知Linux系统还有一个叫文件锁定保护的命令,具体参数如下:
chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文 件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过 mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
锁定文件:chattr +i 文件名
解除锁定:chattr -i 文件名
属性查看:lsattr 文件名
如果在执行lsattr或是chattr命令时提示不存在,安装一下即可
yum install -y e2fsprogs
先查看下/etc/ld.so.preload的锁定权限
lsattr /etc/ld.so.preload
使用chattr命令解除锁定然后删除
chattr -i /etc/ld.so.preload
rm -rf /etc/ld.so.preload
然后再对/usr/local/lib/libprocesshider.so进行操作,直接一步到位,解除锁定,然后删除
chattr -i /usr/local/lib/libprocesshider.so
rm -rf /usr/local/lib/libprocesshider.so
执行成功,继续下一步,查看定时任务,并清理,查询cron.d、cron.hourly、crontab目录或文件的异常
lockr -i /etc/cron.d/phps
rm -rf /etc/cron.d/phps
lockr -i /sbin/httpss
rm -rf /sbin/httpss
查看/etc/crontab文件内容,/etc/crontab是linux系统定时任务配置文件所在,用vim编辑器删除最后3行,最后3行就是病毒链接所在,还是一样,不管有没有,先解除锁定,再修改
chattr -i /etc/crontab
vim /etc/crontab
查看定时任务并修改
crontab -l
crontab -e
回显提示crontab: error renaming /var/spool/cron/#tmp.localhost.localdomain.XXXXPL0tU3 to /var/spool/cron/root
rename: 不允许的操作
crontab: edits left in /tmp/crontab.IFed5j,说明/var/spool/cron/root,/tmp/crontab.IFed5j这两个目录文件都有问题,跟定时任务是相关联的,先清除这几个文件,防止上锁,先解锁,再删除
chattr -ia /var/spool/cron/root
rm -rf /var/spool/cron/root
chattr -ia /tmp/crontab.IFed5j
rm -rf /tmp/crontab.IFed5j
进入到/tmp目录下查看是否还有其他的缓存文件,如果有,一并删除(crontab -e所产生)
# 服务清理及自启动清理,查看/etc/rc.d/init.d/目录,/etc/rc.d/rc.local文件,/lib/systemd/system文件
cd /etc/rc.d/init.d/ #无异常
cat /etc/rc.d/rc.local #无异常
cd /lib/systemd/system #发现异常服务文件
vim pwnriglhttps.service
systemctl stop pwnriglhttps.service
systemctl disable pwnriglhttps.service
删除服务
rm -rf pwnriglhttps.service
查看系统hosts解析文件有无异常,如有异常用vim编辑器修改
cat /etc/hosts
vim /etc/hosts
清理各目录下的病毒文件
rm -rf /usr/bin/.sh
rm -rf /bin/.sh
lockr -i /bin/.funzip
rm -rf /bin/.funzip
查看/etc/profile文件
cat /etc/profile
回显显示最后4行文件有问题,用vim删除
vim /etc/profile
发现目录/etc/profile.d/下出现异常文件:php.sh、supervisor.sh
查看内容
cd /etc/profile.d/
cat php.sh
cat supervisor.sh
查看supervisor.sh显示/etc/.supervisor/supervisord.conf
删除删除php.sh,supervisor.sh,/etc/.supervisor/supervisord.conf
lockr -i php.sh supervisor.sh
rm -rf php.sh supervisor.sh
lockr -i /etc/.supervisor/supervisord.conf
rm -rf /etc/.supervisor/supervisord.conf
最后删除/etc/.sh /usr/bin/.sh
chattr -ia /etc/.sh /usr/bin/.sh
rm -rf /etc/.sh /usr/bin/.sh
最后清除邮件并重启
echo "d *" |mail -N
reboot
开机后查看网络连接信息发现刚开始的那条IP已经没有了,说明残留的病毒文件已经清理完成
为了再次防止这个矿池来搞事情,最好在出口区域的安全设备的对该地址及域名相关进行封禁
————————————————
原文链接:https://blog.csdn.net/weixin_45225923/article/details/120122800