Data Exfiltration: Como fazer utilizando a ferramenta DET - O Analista
26 de fevereiro de 2020 166 views0
A ferramenta DET (Data Exfiltration Toolkit) foi criada como uma prova de conceito para identificar possíveis falhas em soluções de Prevenção de Perda de Dados (DLP – Data Loss Prevention.
A ideia era criar um kit de ferramentas genérico que pudesse conectar qualquer tipo de protocolo/serviços a fim de testar a configuração das soluções de Monitoramento de Rede e Prevenção de Perda/Vazamento de dados (DLP), contra diferentes técnicas de data exfiltration.
Na imagem podemos ter uma ideia do funcionamento do esquema:
O Insider (192.168.56.10) envia documento sigiloso para o IP do atacante (192.168.50.1), via porta TCP 6969;
O atacante recebe o arquivo enviado pelo insider;
Os arquivos recebidos poderão ser enviados para outro servidor localizado na Internet caso necessário.
Figura 1 – Topologia (beeeeeem básica) do funcionamento do DET | Como realizar Data Exfiltration utilizando a ferramenta DET
1.1 – Atacante – Ubuntu 19.10
1.1.1 – Instalação do Git
1.1.2 – Instalar o Python 2 e o gerenciador de pacotes Pip
1.1.3 – Clonar repositório do DET
1.1.4 – Instalar pré-requisitos do arquivo requirements.txt
1.1.5 – Arquivo config-sample.json
1.1.6 – Endereço IP do atacante
1.2 – Insider – Windows (Windows 10 – 32 bits)
1.2.1 – Instalação do Git
1.2.2 – Instalação do Python (versão 2.7.17)
1.2.3 – Clonando o repositório do DET
1.2.4 – Instalando os pré-requisitos
1.2.5 – O arquivo config-sample.json
1.2.6 – Endereço IP
2 – Realizando o Data Exfiltration
3 – Como se prevenir?
1 – PREPARANDO O TERRENO (Pré-Requisitos) PARA O DATA EXFILTRATION
A etapa de preparar o terreno gira em torno de configurar as ferramentas necessárias para o funcionamento correto do DET (Data Exfiltration Toolkit). Será dividida no lado do Atacante e do Insider.
Como deve ter visto no título, o cenário do atacante é composto por uma máquina com o Ubuntu 19.10, mas em alguns casos darei exemplos de comandos para quem estiver utilizando o Fedora e CentOS.
1.1.2 – Instalar o Python2 e o gerenciador de pacotes Pip
Para clonar o repositório do DET, digite o seguinte comando:
Acesse o diretório recém-criado. Antes de instalarmos os pré-requisitos, execute os seguintes passos:
– comentar a linha do pycrypto e adicionar em seguida pycryptodome, como mostrado na imagem abauixo:
Figura 2 – Alterando o arquivo requirements | Data Exfiltration: Como fazer utilizando a ferramenta DET
– Salve e saia do arquivo, digitando :wq!
Obs: o pycrypto possui vulnerabilidade de buffer overflow, por isso estamos utilizando o pycryptodome. Veja mais em https://blog.sqreen.com/stop-using-pycrypto-use-pycryptodome/
Em seguida instale os pré-requisitos, conforme descrito abaixo:
O arquivo config-sample.json possui todos os atributos para os plugins a serem utilizados pelo DET. No lado do atacante, um plugin é um meio a ser utilizado para o recebimento dos arquivos a serem enviados pelo insider.
Conforme podemos ver na imagem abaixo, configurei o endereço IP dos plugins dns, tcp e udp como 127.0.0.1 (pois o socket de conexão será aberto na própria máquina). Destaquei na imagem o plugin tcp e a porta 6969, que serão utilizados pelo insider para o envio de um arquivo sigiloso ao Atacante.
Figura 3 – O arquivo config-sample.json | Data Exfiltration: Como fazer utilizando a ferramenta DET
Em nosso teste as máquinas do atacante e do insider estão localizadas na mesma rede, devido ao endereço IP em uso ser de endereçamento interno, mas nada impede que você utilize algum servidor na Internet para receber os arquivos enviados pelo insider.
Figura 4 – Verificando o endereço IP do atacante | Data Exfiltration: Como fazer utilizando a ferramenta DET
Tanto o servidor do atacante, como a estação de trabalho do insider, podem estar localizados na mesma rede ou em qualquer local do mundo.
Este ambiente é o que chamaremos de a máquina do Insider, que é o(a) "vira-casaca" em uma organização. Um insider é um(a) funcionário(a) que age fora dos padrões corretos e éticos dentro de uma organização.
Basicamente, teremos os seguinte pré-requisitos:
Os pré-requisitos do arquivo requirements.txt
Ao acessar o link abaixo, o download deverá começar automaticamente:
Caso não comece dentro de segundos, clique em um dos links conforme a arquitetura do sistema e aguarde o download terminar.
Execute a instalação padrão, não tem segredo.
Primeiramente acessaremos o link a seguir:
https://python.org/downloads/release/python-2717
Aparece uma tela como a seguir. Clique no link de download referente a versão 2.7.17:
Figura 5 – Realizando o download do Python para Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Em seguida clique no link abaixo e aguarde o término do download:
Figura 6 – Download do executável do Python para Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Realize a instalação normalmente do executável.
Após instalado o Git e o Python, acesse o Git Bash, em seguida realize a clonagem do diretório do DET, utilizando o comando abaixo:
Figura 7 – Clonando o repositório do DET para ser utilizado no Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Após o término da clonagem do DET, acesse o diretório recém-criado:
Conteúdo do diretório do DET (ls -lhtr):
Figura 8 – Listando o conteúdo do diretório do DET | Data Exfiltration: Como fazer utilizando a ferramenta DET
Antes de instalar os pré-requisitos, é necessário acessar o arquivo requirements.txt (vim requirements.txt), comentar a linha do pycrypto e adicionar pycryptodome, conforme mostrado baixo:
Figura 9 – Alterando o arquivo requirements.txt no Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Obs: o pycrypto possui vulnerabilidade de buffer overflow, por isso estamos utilizando o pycryptodome. Veja mais em https://blog.sqreen.com/stop-using-pycrypto-use-pycryptodome/.
E seguida instale os pré-requisitos utilizando o comando:
Figura 10 – Instalando os pré-requisitos no Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Após os pré-requisitos do arquivo requirements.txt serem instalados, vamos para o passo seguinte:
O arquivo config-sample.json possui todos os atributos para os plugins a serem utilizados pelo DET. No lado do insider, um plugin é um meio a ser utilizado para o envio da informação para o servidor do atacante, que em nosso teste está com o endereço IP 192.168.56.1. Lembre-se que este servidor do atacante pode estar localizado em qualquer lugar do mundo.
vim config-sample.json
Figura 11 – Alterando o arquivo config-sample.json no Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
No exemplo acima, foi informado o IP do servidor (192.168.56.1) do atacante, bem como o plugin de tcp e a porta 6969. Estas informações são necessárias para que o insider saiba para onde enviar o arquivo que deseja vazar.
Em nosso teste foi configurado o endereço IP 192.168.56.10 na estação de trabalho do insider, pois ao analisar as conexões que estiverem "chegando" no servidor do atacante, veremos o IP do insider, que neste caso é o que está em destaque na imagem abaixo:
Figura 12 – Verificando o IP no Windows | Data Exfiltration: Como fazer utilizando a ferramenta DET
Para ficar mais fácil o entendimento do processo do "vamo vê", resolvi gravar um vídeo mostrando esse processo:
Conhecendo a ferramenta DET em ação |
Existem diversas técnicas e ferramentas que as empresas podem utilizar para se prevenirem contra o vazamento de informações, perda de dados, DLP, data exfiltration, etc.
No link abaixo, você pode conferir um pequeno guia que mostra algumas técnicas e ferramentas para a prevenção de data exfiltration e outras vulnerabilidades que englobam a perda de dados e o vazamento de informações como um todo.