vulnhub吧唧——VULNERABLE DOCKER: 1 Easy

下载记录:https://download.vulnhub.com/vulnerabledocker/vulnerable_docker_containement.ova

1.配置环境

kali:NAT

吧唧:NAT

centos:NAT

2.主机发现

良心吧唧,开启了根据nmap的扫描结果我们可以得知他开启了22ssh服务,2375docker服务,8000http服务。其中2375端口很有说法的,默认情况下docker只允许本地的进程与docker守护进程访问,这里docker提供了一个远程api,允许用户通过网络连接到docker守护进程,并执行docker命令(漏洞参考:https://www.secpulse.com/archives/55928.html)

3.访问服务

访问他的http服务通过插件可以看到他的web框架是wordpress

针对wordpress框架,我们使用wpscan工具进行扫描基础信息,得到了一些有用的东西:服务器使用apache2.4.10,网站使用php5.6版本,发现了robots.txt文件,XML-RPC启用,发现了WordPress 的 readme 文件,外部WP-Cron启用,识别出wordpress版本为4.8.22,发现了正在使用的wordpress主题twentyseventeen,并没有发现任何已经安装的查看,没有发现任何的配置备份

通过访问robots.txt文件,禁止爬取wp-admin文件,众所周知,每个weber都是一身的反骨

访问wp-admin可以看到是一个登录界面

4.Docker

这里我开始我没有再使用kali进行攻击了,而是用centos7的dokcer -H连接到远程主机的守护进程,从而可以在远程主机上管理docker容器和镜像。这里我们连接到吧唧的2375端口请求查看docker版本(2375是docker守护进程的默认端口)

使用docker连接到远程主机,请求查看所有镜像,可以看到有两个镜像一个是mysql一个是wordpress。请求查看所有正在运行的容器,可以看到它运行的容器中有mysql和wordpress

使用docker连接到远程主机,请求在centos_wordpress_1容器中新开一个/bin/bash shell,成功进入容器后,查看当前工作目录(/var/www/html)下的所有文件,查看wp-config.php的值,我们可以得到数据库(mysql)的一些信息:数据库名为wordpress,数据库登录名为wordpress,数据库密码为WordPressISBest

使用docker连接到远程主机,请求在content_db_1容器中新开一个/bin/bash shell,成功进入容器后,使用mysql -u用户名 -p密码成功登录mysql

我们选择wp_config.php中的数据库为当前数据库,查看wp_users表可以看到我们用户名为bob,他的密码被加密过了,我们不想麻烦john帮我们解密,直接简单粗暴的使用update命令修改bob的密码(因为原来的密码是加密过后的,使用的时候肯定也有一个解密的过程,所以我们也要符合他的逻辑,我们修改密码也是修改成加密后的密码,这里我们猜测他是md5加密,因为整张表只有bob一条记录,严谨一点来写就还得加个where user_login=bob),因为这是在吧唧docker服务的数据库容器中,所以直接修改的原始数据是有用的

成功登录wordpress的后台,我们可以看到第一个flag

flag{2aa11783d05b6a329ffc4d2a1ce037f46162253e55d53764a6a7e998}

这个思路真的很新奇!使用docker连接到远程主机,请求创建一个基于wordpress镜像的容器,-it /bin/bash启动交互式shell,--rm参数表示在容器停止后马上删掉容器(一次性,节省空间),最重要的是-v,将容器的/tmp目录挂载到宿主机(也就是吧唧)的/目录下,这非常的重要,挂载是为了实现数据的持久化,挂载是双向连接。进入容器后我们切换到tmp目录,可以看到有个flag_3,因为是双向连接,我们进入容器是root,自然可以访问容器的所有东西,包括宿主机根目录挂载的/tmp目录,成功拿到我们的flag

flag{d867a73c70770e73b65e6949dd074285dfdee80a8db333a7528390f6}

总结:因为这个吧唧我学了一段时间的docker(墙裂推荐B站狂神老师讲的docker!!讲的超级无敌霹雳爆炸好!!)。进入这个吧唧,使用nmap扫描端口得知他开放了2375端口,他是docker守护进程的默认端口。访问8000http服务的时候通过插件得知web框架为wordpress,我们使用wpscan尝试扫描吧唧网站的漏洞,扫出来了robots.txt文件,找到了登录界面。使用centos系统的docker -H连接远程主机,请求开启正在运行的wordpress容器的新shell,通过一番信息搜集得到了数据库的账号密码,这时连接到远程主机,请求开启正在运行的mysql容器的新shell,利用已知的账号密码登录了mysql,更改了用户的密码,登录网站获取到了flag1,又因为docker run的-v参数是双向挂载,我们使用docker -H连接到远程主机,请求创建一个新的容器并将宿主机的根目录挂载到容器的/tmp目录下,这样就可以访问到了宿主机也就是吧唧的根目录,成功拿到我们的flag3。主要就是通过2375端口连接到了docker容器的守护进程,也就是Docker remote Api的分析和利用

新手上路,请多指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值