导语:Hot potato是Stephen Breen发现的Windows提权漏洞的代码名称。这种技术实际上是结合了现有的windows的两种漏洞而形成的,即NTLM重放攻击以及NBNS欺骗攻击。通过这两种攻击可以实现在目标主机本地伪造一个假的WPAD代理服务器。
通过类似SMB协议的NTLM认证已经被微软修补了,不过HTTP到SMB正在使用这种验证,并且还用于创建高权限服务中。因为流量包中含有NTLM凭据并且正在通过伪代理服务器,因此可以将其捕获并传递到本地SMB侦听器,作为SYSTEM权限执行任何命令。
Stephen Breen在他的博客(https://foxglovesecurity.com/2016/01/16/hot-potato/)中描述了这次攻击的所有阶段。这次攻击适用的平台:
Windows7 Windows8 Windows10 Windows Server 2008 Windows Server 2012
在命令行下进行权限提升
Stephen Breen开发了一个可执行文件,可以自动执行这些攻击,并可以在目标系统上执行任何命令,并进行提权。作为认证用户(pentestlab),首先要检查机器上的本地管理员。
Potato与DLL相关联,一旦DLL被系统运行,potato就可以在系统命令下运行,然后可以执行以下操作,以便在本地(127.0.0.1)启动NBNS欺骗。
Potato.exe -ip -cmd [cmd to run] -disable_exhaust true -disable_defender true
这时的http通信是通过经过配置的浏览器发出的(比如使用公司的代理设置),我们从下图可以看到我们的攻击将要完成,并且可以以更高的权限执行系统命令。
在这个例子中,pentestlab用户已经被添加到管理员组,这说明我们的攻击已经成功。
使用msf进行权限提升
当然也可是使用MSF进行攻击,进而拿到一个具有系统权限的meterpreter后门,而不只是在管理组添加一个用户。这可以通过额外的Msf攻击载荷来实现,当然你需要把Hot Potato的exp以及msf生成的后门放到你的目标机器上面。
在Hot Potato中,你只需要设置你要执行的命令。在Hot Potato中执行的命令不是将pentest用户添加到管理员组,而是运行msfcvenom生成的msf后门pentest3.exe。
在开始提权之前,我们在另外一个窗口获取到一个普通权限的shell,然后运行pentestlab3.exe,并且在刚才的窗口使用msf中的handler模块来接受连接。
一定要打开第二个shell,因为它用于Hot Potato在HTTP通信过程避免等待时间,并且打开浏览器进行通信。当然这与这种提权方法有关。
在第一个shell中,我们执行Potato的exp,略微修改它的执行命令,让他运行我们的后门程序"pentestlab3.exe":
在第二个shell中打开ie浏览器,以便第一个shell可以捕获http流量。
这将导致Hot Potato通过不同的协议(HTTP到SMB)创建一个系统服务执行pentestlab3.exe后门:
第三个Msf的handler应该用于侦听系统权限返回的meterpreter的shell。
使用powershell进行权限提升
有一个替代选项,它模拟PowerShell中的Hot Potato漏洞,称为Tater。该脚本包含在Empire,OwnedShell和PS> Attack中,它有两种执行权限升级的方法。
1.NBNS WPAD暴力破解+Windows Defender签名更新 2.WebClient服务+计划任务命令
该脚本已经在Windows 2008 Server R2环境中测试,但它似乎在Windows 7和Windows
10不能有效地攻击。因此,下面的截图来自该工具的所有者,而不是Pentestlab,但它可以用于快速在Powershell中引用Hot
Potato攻击。
资源
https://github.com/foxglovesec/Potato
Hot Potato – Windows Privilege Escalation(https://foxglovesecurity.com/2016/01/16/hot-potato/)
https://github.com/Kevin-Robertson/Tater