下载地址:https://www.vulnhub.com/entry/pwnlab-init,158

在这里插入图片描述

信息搜集

获取IP地址

在这里插入图片描述

端口扫描

在这里插入图片描述

80端口

在这里插入图片描述
http://192.168.1.179/?page=login页面发现文件包含漏洞
在这里插入图片描述
在index页面也找到了对应的源码,并且有两个文件包含漏洞
在这里插入图片描述
另一个是cookie包含文件,也是可以利用成功的
在这里插入图片描述
在login源码看到有config.php
在这里插入图片描述
在config.php源码当中发现了数据库的用户名密码
在这里插入图片描述
之前扫描端口的时候发现开发了3306,使用mysql远程连接
在这里插入图片描述
查看登录页面的用户名密码
在这里插入图片描述
使用获取的用户名密码登录,密码需要使用base64解密在这里插入图片描述
在这里插入图片描述
登录成功,发现上传页面但不允许上传php文件
在这里插入图片描述
返回文件包含看一下upload的源码,在这里看到了限制方法
在这里插入图片描述
上传一个图片木马
在这里插入图片描述
在这里插入图片描述
查看图片获得上传路径
在这里插入图片描述

getshell

这里可以使用之前发现的cookie文件包含执行命令
在这里插入图片描述
kali开启监听,反弹shell
在这里插入图片描述在这里插入图片描述

提权

查看用户
在这里插入图片描述
看到这些用户感觉特别熟悉,使用之前获取的用户名密码登录靶
直接切换用户发现shell限制,使用python交互shell,再次切换用户
在这里插入图片描述
在kane用户的家目录里面找到一个二进制文件
在这里插入图片描述
这个程序的作者试图在cat没有提供完整路径的情况下运行命令。cat我在运行 Bash 程序的目录中创建了一个文件(基本上是一个 shell 脚本)/tmp,并将其添加到$PATH环境变量的开头。这样系统将首先cat在目录中查找二进制文件,/tmp然后执行我们的 shell
在这里插入图片描述
这样就成功提权到mike了
因为为组设置了 SUID 位,并且可以看到 Mike 在mikeandkane组中。
在 Mike 的主目录中,有另一个可执行文件可以引导我们进入根目录。另一方面,这个不同。我strings在文件上运行,发现输入被记录到/root目录中的文本文件中。用户输入被传递给/bin/echo命令并最终附加到该messages.txt文件中。在回显输入后,使用命令注入(基本上是命令连接)来执行 shell。Bash 没有用,所以使用/bin/sh返回一个 root shell。
在这里插入图片描述
成功提权到root
在这里插入图片描述
到这里成功完成了该靶机!