Vulnhub 靶机 pwnlab_init 渗透——详细教程
1. 下载 pwnlab_ini 靶机的 .ova 文件并导入 VMware;
pwnlab下载地址:PwnLab: init ~ VulnHub
导入VMware时遇到VMware上虚机太多,无法确认 pwnlab(DHCP) 的 ip 地址,小技巧:
- 设置 中查看 网卡的MAC地址
- arp-scan 时直接搜索对应mac,映射到ip地址
2. 找到ip地址后,nmap 扫描靶机所有端口
nmap -sT -T4 -A -p- 172.17.0.81
靶机开启了 80,111,3306等端口
try:http的web服务
发现有个Upload的button,是否可以利用文件上传漏洞呢?
点击后Upload后发现需要login
3. 扫描靶机目录
nikto -h 172.17.0.81
发现一个可疑的config.php文件,但是看不到内容
4. 渗透测试
看url格式,可能存在文件包含漏洞,尝试:
http://172.17.0.81/?page=file:///etc/passwd
但是没反应
尝试使用php协议,先转码
http://172.17.0.81/?page=php://filter/read=convert.base64-encode/resource=config
拿到回显后base 64转码得到:
发现了数据库的用户和密码,之前nmap扫描时发现,mysql是开着的,尝试登陆mysql并发现了users的表;
base64解码:
登录kent用户,尝试上传webshell木马文件,首先看upload的规则,使用同样的方式获取upload.php的代码;
Base64转码后获取upload.php代码,使用白名单对文件后缀名及MIME类型做限制,要求上传图片;
直接上传kail自带的webshell,webshell路径/usr/share/webshells/php/php-reverse-shell.php,需要修改两处:
IP为webshell反向到的主机地址,用来监听靶机的port,获取webshell权限的渗透机;
BurpSuite拦截上传请求,添加文件后缀名.gif,修改MIME类型为image/gif,文件头添加GIF
上传成功后,监听靶机的5555端口:nc -lvp 5555,此时我们只需要执行上传的webshell即可,需要利用index.php里面的文件包含漏洞
获取上传的webshell文件路径,直接使用curl目录把webshell文件包含在cookie里面,
此时查看监听的5555端口,进入了www-data用户,此时只需要提权到root权限,先把python虚拟终端运行起来,方便操作
然后切换之前获取的用户,发现只有kane用户目录下有一个elf类型的可执行文件msgmike
执行后发现需要cat mike目录下一个msg.txt文件,这里应该是没有cat权限
此时需要用到 环境变量劫持提权,把环境变量修改成自建cat文件的目录,操作如下:
成功执行msgmike文件后,把环境变量修改为回来,查看当前用户为mike;
查看mike目录下文件,有个msg2root文件,执行该文件后输入执行路径:;/bin/sh后,获取root权限;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步