今天我们来学习DC-5靶机!!!
1.实验环境
攻击机:kali2023.2
靶机:DC-5
2.1扫描网段
2.2扫描端口
这里后面这俩端口有点似曾相识啊,在dc3里面好像见过,那咱们给这两个端口来个更详细的扫描,看看怎么个事,我盲猜肯定有 ssh 服务!!!
2.3对111和34681进行更细致的扫描
111这个端口的服务是第一次见,我随便上网搜了一下就说是有漏洞,看来后面我们很有可能会用到这个漏洞,其次就是34681这个高位端口我用了两种方式都没有扫出来他到底是个什么服务,就先不管了!!!目前的话我就搜集到这些信息!!
3.1查看80端口的服务
看了半天我这里其实没有发现什么我觉得有用的东西!
3.2 111端口
后来我去搞了半天那个rpc服务,之前不是说那个可能有漏洞吗,后来半天也弄不出来,然后其实到现在我还一直认为那个高位端口是ssh服务,后来实在没思路了,看了一下提示,发现前面的思路是错的!!!
3.3 根据提示重新捋思路
首先作者明确了这次没有 ssh 服务,其次作者提到了一个 随着 刷新会改变的东西 !!!那既然是随着刷新改变那一定是在web页面中,肯定就不是rpc那个什么漏洞啥的了,然后我就继续去研究那个web页面了!!!
4.1继续从web页面寻找突破口
然后就找到了这个页面中的这个年份会随着刷新而变化!!!然后到这里其实我的知识储备就不足了,我不知道这是以这种什么情况导致的,然后我就搜了教程,原来这种情况是可能存在文件包含漏洞,然后我就去搜了一下文件包含漏洞的原理啥的!!1
4.2文件包含漏洞
就大致意思就是说相当于我有一个函数在某个文件中写着,然后这个页面引用了那个文件也就是那个函数,所以现在如果可以找到那个文件的话,那我们就可以在里面做一些手脚比如上传一些恶意代码然后让他执行!!!这是我的简单理解,然后咱们来试一下!
4.3寻找关键词
就是他文件包含的时候会使用一个关键词然后后面跟上要包含的文件就可以执行那个文件,甚至执行里面的代码,所以现在我们需要找到这个关键词!!!找这个玩意儿的方式有很多,我这里用bp,当然wfuzz等等也是可以的,它的原理其实就是爆破!!!
我们去火狐上请求一下这个页面肯定是请求不成功的,因为我们那个文件引用的关键词不正确,所以我们用bp截断然后给那个关键词打上引号进行爆破,这里很好理解,就是通过字典爆破看哪个关键词加到那里可以访问,那说明那个关键词就是正确的呗!!!下面我用的这个字典的路径是 /usr/share/wfuzz里第一个文件中有个交conment.txt的一个字典!!!
搞出来了,原来是file 其实还是经验不足,毕竟交文件包含漏洞,那就很有可能是 file 啊
4.4验证关键字
会发现index.php这个文件在下方被执行了,也就是说现在这台服务器上的所有文件都可以在下面被执行!!!
这是查看了一下 passwd 这个文件,我们之前不是经常在在这个文件中查看有哪些用户吗?
所以这就是这个靶机的一个神奇的地方,现在我们虽然没有拿到一个shell,但是可以查看所有的文件,就很神奇,其实也可以理解成一个只能查看文件的权限极低的shell!!!
5.1思考如何获取一个shell
到这里我们只是可以查看文件而已,并不能上传文件,比如我写点代码什么之类的传上去,我们的最终目的是能够远程控制这台服务器,所以到这里我就又迷茫了,搜了一下教程以后知道了这么个东西,叫做日志文件,就是虽然我们不能够直接往里写东西,但是我们可以去请求一些东西,通过请求把我们的一些代码记录在那个日志文件中,然后我们利用文件包含漏洞引用一下这个日志文件,他就可以把里面的代码执行,这样的话不是就达到我们的目的了吗?
5.2扫描一下80端口的服务器类型
5.3大致了解一下 Linux中nginx日志文件的相关知识
6.1上传一句话
然后在kali中开启一个端口监听,然后在这样就可以反弹一个shell
6.2美化一下,搞一个稳定的shell
7.1尝试suid提权
7.2screen提权
这个提权很蛋疼,方法是可以查到的,但是我这边试了好几遍都行不通,遇到一个问题,下面我把方法放到下面,大家可以试试,其实就是拿一个脚本搞得,也没什么意思,这个靶机最有意义的地方在于前面通过文件包含漏洞拿到webshell,至于这个提权不想搞了,半天搞不出来,这个我感觉是那个脚本的问题!!!
这个靶机就先这样,关于这个screen提权我后续再研究研究!!!
持续更新中~~~~~