从Windows Service帐户到NT Authority System,一个加糖版本的rotterpotatong,含有少量果汁,即另一个本地特权升级工具
Rottenpotatong及其变体利用基于BITS服务的特权升级链,在127.0.0.1:6666 6666上,当您拥有SeImpersonate或SeAssignPrimaryToken特权时。在Windows Build Review期间,我们发现了一个有意禁用BITS的设置,并采用了端口6666 。
我们决定为rotterpotatong做武器:向多汁的土豆打招呼。
有关该理论,请参见腐烂的马铃薯 - 从服务帐户到系统的特权升级,并遵循链接和参考的链。
我们发现,除了BITS ,我们还可以滥用几个COM服务器。他们只需要:
IMarshal界面经过一番测试后,我们在几个Windows版本上获得并测试了有趣的CLSID列表。
JuicyPotato允许您:
目标clsid
选择您想要的任何CLSID。在这里,您可以找到由OS组织的列表。
com听力端口
定义您喜欢的com听力端口(而不是编组的硬编码6666)
com侦听IP地址
在任何IP上绑定服务器
过程创建模式
取决于假冒用户的特权,您可以选择:
CreateProcessWithToken (需要SeImpersonate )CreateProcessAsUser (需要SeAssignPrimaryToken )both启动过程
如果剥削成功,请启动可执行文件或脚本
过程参数
自定义启动的过程参数
RPC服务器地址
对于隐身方法,您可以对外部RPC服务器进行身份验证
RPC服务器端口
如果您想对外部服务器进行身份验证,并且防火墙会阻止端口135 ...
测试模式
主要用于测试目的,即测试CLSID。它创建DCOM并打印令牌的用户。请参阅此处的测试
T:>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

如果用户具有SeImpersonate或SeAssignPrimaryToken特权,则您是系统。
几乎不可能防止所有这些COM服务器的滥用。您可以认为通过DCOMCNFG修改这些对象的权限,但祝您好运,这将是具有挑战性的。
实际解决方案是保护在* SERVICE帐户下运行的敏感帐户和应用程序。停止DCOM肯定会抑制这种利用,但可能会对基础操作系统产生严重影响。
可以自动构建。可以从此处的“文物”部分下载二进制文件。
也可以在Blackarch中使用。