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!🎆

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

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

相关文章

Web3 详解

1. 使用 Web3 库 Web3 是一个 JavaScript 库,可用于通过 RPC 通信与以太坊节点通信。 Web3 的工作方式是,公开已通过 RPC 启用的方法,这允许开发利用 Web3 库的用户界面,以便与部署在区块链上的合约进行交互。 一旦 Geth JavaScri…

| Origin绘图 |瀑布图的绘制(保姆级教程)

🐑 | Origin绘图 |瀑布图的绘制🐑 文章目录 🐑 | Origin绘图 |瀑布图的绘制🐑前言瀑布图简介瀑布图绘制数据导入坐标轴刻度调节调整画布大小添加颜色及设置线条为曲线坐标轴标签调节网格调节 总结 前言 感觉好久没出过关于Origin…

【微信小程序】搭建项目步骤 + 引入Tdesign UI

目录 创建1个空文件夹,选择下图基础模板 开启/支持sass 创建公共style文件并引入 引入Tdesign UI: 1. 初始化: 2. 安装后,开发工具进行构建: 3. 修改 app.json 4. 使用 5. 自定义主题色 创建1个空文件夹,选择下…

Vue组件自定义事件、全局事件总线、消息订阅与发布(pubsub)、$nextTick

目录 1. 组件自定义事件2. 全局事件总线(GlobalEventBus)3. 消息订阅与发布(pubsub)4. this.$nextTick 1. 组件自定义事件 一种组件间通信的方式,适用于子组件给父组件传递数据。在父组件中给子组件绑定自定义事件,事件的触发在子组件,事件的…

【机器学习】和【人工智能】在物理学领域的应用以及代码案例分析

作者主页: 知孤云出岫 目录 作者主页:1. 数据驱动的物理模型预测应用概述案例分析:流体动力学中的湍流预测代码示例 代码分析 2. 实验数据分析与噪声消除应用概述案例分析:光谱数据去噪代码示例 代码分析 3. 物理定律的自动发现应用概述案例分析&#…

高压挑战:新能源汽车换电连接器的技术革新

摘要 随着汽车行业的电动化、网联化和智能化发展,新能源汽车连接器的使用量从传统汽车的600个左右增加到800至1000个。新能源汽车连接器在电连接和信号连接方面更为复杂,包括低压连接器和高压连接器。高压连接器面临严苛性能要求,如耐热性、…

[SUCTF 2018]annonymous1

知识点&#xff1a; 匿名函数创建其实有自己的名字&#xff08;%00lambda_%d&#xff09; 进入页面开始代码审计. <?php // 使用 create_function 创建一个匿名函数&#xff0c;该函数调用 die() 函数并执行 cat flag.php 命令&#xff08;在服务器上执行&#xff0c;如果…

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配&#xff08;Exact Match&#xff09;2. 正则表达式匹配&#xff08;Regex Match&#xff09;3. 前缀匹配&#xff08;Prefix Match&#xff09; 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中&#xff0…

1658.将x减到0的最小操作数

题目 链接&#xff1a;leetcode链接 思路分析&#xff08;滑动窗口&#xff09; 题目要求从最左边或者最右边移除元素&#xff0c;需要思考两侧&#xff0c;这是比较麻烦的。 正难则反&#xff0c;我们逆向思维一下&#xff0c;最后剩余的元素是不是中间的连续区间&#xf…

服务器数据恢复—OneFS文件系统下数据被删除的数据恢复案例

服务器数据恢复环境&故障&#xff1a; EMC NAS&#xff08;Isilon S200&#xff09;&#xff0c;共3个节点&#xff0c;每个节点配置12块STAT硬盘。数据分两部分&#xff1a;一部分数据为vmware虚拟机&#xff08;WEB服务器&#xff09;&#xff0c;通过NFS协议共享到ESX主…

Subclass-balancing Contrastive Learning for Long-tailed Recognition

文章目录 SCL(supervised contrastive learning)1. 监督对比学习&#xff08;SCL&#xff09;的基本概念2. SCL的损失函数3. 长尾数据集的问题4. k-正样本对比学习&#xff08;KCL&#xff09;的引入5. 总结 SBCL举例说明&#xff1a;狗的分类 关键点&#xff1a;划分为多个子类…

Golang | Leetcode Golang题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; func lexicalOrder(n int) []int {ans : make([]int, n)num : 1for i : range ans {ans[i] numif num*10 < n {num * 10} else {for num%10 9 || num1 > n {num / 10}num}}return ans }

性能测试经典案例解析——政务查询系统

各位好&#xff0c;我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛&#xff0c;建议先赞再收藏慢慢学习&#xff0c;有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

11--kubernetes的Ingress应用

前言&#xff1a;本章主要记录ingress暴露服务方式&#xff0c;会详细解释其原理及两种网络模式应用实操。 1、Ingress概念详解 Kubernetes 暴露服务的方式目前只有三种&#xff1a;LoadBlancer Service、NodePort Service、Ingress&#xff0c;Service属于4层负载均衡&#…

线程相关内容

线程 一、介绍二、thread库1、构造函数&#xff08;1&#xff09;函数&#xff08;2&#xff09;说明&#xff08;3&#xff09;注意 2、join函数3、detach4、joinable函数5、get_id函数 三、mutex的种类1、mutex&#xff08;1&#xff09;介绍&#xff08;2&#xff09;lock&a…

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…

长短期记忆神经网络-LSTM回归预测-MATLAB代码实现

一、LSTM简介&#xff08;代码获取&#xff1a;底部公众号&#xff09; 长短期记忆神经网络&#xff08;Long Short-Term Memory, LSTM&#xff09;是一种循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;的变体。相比于传统的RNN&#xff0c;LSTM能够更好…

如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐

《使命召唤4&#xff1a;现代战争》&#xff08;Call of Duty 4: Modern Warfare&#xff09;是由Infinity Ward开发并于2007年发行的第一人称射击游戏。该游戏是《使命召唤》系列的第四部作品&#xff0c;是一款非常受欢迎的游戏之一&#xff0c;《使命召唤4&#xff1a;现代战…

【Linux操作系统】线程控制

目录 一、线程创建二、线程等待三、线程退出四、线程的优缺点五、多线程的创建六、C11的多线程七、线程分离 一、线程创建 使用接口pthread_create创建新线程&#xff0c;头文件是pthread.h #include <iostream> #include <unistd.h> #include <pthread.h>…

2024国赛数学建模-模拟火算法(MATLAB 实现)

模拟退火算法 1.1 算法原理 模拟退火算法的基本思想是从一给定解开始 ,从邻域 中随机产生另一个解 ,接受 Metropolis准则允许目标函数在 有限范围内变坏 ,它由一控制参数 t决定 ,其作用类似于物 理过程中的温度 T,对于控制参数的每一取值 ,算法持续进 行“产生 —判断 —接受…