目录
攻击分析
恢复措施:
问题排查
攻击入口分析
预防
临时处理方案:
攻击分析
攻击者:职业黑客(99%)
攻击方式:挖矿病毒newinit.sh和蠕虫病毒pnscan
中毒现象:
-
服务器负载异常,具体表现load值冲高
-
服务器部分命令不可用,如top、ps、pstree、chattr等
-
重点是影响正在运行的业务
-
因为命令被篡改了,所以ps -ef是找不到的
newinit.sh 主要功能是:关闭selinux、杀掉别人的挖矿进程、杀掉CPU占用过高的进程,如果是自己就跳过、修改破坏系统命令、自己造一个下载器downloads()函数、解锁和加锁定时任务、添加挖矿技术任务、设置SSH免密登陆、下载执行矿机挖矿程序、关闭防火墙、清除日志、感染已知的免密机器。
pnscan的主要功能是:扩散病毒,主要只针对内网服务器
恢复措施:
-
第一步:清除木马后门(ssh免登录密钥),修改所有用户账号密码(查看是否有新增用户)
-
第二步:杀死木马进程以及清除木马文件(挖矿病毒newinit.sh和蠕虫病毒pnscan)
-
第三步:逆newinit.sh执行,分析newinit执行的shell,逆向执行
-
第四步:第三步无法根除病毒造成的影响,只要感染了病毒优先考虑更换服务器,速度越快越好
问题排查
Ps top pstree被屏蔽,无法发现病毒
定时任务,保持病毒的活跃性
加锁文件,使得无法删除
留下后台,免密授权
攻击入口分析
Redis访问策略为0.0.0.0时,访问不受限
ssh端口默认为0.0.0.0时,有被爆破的痕迹
预防
-
·SSH更换端口,不使用22,redis不使用6379,其他常用服务效仿
-
·替换掉SSH密码登陆,改用公钥
-
·redis一定要设定密码,redis尽量尽量尽量不暴露在外网
-
·mysql、redis、mq等基础软件,一定要关注安全更新
-
·操作系统要使用支持维护的稳定版。比如Centos7会维护到2024年。
-
·操作系统一定要及时安装安全补丁
-
·生产环境一定要放在完全封闭的内网,仅通过跳板机/堡垒机操作
-
·权限管理尽量细致,避免root滥用的情况
临时处理方案
临时处理方式,如果被植入newinit.sh,一定迁移服务,攻击脚本中修改太多的系统服务配置,人工很难恢复到健康的服务状态,所以能迁移就迁移。并且保证不让这个挖矿进来
# 第一步:首先修改服务器root密码,防止继续攻击
# 第二步:尝试恢复
chmod 774 /usr/bin/chattr
chattr -ia /etc/zzh*
chattr -ia /etc/newinit.sh*
chattr -ia /root/.ssh/authorized_keys*
chattr -R -ia /root/.ssh
rm -rf /etc/zzh*
rm -rf /etc/zzhs
rm -rf /etc/newinit.sh*
rm -rf /etc/init.sh*
mv /usr/bin/wd1 /usr/bin/wget
mv /usr/bin/cd1 /usr/bin/curl
echo 0 > /proc/sys/vm/nr_hugepages
sysctl -w vm.nr_hugepages=0
chattr -i /etc/resolv.conf 2>/dev/null 1>/dev/null
chattr -R -ia /var/spool/cron
chattr -ia /etc/crontab
chattr -R -ia /var/spool/cron/crontabs
chattr -R -ia /etc/cron.d
rm -rf /etc/cron.d/zzh
pkill -f zzh
pkill zzh
pkill .zzh
rm -rf /etc/zzh
chattr -ia /tmp/zzh*
chattr -ia /tmp/newinit.sh*
rm -rf /tmp/zzh*
rm -rf /tmp/newinit.sh*
pkill pnscan
pkill masscan
pkill cd1
pkill wd1
rm -rf /var/tmp/.ice-unix/
rm -rf /tmp/.ice-unix/
rm -rf /usr/local/bin/pnscan
rm -rf /usr/bin/pnscan
rm -rf /usr/local/bin/masscan
rm -rf /usr/bin/masscan
ps -ef | grep 'cleanfda' | awk '{print $2}' |xargs kill -9
ps -ef | grep 'newinit.sh' | awk '{print $2}' |xargs kill -9
ps -ef | grep 'kde' | awk '{print $2}' |xargs kill -9
ps -ef | grep 'kins' | awk '{print $2}' |xargs kill -9
# 查看下
more /bin/ps
# 如果ps命令也被篡改,则修复下:
chattr -ia /bin/ps
rm -rf /bin/ps
mv /bin/ps.original /bin/ps
chattr -ia /bin/top
rm -rf /bin/top
mv /bin/top.original /bin/top
chattr -ia /bin/pstree
rm -rf /bin/pstree
mv /bin/pstree.original /bin/pstree