Uma versão açucarada do Rottenpotatong, com um pouco de suco, ou seja, outra ferramenta local de escalada de privilégios, de contas de serviço do Windows a NT Authority System
Rottenpotatong e suas variantes aproveitam a cadeia de escalada de privilégios com base no serviço BITS SeAssignPrimaryToken têm o ouvinte MITM em 127.0.0.1:6666 e quando você tiver privilégios SeImpersonate . Durante uma revisão do Windows Build, encontramos uma configuração onde BITS foram intencionalmente desativados e a porta 6666 foi realizada.
Decidimos armar Rottenpotatong: diga olá para a suculenta batata .
Para a teoria, consulte Rotten Potato - Privilégio Escallagem de contas de serviço para o sistema e siga a cadeia de links e referências.
Descobrimos que, além de BITS , existem vários servidores com que podemos abusar. Eles só precisam:
IMarshalApós alguns testes, obtivemos e testamos uma extensa lista de CLSIDs interessantes em várias versões do Windows.
Juicypotato permite:
Alvo clsid
Escolha qualquer clsid que quiser. Aqui você pode encontrar a lista organizada pelo sistema operacional.
Com porta de escuta
Defina com a porta de escuta que você preferir (em vez do marechald Coded 6666)
Com endereço IP de ouvir
vincule o servidor em qualquer IP
Modo de criação do processo
Dependendo dos privilégios do usuário personalizado que você pode escolher:
CreateProcessWithToken (precisa SeImpersonate )CreateProcessAsUser (precisa do SeAssignPrimaryToken )both Processo para iniciar
iniciar um executável ou script se a exploração for bem -sucedida
Argumento do processo
Personalize os argumentos do processo lançado
Endereço do servidor RPC
Para uma abordagem furtiva, você pode autenticar para um servidor RPC externo
Porta do servidor RPC
Útil se você deseja autenticar para um servidor externo e o firewall está bloqueando a porta 135 ...
Modo de teste
Principalmente para fins de teste, ou seja, testando clsids. Ele cria o DCOM e imprime o usuário do token. Veja aqui para testar
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

Se o usuário possui privilégios SeImpersonate ou SeAssignPrimaryToken , você é um sistema .
É quase impossível impedir o abuso de todos esses servidores COM. Você pode pensar em modificar as permissões desses objetos via DCOMCNFG , mas boa sorte, isso será desafiador.
A solução real é proteger contas e aplicativos sensíveis que são executados nas contas de * SERVICE . A interrupção DCOM certamente inibiria essa exploração, mas poderia ter um sério impacto no sistema operacional subjacente.
Uma compilação automática está disponível. Os binários podem ser baixados da seção Artefatos aqui.
Também disponível em Blackarch.