Bootstrap

DC系列靶场---DC 2靶场的渗透测试(二)

漏洞利用及探测

rbash逃逸

虽然我们现在已经可以执行切换路径命令了,但是发现还有是很多命令不能用。

我想看看一下目标主机的所有用户,是不能执行的。

那我们就用到了当前shell逃逸。第一种情况:/ 被允许的情况下;直接 /bin/sh 或 /bin/bash

第二种情况:能够设置PATH或SHELL时。

export PATH=$PATH:/bin/:/usr/bin:$PATH
export SHELL=/bin/sh

 现在我们是符合第一种情况的所以我们直接使用/bin/sh 或者 /bin/bash

 

export PATH=$PATH:/bin/:/usr/bin:$PATH

现在我们就可以使用cat命令了,当然其他命令我们也是可以进行执行的

我们通过passwd文件看到tom/bin/rbash而jerry是/bin/bash,tomshell是受限制的,而jerry的shell是不受限制的

详细请看:https://xz.aliyun.com/t/7642?page=1&time__1311=eqmxuDnGDQitdAKG%3DD%2FFnxBKR0DkqYeDBjmhoD#toc-2

 

我们现在获取到了flag3,根据它的提示说老汤姆总追着杰瑞跑。那应该下一个flag就在杰瑞身上。

su - jerry
//passwd=adipiscing

所以我们切换到jerry用户,因为jerry的shell是不受限制的。

我们看到jerry身上有个flag4,这个flag4上也很有意思

我们现在没有获得最重的旗帜,还说这没有提示,居然还说让我滚。那我就得看看怎么个事了。

关键就在最后一句 Go on - git outta here 这不就是git吗,那我们的突破点就是这个git工具了。

su -l

执行sudo -l列出jerry可以通过sudo执行的所有命令,有git,那我们就使用git进行提权。

提权

git提权

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

GIT提权原理:

原理是git配置不当存在溢出,溢出的部分如果输入一个交互式窗口就会有交互,类似于suid那样,暂时拥有root,又写了一个交互,就真的有了root的交互。

git 的帮助信息中有一个-p | --paginate选项

这个-p的意思就是以分页的形式展示git的帮助信息,但是这里他会默认调用more来进行展示。

sudo git -p

!/bin/sh

我们再交互式的中输入!/bin/sh,可以看到我们的命令提示符变成了root。

最终flag

我们首先切换到root的工作目录,就可以看到最终的flag了。

总结:

1、我们使用nmap扫描端口的时候一定要看仔细,并不是所有的ssh都是22端口,因为考虑到安全问题,就把端口给改变了。

2、DNS服务替代解决方案:hosts文件,且它的解析优先级比DNS更高。可以将目标主机ip地址和域名写入hosts文件。

3、在做目录枚举的时,要有好的字典才能更精确查找。

4、我们在探测http时,可以根据架构目录枚举的架构判断CMS

5、我们要根据目标主机的CMS和结构来选择工具,达到精准把控。

6、不论是用户枚举还是暴力破解都需要选对字典,才能有效。

7、在进行rbash逃逸的时候,应该按照可使用的命令选择逃逸的方式,不同命令,有不同的逃逸方式。

8、每个flag都是一个提示,看仔细,不要相信它说这个没有任何提示。

;