Vulnhub:hacksudo2

靶机下载地址

信息收集

主机发现

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.188

端口扫描

nmap 192.168.31.188 -A -p- -T4

开放端口有80,111,1337(ssh),2049(nfs)。

目录扫描

访问http服务。

点击图片进入游戏。玩了一下没看到什么信息。

目录扫描。

dirsearch -u http://192.168.31.188

结合这个系列靶机的渗透测试经验,file.php可能存在文件包含漏洞,缺少一个参数。

info.php,敏感信息泄露,网站根路径/var/www/html。

readme.md

Poppoppero.

模糊测试参数

file.php存在文件包含漏洞的可能,wfuzz模糊查询参数。

wfuzz -c -u http://192.168.31.188/file.php?FUZZ=/etc/passwd -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --hh 238

参数file。

渗透

文件包含漏洞利用(LFI)

http://192.168.31.188/file.php?file=/etc/passwd,可知root和hacksudo有默认shell。(这样看可能比较乱,可以在终端使用curl查看curl 'http://192.168.31.188/file.php?file=/etc/passwd')

已经验证存在文件包含漏洞,尝试包含远程文件getshell,但是需要确认一个前提——php开启allow_url_include(允许远程包含)。从info.php内容得知,不允许远程文件包含。

LFI本地文件包含,且没有文件上传功能点如何getshell。

1、利用日志文件,例如:apache日志文件/Nginx错误日志/SSH登录日志,往日志文件中“写”一句话木马,文件包含日志文件来执行日志文件的一句话木马。经过测试利用日志文件写入一句话木马getshell的方法是不可行的。

2、通过LFI获取hacksudo用户的ssh私钥、公钥文件以此getshell也不可行,因为不回显。

NFS结合LFI

NFS共享目录挂载到本地

nmap探测靶机开放端口,知道靶机上运行了NFS服务,将NFS共享目录挂载到本地Linux。步骤如下:

1、查看nfs服务器上可用的共享目录
showmount -e 192.168.31.188
2、在Linux机器上创建一个用于挂载的目录
mkdir tp
3、mount命令挂载nfs共享目录
mount -t nfs 192.168.31.188:/mnt/nfs tp -o nolock

mount命令挂载到本地时出现了很多问题,例如:can't find /mnt/ in /etc/fstab,搜索引擎的普遍解决方式是在/etc/fstab下添加

192.168.31.188:/mnt/nfs  mnt  nfs  default  0  0        
  1. 需要挂载的文件系统或需要挂载的目录

  2. 挂载点

  3. 文件系统

  4. 挂载形式

  5. 是否备份,0是忽略,1是备份

  6. fsck选项

修改后提示:mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.按照提示使用systemctl daemon-reload消除了这个报错,成功挂载。

成功挂载后,将反弹shell复制到挂载目录中,即上传到共享文件夹。

nc开启监听,利用LFI包含反弹shell文件,成功getshell。

# python获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash");'

利用NFS提权

现在我们拿到了一个低权限shell,查看/etc/exports文件(NFS配置文件),发现可利用NFS提权。

框起来的部分解释:

  1. /mnt/nfs。共享文件夹路径。

  2. *。远程用户可挂载。

  3. rw。可读可写。

  4. no_root_squash。允许在共享内以root身份写入文件。

利用挂载NFS分享提权:这个提权方法的前提是启用no_root_squash。原理是只要我们在本地挂载共享目录时攻击机是root用户,就能以root身份赋予恶意可执行文件SUID权限,此时目标机共享文件夹中也会做相同修改,再执行恶意可执行文件达到提权目的。

这里我复制/bin/bash到挂载的共享文件夹中,修改权限并赋予SUID权限,之后执行SUID bash即可获得root shell(为什么不通过自定义漏洞利用程序,因为该靶机没有编译环境)。需要注意的是bash版本,先看一下目标机bash版本——5.0.17。

攻击机的bash版本——5.2.21。版本不同会报错的,需要找和目标机版本相同的bash。(刚好有个Ubuntn是5.0.17版本的bash)

将合适版本的bash复制到攻击机的挂载目录下,修改权限并赋予SUID。

chmod 777 bash
chmod +s bash

./bash -p 执行bash。

get root.txt!🎆

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地理信息科学在考古学中的应用:GIS与遥感技术的时空穿梭之旅

在历史的长河中,每一片土地都承载着文明的记忆。随着科技的进步,地理信息科学(GIS)与遥感技术正逐渐揭开古老秘密的面纱,让沉睡千年的历史遗迹重新焕发光彩。今天,就让我们踏上一场穿越时空的旅程&#xff…

(一)使用Visual Studio创建ASP.NET Core WebAPI项目

1.创建webAPI项目 选择ASP.NET Core Web API项目模版(基于.Core框架可以支持多种系统环境,所以我们选择.Core框架),点下一步。 2.项目名称 项目名称设置为:CoreWebAPI,点下一步 3.选择框架 选择.NET6.0框…

人机融合智能中的计算不可约性

计算的不可约性 是计算理论和复杂性科学中的一个重要概念,主要由 计算机科学家 和 数学家 提出和研究。它指的是在某些系统或过程的模拟中,没有简化或有效的方式来预测其行为,而必须逐步进行每一步的计算来获得结果。 不可约性定义&#xff1…

结构开发笔记(七):solidworks软件(六):装配摄像头、摄像头座以及螺丝,完成摄像头结构示意图

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141931518 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

Java-IO:浅谈对NIO的认识

Java-IO:简述常见的IO模型 Java-IO:浅谈对IO的认识 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO 主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供…

LabVIEW如何自学成为专业开发者

自学成为LabVIEW专业开发者需要一个系统化的学习和实践过程,以下是一些关键步骤: 1. 扎实的基础学习 了解LabVIEW的基础概念:首先要熟悉LabVIEW的基本操作、数据流编程理念和图形化编程环境。可以通过LabVIEW的官方教程、Bilibili上的视频课程…

Github 2024-09-02 开源项目周报 Top13

根据Github Trendings的统计,本周(2024-09-02统计)共有13个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3TypeScript项目3Vue项目2Rust项目2Go项目2Dart项目1Jupyter Notebook项目1Shell项目1Dockerfile项目1PHP项目1Blade项目1AI.AppFlow…

Matlab三维图的坐标轴标签 自动平行坐标/自动旋转

下载解压工具包: https://www.mathworks.com/matlabcentral/fileexchange/49542-phymhan-matlab-axis-label-alignment 添加至MATLAB路径: 在三维绘图后增加下列语句即可 ax struct(Axes, gca); align_axislabel([],ax) h3d rotate3d; set(h3d,ActionPreCa…

认识正则表达式

为什么要学习正则表达式 因为爬虫需要!!! 一般来说爬虫需要四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索)爬 (将所有的网站的内容全部爬下来)取 (去掉对我们没用处的数据)处理数据(按照我们想要的方…

在Centos中的mysql的备份与恢复

1.物理备份 冷备份:关闭数据库时进行热备份:数据库运行时进行,依赖于数据库日志文件温备份:数据库不可写入但可读的状态下进行 2.逻辑备份 对数据库的表或者对象进行备份 3.备份策略 完全备份:每次都备份完整的数…

使用C语言实现字符推箱子游戏

使用C语言实现字符推箱子游戏 推箱子(Sokoban)是一款经典的益智游戏,玩家通过移动角色将箱子推到目标位置。本文将带你一步步用C语言实现一个简单的字符版本的推箱子游戏。 游戏规则 玩家只能推箱子,不能拉箱子。只能将箱子推到…

Unity界面、组件以及脚本

Unity界面 菜单栏 菜单栏:位于屏幕顶部,包含文件、编辑、资产、游戏对象、组件、地形、动画、图形、AI、窗口、工具和帮助等菜单项。 工具栏 工具栏:位于菜单栏下方,提供了快速访问常用功能的按钮,如播放、暂停、停止…

OpenGL/GLUT实践:实现反弹运动的三角形动画与键盘控制(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 运行效果2 实验过程2.1 环境配置2.2 绘制三角形2.2.1 渲染函数2.2.2 主函数2.2.3 运行结果 2.3 调整窗口大小2.4 简单动画与按键控制2.4.1 简单旋转2.4.2 键盘控制 2.5 窗口反弹动画2.5.1 处理窗口大小变化2.5.2 渲染函数…

c++修炼之路之C++11

目录 一:使用列表初始化 二:decltype和nullptr 三:右值引用和移动语义 四:新的类功能 五:可变参数模板 六:lambda表达式 七:包装器 1.function包装器 2.bind包装器 接下来的日子会顺…

Linux CentOS 部署Docker

1. yum 配置 (1)更新yum yum update -y 如果不升级更新yum 可能在后续docker部署后再更新容器会出现oci runtime error等 (2)安装yum工具类准备 yum install -y yum-utils device-mapper-persistent-data lvm2 (3&…

【操作系统存储篇】Linux文件基本操作

目录 一、Linux目录 二、Linux文件的常用操作 三、Linux文件类型 一、Linux目录 Linux有很多目录,Linux一切皆是文件,包括进程、设备等。 相对路径:相对于当前的操作目录,文件位于哪个目录。 绝对路径 :从根目录开…

Golang | Leetcode Golang题解之第387题字符串中的第一个唯一字符

题目: 题解: type pair struct {ch bytepos int }func firstUniqChar(s string) int {n : len(s)pos : [26]int{}for i : range pos[:] {pos[i] n}q : []pair{}for i : range s {ch : s[i] - aif pos[ch] n {pos[ch] iq append(q, pair{ch, i})} e…

数仓工具—Hive语法之URL 函数

hive—语法—URL 函数 业务需求中,我们经常需要对用户的访问、用户的来源进行分析,用于支持运营和决策。例如我们经常对用户访问的页面进行统计分析,分析热门受访页面的Top10,观察大部分用户最喜欢的访问最多的页面等: 又或者我们需要分析不同搜索平台的用户来源分析,统…

jmeter同步定时器、固定定时器、统一随机定时器、常数吞吐量定时器详解

一、同步定时器 可以让多个线程同时向服务器发送请求,实现瞬间并发(相当于现实中同步秒杀商品)类似于集合点 例如:10个人约定去旅游,出发前提前会在某一个地方等到10个人同时都到了约定地点之后再一同排队上车 在任意接口下添加同步定时器模…

区域智慧农业解决方案

### 1. 项目概述 《区域智慧农业整体解决方案》由左岸芯慧提出,旨在通过数字化手段打造新型农业经营管理方式,实现产销一体化。 ### 2. 农业监管与需求分析 方案针对监管部门、消费者和生产服务企业的需求进行分析,指出农业监管包括数据收…