安全矩阵

 找回密码
 立即注册
搜索
查看: 4655|回复: 0

Potato家族本地提权分析

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-9-3 20:29:27 | 显示全部楼层 |阅读模式
本帖最后由 gclome 于 2020-9-3 20:30 编辑

原文链接:potato家族本地提权分析
0x01 前言

在实际渗透中,我们用到最多的就是Potato家族的提权。本文着重研究Potato家族的提权原理以及本地提权细节

本文来自团队成员Polar bear的原创文章,如需转载请联系告知并注明出处

​​


0x02 原理讲解

1、利用Potato提权的是前提是拥有SeImpersonatePrivilegeSeAssignPrimaryTokenPrivilege权限,以下用户拥有SeImpersonatePrivilege权限(而只有更高权限的账户比如SYSTEM才有SeAssignPrimaryTokenPrivilege权限):

  • 本地管理员账户(不包括管理员组普通账户)和本地服务账户
  • 由SCM启动的服务
    PS:本机测试时即使在本地策略中授予管理员组普通用户SeImpersonatePrivilege特权,在cmd.exe中whoami /priv也不显示该特权,且无法利用;而SeAssignPrimaryTokenPrivilege特权则可以正常授予普通用户

2、Windows服务的登陆账户:
  • Local System(NT AUTHORITY\SySTEM)
  • Network Service(NT AUTHORITY\Network Service)
  • Local Service(NT AUTHORITY\Local Service)
    也就是说该提权是
  • Administrator——>SYSTEM
  • Service——>SYSTEM
    服务账户在windows权限模型中本身就拥有很高的权限
    在实际渗透过程中,拿到webshell下,用户权限是IIS或者apache,或通过SQLi执行xp_cmdshell,此时手里的服务账户在进行操作时是低权限账户,而使用该提权手法可以直接获取SYSTEM权限

3、windows token:
windows token是描述安全上下文的对象,用户登陆后系统就会生成token,创建新进程或新线程时这个token会不断口碑
Token成员
  1. 用户账户的(SID)
  2. 用户所属的组的SID
  3. 用于标识当前登陆会话的登陆SID
  4. 用户或用户组所拥有的权限列表
  5. 所有者SID
  6. 所有者组的SID
  7. 访问控制列表
  8. 访问令牌的来源
  9. 主令牌/模拟令牌
  10. 限制SID的可选列表
  11. 模拟等级:
  12.    Anonymous: server无法模拟或识别client
  13.    Identification: 可识别client的身份和特权,不能模拟
  14.    Impersonation: 可在本地系统模拟
  15.    Delegation: 可在远程系统上模拟
复制代码
  1. C:\WINDOWS\system32>whoami /priv

  2. PRIVILEGES INFORMATION
  3. ----------------------

  4. Privilege Name                  Description                                 State
  5. =============================== =========================================== =======
  6. SeAssignPrimaryTokenPrivilege   Replace a process level token               Enabled
  7. SeImpersonatePrivilege          Impersonate a client after authentication   Enabled
复制代码

当用户具有SeImpersonatePrivilege特权,则可以调用CreateProcessWithTokenW以某个Token的权限启动新进程
当用户具有SeAssignPrimaryTokenPrivilege特权,则可以调用CreateProcessAsUserW以hToken权限启动新进程


0x03 历史土豆解析

1、HOT Potato(需要等待windows update)
repo: https://github.com/foxglovesec/Potato
DBNS欺骗,WPAD和Windows update服务
原理:
(1)通过HOST-DNS使UDP端口耗尽——NBNS
(2)通过fake WPAD prxy Server(劫持http)
IE -http://Wpad/Wpaddat 刷新WPAD文件可能需要30-60分钟
(3)HTTP>SMB NTML Relay(302-http://127.0.0.1/GETHASHSxxxx& #8221;-响应401是NTML身份验证请求,当是Windows Update服务请求时候,此命令将以“NT AUTHORITY \ SYSTEM”特权运行)

2、Rotten Potato
repo: https://github.com/foxglovesec/RottenPotato
它是通过DCOM call来使服务向攻击者监听的端口发起连接并进行NTLM认证,需要SelmpersonatePrivilege权限

3、Jucy Potato(Rotten Potato的加强版)
repo: https://github.com/ohpe/juicy-potato
需要Selmpersonate、SeAssignPrimaryToken 两个权限

  • 本地支持RPC或远程服务器支持RPC并能成功登陆
  • 用户支持Selmpersonate或SeAssignPrimaryToken权限
  • 开启DCOM
  • 可用的COM对象
    常用:
  1. JuicyPotato -p "whoami /priv"
复制代码

4.Ghost Potato

repo: https://github.com/Ridter/GhostPotato

利用CVE-2019-1384(Ghost Potato) Bypass MS-08068
原理:
(1)主机A向主机B(访问|\B)进行SMB认证的时候,将pszTargetName设置为cifs/B,然后在type 2拿到主机B发送Challenge之后,在lsass里面缓存(Challenge,cifs/B).

(2)然后主机B在拿到主机A的type 3之后,会去lsass里面有没有缓存(Challenge,cifs/b),如果存在缓存,那么认证失败。

(3)这种情况底下,如果主机B和主机A是不同的主机的话,那Isass里面就不会缓存 (Challenge,cifs/B).如果是同- -台主机的话,那Isass里面肯定有缓存,这个时候就会认证失败。
(4)绕过了缓存的限制,因为lsass中的缓存,在300s后会自动消失,315s后在发送Type3

5、Pipe Potato
攻击者通过pipeserver.exe注册一个名为pipexpipespoolss的恶意的命名管道等待高权限用户来连接以模拟高权限用户权限,然后通过spoolssClient.exe迫使system用户来访问攻击者构建的恶意命名管道,从而模拟system用户运行任意应用程序
原理:
(1)调用CreateN amedPipe()创建一个命名管道
(2)调用ConnectNamedPipe() 接受该命名请求连接
(3)迫使高权限进程连接该命名管道并写入数据
(4)调用ImpersonateNamedPipeClient()派生 一个高权限进程的客户端

衍生版本:

PrintSpoofer
repo:
https://github.com/itm4n/PrintSpoofer
利用spoolsv.exe进程的RPC服务器强制Windows主机向其他计算机进行身份证验证
需要SelmpersonatePrivilege 、SeAssignPrimaryToken权限

6、Sweet Potato(Juicy土豆的重写)
repo: https://github.com/CCob/SweetPotato
COM/WinRM/Spoolsv的集合版,也就是Juicy/PrintSpoofer
从Windows 7到windows10/windows server2019的本地服务到system特权升级


0x04 小结:

Potato提权原理简单来说就是如下三条:
(1)诱使 "SYSTEM" 账户通过NTLM向控制的TCP节点进行身份验证
(2)以本地协商 "NT AUTHORITY \ SYSTEM" 账户的安全令牌进行NTLM Relay
(3)模拟刚刚协商的令牌,达到提权的目的


0x05 参考链接:

https://www.anquanke.com/post/id/204510
https://www.t00ls.net/articles-56281.html
https://docs.ioin.in/writeup/too ... ows_html/index.html
https://foxglovesecurity.com/2016/01/16/hot-potato/





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 07:49 , Processed in 0.016067 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表