T1543.005: 容器服务
摘要
攻击者可能创建或修改以守护进程、代理或服务形式在单个主机上运行的容器或容器集群管理工具。这些包括用于创建和管理单个容器的软件(如 Docker 和 Podman),以及容器集群节点级代理(如 kubelet)。通过修改这些服务,攻击者可能能够在主机上实现持久化或提升其权限。 例如,通过使用带 `restart=always` 指令的 `docker run` 或 `podman run` 命令,可以将容器配置为在主机上持久性地重启。(Citation: AquaSec TeamTNT 2023) 拥有(rootful)docker 命令访问权限的用户也可能能够在主机上提升其权限。(Citation: GTFOBins Docker) 在 Kubernetes 环境中,DaemonSet 允许攻击者在所有节点上持久性地[部署容器](https://attack.mitre.org/techniques/T1610),包括后来添加到集群的节点。(Citation: Aquasec Kubernetes Attack 2023)(Citation: Kubernetes DaemonSet) 也可以使用 pod 规范中的 `nodeSelector` 或 `nodeName` 字段将 Pod 部署到特定节点。(Citation: Kubernetes Assigning Pods to Nodes)(Citation: AppSecco Kubernetes Namespace Breakout 2020) 注意,容器也可以配置为作为 [Systemd 服务](https://attack.mitre.org/techniques/T1543/002)运行。(Citation: Podman Systemd)(Citation: Docker Systemd)
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Containers
战术
持久化
参考来源
- https://attack.mitre.org/techniques/T1543/005
- https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216
- https://docs.docker.com/config/containers/start-containers-automatically/
- https://gtfobins.github.io/gtfobins/docker/
- https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
- https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
- https://blog.aquasec.com/leveraging-kubernetes-rbac-to-backdoor-clusters
- https://blog.aquasec.com/teamtnt-reemerged-with-new-aggressive-cloud-campaign
- https://www.redhat.com/sysadmin/podman-run-pods-systemd-services