1. Introdução
Empresas que não tinham sistemas de acesso remoto organizados implementaram-nos urgentemente há alguns meses. Nem todos os administradores estavam preparados para tal "calor", resultando em falhas de segurança: configuração inadequada dos serviços ou até mesmo instalação de versões desatualizadas de software com vulnerabilidades conhecidas anteriormente. Alguns já enfrentaram as consequências dessas falhas, outros tiveram mais sorte, mas certamente é uma lição a ser aprendida por todos. A lealdade ao trabalho remoto aumentou significativamente e cada vez mais empresas aceitam o trabalho remoto como um formato viável a longo prazo.
Portanto, existem muitas opções para garantir o acesso remoto: diferentes VPNs, RDS e VNC, TeamViewer e outros. Os administradores têm várias escolhas, com base na especificidade da rede corporativa e dos dispositivos nela. As soluções VPN permanecem as mais populares, no entanto, muitas pequenas empresas optam por RDS (Serviços de Área de Trabalho Remota), que são mais simples e rápidas de implementar.
Neste artigo, vamos discutir mais detalhadamente a segurança do RDS. Faremos uma breve visão geral das vulnerabilidades conhecidas e analisaremos vários cenários de início de ataque à infraestrutura de rede baseada em Active Directory. Esperamos que nosso artigo ajude alguém a aprender com os erros e aumentar a segurança.
2. Vulnerabilidades recentes do RDS/RDP
Qualquer software contém erros e vulnerabilidades que podem ser exploradas por criminosos, e o RDS não é exceção. Recentemente, a Microsoft tem frequentemente relatado novas vulnerabilidades, decidimos fazer uma breve visão geral delas:
Essa vulnerabilidade coloca em risco os usuários que se conectam a um servidor comprometido. Um invasor pode obter controle sobre o dispositivo do usuário ou se instalar no sistema para ter acesso remoto permanente.
- / /
Este grupo de vulnerabilidades permite que um invasor não autorizado execute remotamente código arbitrário em um servidor com RDS através de uma requisição especialmente formada. Também pode ser utilizado para criar worms — softwares maliciosos que infectam dispositivos adjacentes na rede de forma autônoma. Assim, essas vulnerabilidades podem ameaçar toda a rede da empresa, sendo que somente atualizações oportunas podem salvá-la.
O software de acesso remoto recebeu atenção crescente tanto de pesquisadores quanto de cibercriminosos, por isso, em breve, talvez ouçamos sobre novas vulnerabilidades semelhantes.
A boa notícia é que nem todas as vulnerabilidades têm exploits públicos disponíveis. A má notícia é que um cibercriminoso com conhecimento pode facilmente escrever um exploit para uma vulnerabilidade com base na descrição, ou usando técnicas como Patch Diffing (sobre as quais nossos colegas escreveram em ). Portanto, recomendamos atualizar o software regularmente e ficar atento ao surgimento de novas notificações sobre vulnerabilidades descobertas.
3. Ataques
Estamos passando para a segunda parte do artigo, onde mostraremos como os ataques à infraestrutura de rede baseada em Active Directory se iniciam.
Os métodos descritos são aplicáveis ao seguinte modelo de invasor: um cibercriminoso com uma conta de usuário que tem acesso ao Remote Desktop Gateway — servidor terminal (geralmente disponível, por exemplo, da rede externa). Aplicando esses métodos, o cibercriminoso poderá continuar o ataque à infraestrutura e solidificar sua presença na rede.
A configuração da rede pode variar em cada caso específico, mas os métodos descritos são bastante universais.
Exemplos de evadir ambientes restritos e escalonamento de privilégios
Ao acessar o Remote Desktop Gateway, o cibercriminoso provavelmente encontrará um ambiente restrito. Ao se conectar ao servidor terminal, um aplicativo inicia: uma janela para conexão via protocolo Remote Desktop para recursos internos, o Explorer, pacotes de escritório ou qualquer outro software.
O objetivo do atacante será obter acesso à execução de comandos, ou seja, iniciar o cmd ou o powershell. Várias técnicas clássicas de escape de "sandbox" para Windows podem ajudar nisso. Vamos analisá-las a seguir.
Opção 1. O cibercriminoso tem acesso à janela de conexão Remote Desktop dentro do Remote Desktop Gateway:

O menu "Show Options" é aberto. Aparecem opções para manipular os arquivos de configuração de conexão:

Desta janela, é possível acessar o Explorer sem dificuldades, clicando em qualquer um dos botões "Open" ou "Save":

O Windows Explorer é aberto. Sua "barra de endereços" permite a execução de arquivos executáveis autorizados, bem como a listagem do sistema de arquivos. Isso pode ser útil para um atacante caso os discos do sistema estejam ocultos e o acesso a eles não seja possível diretamente:

→
Um cenário semelhante pode ser reproduzido, por exemplo, ao usar o Excel do pacote Microsoft Office como software remoto.
→
Além disso, não devemos esquecer os macros usados neste pacote de escritório. Nossos colegas discutiram o problema de segurança dos macros nesta .
Opção 2. Usando as mesmas premissas que na versão anterior, o atacante inicia várias conexões ao desktop remoto sob a mesma conta. Ao reconectar, a primeira será fechada e uma janela de erro aparecerá na tela. O botão de ajuda nesta janela chamará o Internet Explorer no servidor, após o que o atacante pode acessar o Explorer.
→
Opção 3. Com restrições configuradas para a execução de arquivos executáveis, o atacante pode enfrentar uma situação em que as políticas de grupo proíbem o lançamento do cmd.exe pelo administrador.
Há uma maneira de contornar isso executando um arquivo bat no desktop remoto com conteúdo como cmd.exe /K . O erro ao iniciar o cmd e um exemplo bem-sucedido da execução do arquivo bat estão mostrados na figura abaixo.

Opção 4. A proibição da execução de aplicativos por meio de listas negras de nomes de arquivos executáveis não é uma panaceia, pois pode ser contornada.
Consideremos o seguinte cenário: proibimos o acesso ao prompt de comando, proibimos o lançamento do Internet Explorer e do PowerShell por meio de políticas de grupo. O atacante tenta chamar a ajuda — nenhuma resposta. Tenta iniciar o PowerShell através do menu de contexto da janela modal, chamado com a tecla Shift pressionada — mensagem de proibição de execução pelo administrador. Tenta iniciar o PowerShell através da barra de endereços — novamente nenhuma resposta. Como contornar a restrição?
Basta copiar powershell.exe da pasta C:\Windows\System32\WindowsPowerShell\v1.0 para a pasta do usuário, mudar o nome para algo diferente de powershell.exe, e a possibilidade de execução estará disponível.
Por padrão, ao se conectar a um desktop remoto, o acesso aos discos locais do cliente é fornecido, a partir dos quais o atacante pode copiar powershell.exe e, após renomear, executar.
→
Apresentamos apenas algumas maneiras de contornar as restrições; muitos outros cenários podem ser criados, mas todos eles convergem para a utilização do Windows Explorer. Existem muitos aplicativos que usam as ferramentas padrão do Windows para trabalhar com arquivos, e ao inseri-los em um ambiente restrito, técnicas semelhantes podem ser aplicadas.
4. Recomendações e conclusão
Como podemos ver, mesmo em um ambiente restrito, há espaço para o desenvolvimento de ataques. No entanto, é possível dificultar a vida do atacante. Apresentamos recomendações gerais que serão úteis tanto nos casos que analisamos quanto em outras situações.
- Restringa a execução de programas por listas negras/brancas, utilizando políticas de grupo.
No entanto, em muitos casos, ainda há a possibilidade de executar código. Recomendamos que você conheça o projeto , para ter uma ideia sobre maneiras não documentadas de manipulação de arquivos e execução de código no sistema.
Recomendamos combinar ambos os tipos de restrições: por exemplo, pode-se permitir a execução de arquivos executáveis assinados pela Microsoft, mas restringir a execução do cmd.exe. - Desative as guias de configurações do Internet Explorer (isso pode ser feito localmente no registro).
- Desative através do regedit a chamada da ajuda embutida do Windows.
- Desative a possibilidade de montagem de discos locais para conexões remotas, se essa restrição não for crítica para os usuários.
- Restringa o acesso a discos locais da máquina remota, deixando acesso apenas a pastas de usuário.
Esperamos que você tenha achado interessante, e que, no melhor dos casos, este artigo ajude a tornar o trabalho remoto da sua empresa mais seguro.
Fonte: habr.com
