靶机下载地址:https://www.vulnhub.com/entry/photographer-1,519/
这个靶机只能在virtualbox中打开,而kali是vmware的,因此需要一些网络配置才能使二者互通:配置方法
1.信息收集
地址信息
靶机地址:10.0.2.100
kali地址:10.0.2.102
nmap扫描开放端口和服务:
nmap -A -sV 10.0.2.100
开放端口信息
- 80:http webserver Apache httpd 2.4.18 (Ubuntu)
- 139 :netbios-ssn Samba smbd 3.X - 4.X
- 445:netbios-ssn Samba smbd 4.3.11-Ubuntu
- 8000 :http webserver Koken CMS
测试思路
- 80和8000端口:功能点测试、审查源码、JS文件、目录扫描
- 139和455端口:SMB协议枚举,利用已知漏洞
2.Web应用枚举
80端口:一个漂亮的网页,查看源码无发现。
8000端口:这是一个由名为koken的内容管理系统(CMS)搭建的。
通过目录扫描,发现了管理员登录界面。
3.SMB协议枚举
从端口扫描可以看到靶机系统为ubuntu,139和445端口利用samba实现在linux系统上的SMB协议。
使用enum4linux工具对目标Linux系统进行枚举.
enum4linux 10.0.2.100
扫描结果显示“sambashare”共享可用,可以作为切入点。
继续查看enum4linux的输出,发现两个用户:daisa和agi。
尝试连接sambashare,先匿名登录,如果不行可能会用到上面两个用户名
smbclient -U '' //10.0.2.100/sambashare
sambashare在无用户名和密码的情况下成功连接:
查看文件,里面有两个文件:一个txt文件,另一个似乎是wordpress的备份文件。
先查看txt文件看能否获取信息,再考虑比较复杂的wordpress文件。
txt文件内容貌似是一封信:
从信里的信息可以猜测,邮箱:daisa@photographer.com,密码:babygirl
用这个账密信息尝试登录koken管理员界面:http://10.0.2.100:8000/admin
4.反弹shell
现在可以以管理员身份登录Koken CMS系统,搜一下这个系统的漏洞。
存在一个任意文件上传漏洞 ,漏洞描述:Koken CMS的上传限制基于允许的文件扩展名列表(withelist),这有助于通过Burp处理HTTP请求来进行绕过。
利用步骤:
1)创建恶意PHP文件,这里使用的是kali系统目录 /usr/share/webshells/php/php-reverse-shell.php下的php反弹shell文件,把ip地址和端口分别修改为kali的ip和监听端口。
2)保存为 “image.php.jpg”.
3)登录Koken系统,在首页Library标签中点击“Import Content”按钮上传文件,并用burp拦截。
4)在burp中修改文件名为“image.php”再重放。
5)在content页面,查看已经上传的php文件。
6)在kali中监听端口,触发文件链接,反弹shell成功!
查看当前权限,为www-data站点用户,进入/home/daisa目录,user.txt任何用户可查看,得到普通用户user.txt
5.提权
检查是否存在suid权限文件,suid权限的作用是允许用户以其所有者的权限执行文件,因此如果有可以让普通用户执行的属于root的文件,即可获取root权限。
用以下命令查找suid权限文件:
find / -type f -perm -u=s 2>/dev/null
发现php7.2有suid权限,查找GTFO Bins,用以下命令提权。
/usr/bin/php7.2 -r "pcntl_exec('/bin/bash', ['-p']);"
成功获取root权限!
6.总结
靶机考察的知识点:
- 公开的samba共享泄露账密等信息;
- 利用CMS系统任意文件上传漏洞反弹shell;
- 利用suid权限文件提权。