Docker 远程服务入侵挖矿病毒
登陆服务器的时候,突然发现 cpu 利用率爆表。
查看后台进程信息
查看一下进程:
top -c
发现 /tmp/kdevtmpfsi 占据了 170% 的 CPU 资源。
百度一下之后,发现它是一个挖矿病毒。以及它还有一个叫 kinsing 的守护进程:
## 查询病毒的PID及其文件路径 ps -ef | grep kinsing ## 查询病毒的PID及其文件路径 ps -ef | grep kdevtmpfsi
隐藏进程侦查
使用 unhide 扫描
安装:
yum -y install unhide
暴力扫描隐藏进程:
unhide checkbrute
查看文件权限
使用 lsattr 查看文件权限:
lsattr xmrigMiner
修改文件权限
使用 chattr 更改文件权限:
chattr xmrigMiner
删除文件:
rm -rf xmrigMiner
chattr 权限 格式: charrt [+ - =] [ 选项 ] 文件或目录名+ 增加权限 - 删除权限 = 赋予权限i : 对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加修改数据;对目录设置 i 属性,那么只能修改目录下文件的数据,但不能创建和删除文件
a :对文件设置 a 属性,那么只能在文件中增加数据,但不能删除与修改数据;对目录设置 a 属性,那么只允许在目录中创建与修改文件,不允许删除文件
e :Linux 中绝大多数文件默认拥有 e 属性,表示该文件使用 ext 文件系统进行存储,而且不能使用 chattr -e 取消 e 属性
登陆排查
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
登录失败的次数
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
ssh 私钥排查
进入 ssh 私钥存放路径
cd /root/.ssh
列出文件
ls
修改文件权限
chattr -ia authorized_keys
删除文件
rm -rf authorized_keys
定时任务排查
查看定时任务
crontab -l
删除定时任务
crontab -r
GScan
GScan 旨在为安全应急响应人员对 Linux 系统排查时提供便利,实现主机侧 Checklist(检查表) 的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。
项目地址:https://github.com/grayddq/GScan
1、主机信息获取
2、系统初始化alias检查
3、文件类安全扫描
3.1、系统重要文件完整行扫描
3.2、系统可执行文件安全扫描
3.3、临时目录文件安全扫描
3.4、用户目录文件扫描
3.5、可疑隐藏文件扫描
4、各用户历史操作类
4.1、境外ip操作类
4.2、反弹shell类
5、进程类安全检测
5.1、CUP和内存使用异常进程排查
5.2、隐藏进程安全扫描
5.3、反弹shell类进程扫描
5.4、恶意进程信息安全扫描
5.5、进程对应可执行文件安全扫描
6、网络类安全检测
6.1、境外IP链接扫描
6.2、恶意特征链接扫描
6.3、网卡混杂模式检测
7、后门类检测
7.1、LD_PRELOAD后门检测
7.2、LD_AOUT_PRELOAD后门检测
7.3、LD_ELF_PRELOAD后门检测
7.4、LD_LIBRARY_PATH后门检测
7.5、ld.so.preload后门检测
7.6、PROMPT_COMMAND后门检测
7.7、Cron后门检测
7.8、Alias后门
7.9、SSH 后门检测
7.10、SSH wrapper 后门检测
7.11、inetd.conf 后门检测
7.12、xinetd.conf 后门检测
7.13、setUID 后门检测
7.14、8种系统启动项后门检测
8、账户类安全排查
8.1、root权限账户检测
8.2、空口令账户检测
8.3、sudoers文件用户权限检测
8.4、查看各账户下登录公钥
8.5、账户密码文件权限检测
9、日志类安全分析
9.1、secure登陆日志
9.2、wtmp登陆日志
9.3、utmp登陆日志
9.4、lastlog登陆日志
10、安全配置类分析
10.1、DNS配置检测
10.2、Iptables防火墙配置检测
10.3、hosts配置检测
11、Rootkit分析
11.1、检查已知rootkit文件类特征
11.2、检查已知rootkit LKM类特征
11.3、检查已知恶意软件类特征检测
12、WebShell类文件扫描
12.1、WebShell类文件扫描
GScan 使用
使用 git 命令拉取到服务器进行使用
git clone https://github.com/grayddq/GScan.gitu
运行命令
python GScan.py
检查防火墙
防火墙开启
systemctl start firewalld
防火墙关闭
systemctl stop firewalld
防火墙状态
systemctl status firewalld
Docker 容器
病毒是存在在 Docker 容器中。
## 查看容器状态 Docker stats ## 进入到容器中 docker exec -it 68825e3ec789 /bin/bash ## 查看容器的进程 top -c ## 杀死进程 kill -9 13786 ## 检查定时任务 crontab -l ## 删除定时任务 crontab -r ## 丢弃来自病毒下载IP的所有数据 iptables -I INPUT -s <病毒下载的IP> -j DROP ## 丢弃来自定时任务中IP的所有数据 iptables -I INPUT -s <定时任务中的IP> -j DROP
删除 Docker 中的病毒镜像
## 查找 docker 容器 docker ps -a ## 暂停容器 docker stop c5607dd23d6bc5607dd23d6b ## 删除容器 docker rm c5607dd23d6bc5607dd23d6b ## 查找 docker 镜像 docker images ## 删除 ubuntu 镜像 docker rmi 4e5021d210f6 ## 检验是否删除 docker images ## 重启 Docker systemctl restart docker.servicew