windows 提权

一、土豆(potato)家族提权

原理

土豆提权就是通过 windows 的 COM(Component Object Model,组件对象模型)类。向指定的服务器端口发送 NTLM 认证,捕获认证数据包,并修改数据包内容使其认证成功,从而获得 system 权限的 token。在通过高权限的令牌执行反弹 shell 的命令,获取高权限用户的 shell。

实现条件

  1. 获取到高权限的 token
  2. 当前账户拥有 SeImpersonatePrivilege 或 SeAssignPrimaryTokenPrivilege 权限

当用户具有 SeImpersonatePrivilege 特权,可以调用 CreateProcessWithTokenW 以某个 Token 的权限启动新进程。(最常见的,一般 IIS 服务的用户都具有该类权限)

当用户具有 SeAssignPrimaryTokenPrivilege 特权,可以调用 CreateProcessAsUserW 以指定用户权限启动新进程。(这个权限一般管理员才具有)

1)juicypotato(多汁土豆)

github 里有详细的讲解: https://github.com/ohpe/juicy-potato

满足以上提权的条件,直接用工具进行提权。

juicypotato 可以在本地监听端口,进行提权。

2)RoguePotato(烂土豆)

微软修补后,高版本 Windows DCOM 解析器不允许 OBJREF 中的 DUALSTRINGARRAY 字段指定端口号(也就是不能像 juicypotato 一样在本地端口直接监听 NTLM 认证的流量包了)。

但是,总有大佬会绕过这样的限制:为了绕过这个限制并能做本地令牌协商,作者在一台远程主机上的 135 端口做流量转发,将其转回受害者本机端口,并写了一个恶意 RPC OXID 解析器。

github 介绍: https://github.com/antonioCoco/RoguePotato/tree/master

出发 NTLM 认证机制后,把流量包转到了 kali 主机的 135 端口上,再有 kali 主机上转给 windows 主机的 9999 端口,从而实现了 对 DCOM 解析器不允许 OBJREF 中的 DUALSTRINGARRAY 字段指定端口号 的绕过,原理与 juicypotato 基本一致。

二、系统错误配置提权-AlwaysInstallElevated

这是一个最经典的 windows 提权,但是实际场景中确是很少见的。简单说一下原理。

这是由于 window 的注册表的配置错误导致的提权,AlwaysInstallElevated 选项置为 1 后,windows 在执行 msi 下在文件时,会用高权限用户去安装。此时,我们的 msi 文件里的内容不是正常的下载程序,而是反弹 shell 的语句,不就完成提权了吗

实现的话可以去 msf 中生成一个恶意的 msi 文件,下载到 windows 上执行,进行提权。

三、内核提权

这是最简单的一种提权方式,站在巨人的肩膀上,利用大佬发现的操作系统内核的漏洞进行提权。

最经典的永恒之蓝(ms-17-010)漏洞,就是操作系统内核漏洞,只要攻击成功就是最高的 system 权限。

这里分享一个帮助发现系统提权漏洞的工具

WinPeas: https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS

他可以枚举出一些可以尝试的攻击方式,但是也不能全信,还是要根据我们对目标具体收集到的信息,进行判断。

注意:内核提权很容易导致目标系统崩溃,想使用一定是经过授权的,或者是在自己的靶机环境中

四、密码收集提权

通过发现电脑用户的一些账号密码

1)浏览器密码

浏览器密码一般在: %APPDATA%\Mozilla\Firefox\Profiles\xxx.default\ 文件夹下

Version 大于等于 32.0,保存记录的文件为 logins.json

Version 大于等于 3.5,小于 32.0,保存记录的文件为 signons.sqlite

可以使用工具

WebBrowserPassView:

链接:https://pan.baidu.com/s/1jTumsrJSRLRIIdG49fHLlA?pwd = gbsz

提取码:gbsz

2)注册表密码

reg query HKEY_CURRENT_USER\Software\TightVNC\Server

用 vncpwd 工具进行解密:https://aluigi.altervista.org/pwdrec/vncpwd.zip

五、数据库提权

1)mysql UDF 提权

UDF 提权原理

UDF 指的是用户自定义函数,用户可以对数据库所使用的函数进行一个扩展(利用 dll 文件),从而定制一些符合自己需求的函数,但是同样的,当黑客获取了数据库的 root 用户的一个权限时,即使所在的系统权限很低,也可以使用 UDF 来自定义一个执行系统命令的函数,但是执行权限为管理员权限,从而可以用来添加管理员账户,远程连接。

提权条件

  1. 必须是 root 权限(主要是得创建和抛弃自定义函数)
  2. secure_file_priv =
  3. 将 udf.dll 文件上传到 MySQL 的 plugin 目录下(这里以 MySQL = 5.5.29 为例)

查看 secure_file_priv 的值(他必须是空白值,只要有内容就不能进行 UDF 提权)

show global variables like "secure%";

查看 mysql 绝对路径

SHOW VARIABLES LIKE "%plugin%";

创建文件夹( 你要提权系统的 mysql 的绝对路径 )

select 'xxx' into dumpfile
'C:\\phpstudy_pro\\Extensions\\MySQL5.5.29\\lib::$INDEX_ALLOCATION'; select 'xxx' into dumpfile
'C:\\phpstudy_pro\\Extensions\\MySQL5.5.29\\lib\\plugin::$INDEX_ALLOCATI
ON';

虽然语句会出现报错,但是文件夹会成功创建。

利用 msf 的 exploit/multi/mysql/mysql_udf_payload 生成一个 dll 的 payload,上传到\lib\plugin 目录下

SELECT 生成的payload内容 into dumpfile 'C:\\phpstudy_pro\\Extensions\\MySQL5.5.29\\lib\\plugin\\udf.dll';

定义别名

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.dll';
select sys_eval('whoami');

看到输出为system用户

Windows提权方式汇总的更多相关文章

  1. metasploit下Windows下多种提权方式

    前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以用来删除文件,查看私有信息,或者安装特殊程序,比如病 ...

  2. 2017-2018-2 20155315《网络对抗技术》免考五:Windows提权

    原理 使用metasploit使目标机成功回连之后,要进一步攻击就需要提升操作权限.对于版本较低的Windows系统,在回连的时候使用getsystem提权是可以成功的,但是对于更高的系统操作就会被拒 ...

  3. 35.windows提权总结

    本文参考自冷逸大佬的博客,源地址在这里:https://lengjibo.github.io/windows%E6%8F%90%E6%9D%83%E6%80%BB%E7%BB%93/ windows提 ...

  4. 「白帽黑客成长记」Windows提权基本原理(下)

    上一篇文章我们介绍了信息收集方法和WMIC,今天我们将跟随作者深入学习Windows提权基本原理的内容,希望通过这两篇文章的讲解,大家能够真正掌握这个技能. 推荐阅读:「白帽黑客成长记」Windows ...

  5. 「白帽黑客成长记」Windows提权基本原理(上)

    我们通常认为配置得当的Windows是安全的,事实真的是这样吗?今天让我们跟随本文作者一起深入了解Windows操作系统的黑暗角落,看看是否能得到SYSTEM权限. 作者将使用不同版本的Windows ...

  6. [转帖]「白帽黑客成长记」Windows提权基本原理(下)

    「白帽黑客成长记」Windows提权基本原理(下) https://www.cnblogs.com/ichunqiu/p/10968674.html 提权.. 之前还在想 为什么 我的 sqlserv ...

  7. [转帖]「白帽黑客成长记」Windows提权基本原理(上)

    「白帽黑客成长记」Windows提权基本原理(上) https://www.cnblogs.com/ichunqiu/p/10949592.html 我们通常认为配置得当的Windows是安全的,事实 ...

  8. Windows提权小结

    摸鱼的时候,想想内网这部分还有什么地方适合水一下,翻翻往期,开始填坑 总结一下Windows提权的部分,以后有时间再补一下Linux提权 这仍然是一篇思路总结类的随笔,具体细节内容不展开,也展开不了. ...

  9. 转载:windows的mysql提权方式

    mysql提权语句归纳如下: 一 UDF提权 这类提权方法我想大家已经知道了,我大致写一下,具体语句如下: create function cmdshell returns string soname ...

  10. windows提权的几种姿势

    想象这种画面:你拿到了一台机器上Meterpreter会话了,然后你准备运行 getsystem 命令进行提权,但如果提权没有成功,你就准备认输了吗?只有懦夫才会认输.但是你不是,对吗?你是一个勇者! ...

随机推荐

  1. openGauss集群主库出现流复制延迟告警

    问题描述:环境是openGauss 5.0集群,在一次意外重启数据库之后.收到了一个主库的主从延迟告警,只有从库才能出现延迟,主库怎么会出现了告警延迟 告警信息: Status: Resolved H ...

  2. IPv6地址的文本表示规范

    背景 随着IPv6越来越普及,经常要跟IPv6地址打交道,迫切需要一个统一的IPv6地址文本表示规范. RFC4291简单的说明了如何将IPv6地址表示成文本形式,但有很多有歧义和不周全的地方. RF ...

  3. 使用VS Code 学习算法(第四版)

    最近在学习算法(第四版),书中一直在使用命令行来执行Java程序,而使用Eclipse时,很难使用命令行,或者说我根本就不会用,于是就想研究一下使用VS Code来编写代码,使用命令行来执行程序.看了 ...

  4. SpringBoot 日志文件 logback-spring.xml

    日志文件 将logback-spring.xml配置文件,放到:/src/main/resources中 <?xml version="1.0" encoding=" ...

  5. 内网穿透的高性能的反向代理应用FRP-自定义404错误页【实践可行版】

    frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 为什 ...

  6. MySQL_数据库命名规范及约定

    操作规范 如无说明,建表时一律采用innodb引擎: 如无说明,数据库表编码集(utf8,utf8_bin)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf ...

  7. 常见的SQL数值型数据处理函数

    在数据驱动的时代,SQL 已成为数据分析和管理中不可或缺的工具.无论是处理简单的查询还是复杂的数据分析,SQL 都能帮助我们高效地完成任务. 然而,在处理数值型数据时,你是否感到过困惑,不知道如何运用 ...

  8. Known框架实战演练——进销存框架搭建

    本文介绍如何使用Known开发框架搭建进销存管理系统的项目结构,以及开发前的一些配置和基础代码. 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite ...

  9. java srpint boot 2.2.1 第二部份,乐观锁机制, 构造复杂查询条件,分页查询 相关内容,删除与软删除

    第二部份,引起锁机制的原理和解决方案: 测试环境搭建第一步先建一个数据库表用于模拟商品购买. CREATE TABLE product ( id INT AUTO_INCREMENT PRIMARY ...

  10. FusionAccess liteAD

    回车回车 fusion access完成 进入access网页 https://IP:8443进入web网页 输入用户名:admin:密码:IaaS@PORTAL-CLOUD8! 输入完账号密码后改密 ...