Escalação de Privilégios
Enumeração de Serviços
Comando para saber quais serviços estão presentes no SO e quais os seus executáveis
Unquoted Service Path
Execute o comando abaixo no Beacon para executar o SharpUp.exe
na máquina atacante
Caso encontre alguma vulnerabilidade, faça upload do executável malicioso, porém, se atente com o tipo de arquivo que irá enviar. Ao utilizar o Menu Payloads
> Windows Stageless Generate All Payloads
, envie arquivos que contém o svc
no nome, pois estes precisam interagir com o Service Control Manager. Um bom exemplo que pode ser utilizado, é o arquivo tcp-local_x64.svc.exe
. É recomendado utilizar Beacons TCP vinculados ao host local apenas para escalação de privilégios. O próximo passo consiste em reiniciar o serviço. Provavelmente você não terá esse permissão, então uma saída seria reiniciar a máquina. Note que após fazer isso, o Beacon não apareceu no painel do CS, pois ele está como uma conexão local. Então devemos entrar no Beacon da máquina alvo (pode ser a mesma que utilizou anteriormente) e então execute o comando abaixo para triggar o novo Beacon, que provavelmente terá um usuário com mais privilégios no SO.
Para remover o Beacon, basta deletar o executável. E para corrigir o problemas das aspas duplas, deve-se configurar o serviço da seguinte maneira (altere para o path correto):
Weak Service Permission
Execute o comando abaixo no Beacon para executar o SharpUp.exe
na máquina atacante
Em alguns casos, pode ser que o SharpUp traga que um determinado serviço apresente vulnverabilidade, porém ele não informa quais as permissões que esse serviço possui. Sendo asism, precisamos verificar mais detalhes sobre isso, então execute os comandos abaixo no Beacon:
A união das permissões (campo ServiceRights
) ChangeConfig
Start
e Stop
pode ser um cenário perfeito, pois assim podemos alterar as configurações (mudar o executável) e depois reiniciar o serviço. A saída do comando acima nem sempre irá mostrar (campo IdentityReference
) de uma forma clara que o seu específico usuários tem permissões sobre o serviço, por esse motivo devemos sempre ficar de olho nos grupos em que fazemos partes e também no acesso de NT AUTHORITY\Authenticated Users
, que inclui todos os usuários que estão autenticados. Dando continuidade, vamos então pegar mais detalhes desse serviço, em especial o seu path, através do comando:
Vamos então alterar o path do seu executável (binPath), mas antes precisamos fazer o upload do nosso executável malicioso, lembrando sempre que para escalação de privilégios, iremos utilizar o tcp-local
que foi gerado através do SC (Generate All Payloads) e também conter um svc
no nome, já que nesse caso estamos trabalhando com Services do Windows.
OBS.: Note que após o binPath=
possui um espaço, isso é intencional, pois é assim que está na documentação de ajuda do sc
Para verificar se o path foi realmente atualizado, faça um consulta nas configurações do serviço
Caso esteja correto, vamos reiniciar o serviço
Caso queria remover o Beacon, altere novamente o valor do binPath
para o valor correto e reinicie o serviço. Lembre de colocar aspas duplas, para não gerar outra vulnerabilidade.
Agora execute no Beacon:
Weak Service Binary Permissions
Esta é uma ligeira variação da vulnerabilidade anterior, mas em vez das permissões fracas estarem no serviço, estão no próprio binário do serviço. Ao verificarmos as permissões de um executável de serviço, podemos nos deparar com um BUILTIN\Users Allow Modify, Synchronize
. Esse modify
nos permite sobrescrever o binário por outro código. Certifique-se de fazer o backup antes de prosseguir.
Basta então fazer upload do arquivo, lembrando que como se trata de um serviço, pode ser que seja necessário ter pará-lo antes. e receber mensagens como [-] could not upload file: 32 - ERROR_SHARING_VIOLATION
, pegue o valor numeral, no caso 32 e execute o comando abaixo para ter mais detalhes:
Sites
Last updated