Docker 应急响应/基线检查


0x01 Docker 应急说明

在做应急响应时,主机上发现异常进程或文件,但定位不到具体路径,若主机上存在 Docker 应用,则问题大概率出在 Docker 环境中,需要对 Docker 运行应用环境进行应急排查。

0x02 Docker 挖矿靶场

Docker 挖矿应急靶场 pmietlicki/xmrig 下载。

docker run -itd --restart=always -e POOL_URL=pool.supportxmr.com:5555 -e POOL_USER=45rfqYG9iNPddvenLpjFskJUhFgqBkdhDeah3X8D8ZJM3KpKqZWCLz3ewLsVd269tZiEyQRV53Ldv2DJb6xeuFokF7SBb1p --name xmrig pmietlicki/xmrig

注意:在虚拟机环境中运行挖矿靶场练习。

0x03 Docker 常用命令

查看所有容器镜像信息。

docker ps -a

进入指定镜像。

docker exec -it <docker-ID> /bin/bash

暂停指定镜像。

docker pause <docker-ID>

删除容器和镜像。

docker rm -f <docker-ID>
docker rmi <image-name>

查看容器内部文件状态变化。

docker diff <docker-ID>

查看容器目录。

docker inspect <docker-ID>

查看日志。

docker log <image-name>

查看容器运行状态。

docker stats <docker-ID>

断开容器网络。

docker network disconnect bridge <docker-ID>

打包容器为镜像,保留入侵痕迹。

docker commit <docker-ID> <image-name>:<tag>  # 把容器打包成镜像
docker save -o <target-name>.tar <image-name>:<tag>  # 打包镜像
docker load --input <target-name>.tar  # 新服务器载入镜像

本机和容器文件互传,用于上传查杀工具和下载木马样本。

# 上传
docker cp /path/filname <docker-ID>:/tmp/filename
# 下载
docker cp <docker-ID>:/tmp/filename /path/filname

查看指定镜像的历史,加上 --no-trunc 参数,可以看到全部信息。

docker history <image-name> | grep xmrig

查看镜像的配置信息。

docker inspect --format='{{json .Config}}' <image-name>

查看镜像的存储路径,定位镜像文件系统在宿主机上对应的目录,从镜像中提取恶意文件进行对比,以确认入侵的源头为恶意镜像。

docker inspect --format='{{.GraphDriver.Data.LowerDir}}' <image-name>

使用 dfimage 从镜像中提取 Dockerfile,可以看到恶意镜像构建的过程。

alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"  
dfimage -sV=1.36 <image-name>

抓取 docker0 异常外联 IP 的数据包。

tcpdump -i docker0 dst host <targetIP> -v

根据获取到的 Docker 容器 IP 定位容器 ID。

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress}}' $(docker ps -aq) | grep <docker-ip>

进入容器 network namespace 进行确认,找到异常的网络连接地址。

# 获取容器 PID 
docker inspect -f '{{.State.Pid}}' <containerId>
# 进入容器的 network namespace
nsenter  -n -t pid 
# 验证是否进入容器的 network namespace
netstat -an|grep <targetIP>

0x04 Docker 基线检查

Trivy 是一款全面且多功能的安扫描器。它配备多种检测模块,能够针对不同对象识别安全隐患。Trivy 兼容主流编程语言、操作系统及平台环境。

扫描对象支持:

  • 容器镜像
  • 文件系统
  • 远程 Git 仓库
  • 虚拟机镜像
  • Kubernetes 集群

检测能力涵盖:

  • 操作系统组件及软件依赖清单(SBOM)
  • 已知漏洞(CVE)
  • 基础设施即代码配置缺陷
  • 敏感信息与密钥泄露
  • 软件许可证审查

查看运行中的镜像名称。

docker ps -a 

使用 Trivy 对指定镜像做基线检查,可以识别镜像中存在的漏洞,辅助判断应急响应的入侵点。

trivy image <image-name>

参考文章


文章作者: LuckySec
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuckySec !
评论
 上一篇
APP测试 - MyAndroidTools 安卓管理工具 APP测试 - MyAndroidTools 安卓管理工具
一款功能强大的 Android 应用程序管理和分析工具,主要用于控制和管理 Android 设备上的应用组件和服务。
2024-09-23
下一篇 
Weblogic 未授权远程代码执行漏洞(CVE-2023-21839) Weblogic 未授权远程代码执行漏洞(CVE-2023-21839)
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。该漏洞允许未经身份验证的远程攻击者通过T3/IIOP协议网络访问并破坏易受攻击的WebLogic服务器,成功利用此漏洞可能导致Oracle WebLogic服务器被接管或敏感信息泄露。
2024-01-29
  目录