linux以及docker挖矿木马应急响应
本文最后更新于:2024年1月7日 晚上
模拟背景:某个服务器被攻击,攻击特征为服务器cpu利用率非常高,服务器很卡,怀疑被挖矿。
linux
- 使用top命令查看主机运行状态
1 | |
发现某个进程cpu占有率很高,pid为xxxx
- 查看进程详细信息
1 | |
- 查看进程在哪个目录
1 | |
- 进入进程目录,查看配置信息
1 | |
如果是挖矿木马基本上可以在配置文件中发现一个网站,其中包含一个挖矿的地址。可以通过微步情报等平台进行查询。
- 查看主机的连接情况
1 | |
可以看到本地主机连接端口和外部ip以及连接状态。定位恶意ip进程。
- 杀死未授权进程
1 | |
- 删除对应文件
1 | |
及时隔离主机,阻断可以通信。防止受害主机对局域网下的其他主机先进性横向渗透。
- 清除计划任务。大部分病毒或后门文件都会写入到计划任务中实现持久运行
1 | |
- 清除启动项。除了计划任务,挖矿木马通过添加启动项同样能实现持久化
1 | |
过滤出所有的开机启动的项目
1 | |
关闭服务
1 | |
- 异常用户分析与排查
- 登录分析 - 筛选异常登录
1 | |
- 历史执行命令排查
- 异常$PATH排查
- Linux后门自动排查
- 排查/tmp文件
安全加固:
1、根据相关日志寻找挖矿病毒是如何进入主机的,将漏洞进行修补。
linux系统日志在/var/log目录下
尽量使用less这种不需要读取全部文件的指令,因为在线上执行cat是一件非常危险的事情,这可能导致线上服务器资源不足。
Apache的访问日志目录在其配置文件中已经定义好了,CentOS中apache的配置文件位置为
/etc/httpd/conf/httpd.conf,默认的访问日志存放在/var/log/httpd/access_log中
2、安装安全软件并升级病毒库,定期全盘扫描,保持实时防护;
3、及时更新 Linux安全补丁,开启防火墙临时关闭端口;
4、及时更新web漏洞补丁,升级web组件。
Docker
当网络流量监控发现某台运行多个docker容器的主机主动连接到一个疑似挖矿矿池的地址时,需要快速响应和排查,以阻止进一步的损害。
- 定位容器
在宿主机上通过netstat -an 是看不到容器内的网络连接的,而一台台进入容器查看网络连接,排查效率很慢。宿主机上的容器都是通过dokcer0进行通信的,因此,可以通过tcpdump找到异常网络连接的容器IP地址,然后进一步关联到容器。
tcpdump抓包定位容器ip地址
1 | |
获取所有容器名称及其ip地址,定位到容器
这里xx.xx.xx.xx是与恶意ip建立网络连接的容器
进入容器network namespace进行确认,找到异常的网络连接地址。
1 | |
进入容器,找到挖矿程序的进程,恶意脚本路径为xmrig.sh
1 | |
我们需要进一步确认的是挖矿程序时在容器运行过程中被植入了,还是镜像文件中已经存在挖矿程序。
使用docker diff命令查看容器内文件状态变化,未找到xmrig.sh。
1 | |
通过docker inspect 快速定位镜像文件系统在宿主机上对应的目录,从镜像中提取恶意文件进行对比,以确认入侵的源头为恶意镜像。
1 | |
镜像分析
追溯镜像的来源,解析Dockerfile文件是关键步骤。
使用docker history 命令查看指定镜像的创建历史,加上 --no-trunc,就可以看到全部信息。
使用dfimage从镜像中提取 Dockerfile,在这里可以清晰地看到恶意镜像构建的过程,找到恶意挖矿程序的样本
问题处理
(1)查找恶意镜像关联的容器
1 | |
删除相关容器或镜像
1 | |