docker-逃逸提权 – 作者:jasongsasd

靶机网站页面

1603883937_5f9953a104c217cb2848f.png!small

信息收集一下nmap先扫一下看看也可以同时进行其他扫描器扫描(目录爆破等)

1603883991_5f9953d7c37d14807c1c2.png!small

可以看到目前就开放了三个端口,其中ftp端口允许匿名登陆账户Anonymous 密码空

我们尝试下

1603884008_5f9953e82dff15ac58f6a.png!small

成功进入但是发现好像没什么东西没什么可以利用的

1603884016_5f9953f07a90a37864a7e.png!small

唯一奇怪的可能有用的是发现下面那串字符Security@hackNos

1603884022_5f9953f6792da80ab00bb.png!small

21端口ftp到这就走不通了来看下80,web页面

1603884028_5f9953fc15fcc2b6f03c3.png!small

最后发现只有Troubleshool这个连接是本地连接

1603884035_5f99540376f03549e6751.png!small

要输入账号密码但是我们手上就只有Security@hackNos还不知道它是账号还是密码不知道是一个整体还是两个所以经过一番尝试运气真好账号是admin密码是Security@hackNos

1603884046_5f99540e0416856a213f9.png!small

进去后发现只有一个ping_scan一个功能

1603884055_5f9954177655811c142c7.png!small

1603884079_5f99542f18cff76be75e5.png!small

根据执行结果推测可能使用的命令是

Shell_exec:shell_exec(“ping”.$input)

这时候我们想到“|”   shell_exec(a|b)

接下来我们尝试下

1603884089_5f995439a82510d83b682.png!small

1603884097_5f9954419cfc90cc4737b.png!small

执行成功

那我们就可以下载木马上传

1603884103_5f995447c0ac0035f6708.png!small

1603884111_5f99544f925fbe29348a5.png!small

成功拿到shell

查看有哪些用户可以用的

1603884119_5f99545763f51107dfe72.png!small

一共两个用户可用root和recon

我们查看下可以有什么命令可以利用提权

find / -user root -perm -4000 -print 2>/dev/null

1603884126_5f99545e59139238bbabf.png!small

并没有发现有什么命令可以利用提权的

查找recon文件

1603884140_5f99546cc0fcd02717049.png!small

最后发现在var/opt/python.py发现是个python反弹shell好人啊省得自己写只需要自己改一下,然后在执行这个python文件nc监听一下

成功获得交互式反弹shell

1603884149_5f9954753d1da50f9b03e.png!small

紧接着又发现Security@hackNos这个字符串还是recon账号得密码直接ssh连接

1603884182_5f9954960cfc85dc49019.png!small

利用sudo提权拿到了哈希

1603884192_5f9954a0971814b6252c9.png!small

但是这时候发现该主机上装有docker

1603884200_5f9954a8e1f8ae87a5ff4.png!small

我们试试看能不能docker逃逸来进行提权

看了下它有那些镜像

1603884207_5f9954af92e1f10b62a3b.png!small

发现并没有

那就下载个小镜像吧然后把root文件夹挂载到上面,因为docker环境运行得时候是需要root权限得所以可以实现提权得目的

使用dockeer run alpine chroot 来下载个小镜像

1603884215_5f9954b7d37e2e3ad3a21.png!small

这里网速比较慢我断了几次

下载好后

1603884223_5f9954bf66df95409fbf1.png!small

1603884229_5f9954c5975e5fabae8b4.png!small

下一步将root文件夹挂载在上面

docker run -it -v /:/mmmt alpine

把文件夹挂载到mmmt文件夹

1603884234_5f9954caef1f471467bf7.png!small

1603884249_5f9954d9a2389942d0991.png!small

1603884254_5f9954de61bd8921fdcc4.png!small

可以看到我们已经有了root权限

Docker挂载命令逃逸:-v /root(需要挂载得目录):/abc(新建挂载目录)

来源:freebuf.com 2020-10-28 19:27:12 by: jasongsasd

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论