Vamos ensinar a instalar e configurar o Addrwatch em uma rede. Dessa forma, poderemos detectar anomalias referentes à IPs e MACs.
O Addrwatch ajuda a identificar possíveis ações de homem do meio dentro de sua rede. Para isso, a ferramenta mantem um registro de logs indicando o MAC e o IP das máquinas que realizaram comunicação dentro da rede.
Dessa forma, o histórico de logs de requisição ARP do Addrwatch pode ajudar a desvendar problemas de configuração em sua rede ou até mesmo identificar alguma anomalia causada por ataque de homem do meio.
O Addrwatch pode ser instalado em uma máquina Linux. Dessa forma vamos realizar todo o procedimento de instalar e configurar usando uma máquina com Ubuntu.
Pontos interessantes do Addrwatch:
- Monitorar e gerar histórico do uso de IPv4 e IPv6.
- Monitorar múltiplas interfaces.
- Monitorar pacotes VLAN(802.1Q).
- O histórico pode ser feito em stdout, plain text file, syslog, sqlite3 db, MySQL db.
Instalar o Addrwatch
Para instalar o Addrwatch vamos acessar o link abaixo.
https://github.com/fln/addrwatch
Em seguida, vamos selecionar o botão “Code” e em seguida vamos fazer o download do arquivo ZIP.
Após o download, vamos extrair o conteúdo do arquivo para uma pasta de sua preferência.
Agora vamos instalar os pacotes necessários para o funcionamento do Addrwatch. Vale ressaltar que estamos usando uma máquina com Ubuntu 20.04 e, portanto, foi necessário instalar os pacotes abaixo.
sudo apt-get update
sudo apt-get install libpcap-dev
sudo apt-get install libevent-dev
sudo apt-get install autoconf
sudo apt-get install gcc
sudo apt-get install gawk
sudo apt-get install make
Depois de instalados os pacotes, vamos entrar no diretório onde você extraiu os arquivos do Addrwatch e vamos executar o “./bootstrap.sh”. Para isso, vamos digitar o comando abaixo.
./bootstrap.sh
Após a execução do comando, você verá uma tela semelhante à da figura abaixo.
Dessa forma, se digitarmos o comando “ls”, poderemos ver os novos arquivos criados dentro da pasta do Addrwatch.
Agora, vamos executar “./configure” e em seguida vamos executar o “make”. Caso queira que o Addrwatch seja instalado no sistema, vamos também usar o “sudo make install”. Depois disso, você terá o Addrwatch instalado.
./configure
make
sudo make install
Instalando com saída para SQL
Alternativamente, caso deseje instalar com saída para o mysql, podemos compilar usando os comandos abaixo.
./configure --enable-mysql
make
sudo make install
Livros Indicados:
E-Books de Redes e Segurança
Executando o addrwatch
Para começarmos a usar o Addrwatch, vamos usar o comando “sudo addrwatch”. Dessa forma, podemos aguardar um pouco e logo vamos começar a perceber as mensagens do Addrwatch.
sudo addrwatch
Na figura acima temos alguns logs normais do addrwatch. Nesse caso estamos vendo um “ARP_REQ”, que significa uma requisição ARP originária do MAC “08:00:27:ab:1b:b5” perguntando sobre quem tem o IP 10.0.2.9. Nesse caso o IP 10.0.2.9 é o IP do gateway dessa máquina.
Logo depois, temos a resposta ARP “ARP_REP”. Essa resposta ARP vem do MAC “52:54:00:12:35:03”, que é o MAC do gateway.
Assim, temos um exemplo típico de uma comunicação ARP ocorrendo em uma rede comum. Na figura abaixo temos um recorte de um printscreen do Wireshark. Essa figura apresenta o momento em que o wireshark capturou a requisição ARP e a resposta ARP.
Outros tipos de eventos de histórico
ARP_REQ – ARP Request packet. Gera informação sobre IP e MAC da origem que fez a requisição ARP.
ARP_REP – ARP Reply packet. Gera informação sobre IP e MAC da origem que fez a resposta ARP.
ARP_ACD – ARP Address collision detection packet. Gera informação sobre IP e MAC do host origem.
ND_NS – Neighbor Solicitation packet. Gera informação sobre Origem link-layer address (NS option) e endereço IPv6.
ND_NA – Neighbor Advertisement packet. Gera informação sobre o alvo link-layer address (NS option) e endereço IPv6 da origem.
ND_DAD – Duplicate Address Detection packet. Gera informação sobre o MAC de origem e o endereço do alvo (NS header).
Opções de limitação de logs do Addrwatch
Podemos usar o ratelimit para evitar que os logs fiquem poluídos com mensagens repetidas.
Para isso podemos usar o “-r NUM” ou o “–ratelimit=NUM”. O “NUM” nesse caso é o número de segundos que serão usados para suprimir informações repetidas do Addrwatch.
sudo addrwatch -r 300
Nota- apensar do ratelimit suprimir informações repetidas, caso tenha alguma informação nova essa será inserida no histórico de logs. Dessa forma, não teremos perda de novos pares de IPs e MACs que estão se associando na rede.
Testando o Addrwatch
Agora, vamos criar um ambiente de testes usando mais duas máquinas virtuais. A figura abaixo demonstra a topologia que vamos usar para testes.
No cenário acima, estamos usando umas máquinas virtuais conectadas por uma rede “Internal Network” do VirtualBox. O interessante de usar uma rede interna do virtualbox é poder garantir um isolamento da comunicação. Dessa forma, apenas as entidades participantes dos testes poderão ter acesso entre si.
Como criar uma rede interna no VitualBox “Internal Network”: https://youtu.be/-yQ-FD1f4QQ
A primeira máquina está usando ubuntu 20 e tem instalado o Addrwatch.
A segunda máquina tem o sistema operacional Kali instalado.
Instalar KALI em VirtualBox: https://youtu.be/nT6Dr6vgcjw
A terceira máquina tem um servidor Apache e hospeda uma página WEB.
Instalar APACHE: https://youtu.be/z4v397M-1xA
Testando com o Ettercap
Agora vamos usar a ferramenta Ettercap do kali para realizar uma falsificação de ARP. A ideia é usar um ataque de homem do meio.
(Nota)- Lembrando que qualquer tipo de ação como essa de usar a ferramenta Ettercap deve ser feita em ambiente controlado e que você tenha permissão para realizar. Dessa forma, nesse caso estamos usando apenas em uma rede interna virtualizada dentro do VirtualBox.
Portanto vamos utilizar o Ettercap para responder tanto pela máquina que está com o WEB Server como também pela máquina que está com o Addrwatch. Dessa forma, quando a máquina com o Addrwatch tentar acessar o servidor WEB, a máquina Kali vai interceptar a comunicação.
A execução da ferramenta Ettercap pode ser encontrada em: https://youtu.be/KYjyqlQxJzY
Podemos observar na figura abaixo que a máquina com o KALI está respondendo pela máquina “192.168.11.33” e pela máquina “192.168.11.22”. Ou seja, a máquina Kali está respondendo também pela máquina do WEB Server.
Dessa forma, quando fizermos uma requisição para o servidor WEB os dados serão interceptados pela máquina Kali.
Assim podemos verificar que a ferramenta Addrwatch informa a utilização de IPs e MACs dentro da rede. Isso significa, que podemos verificar o momento em que houve algum comportamento anormal dentro da rede usando os logs do Addrwatch.
A figura abaixo apresenta a tabela ARP da máquina que está com o Addrwatch. Podemos observar que a tabela ARP está indicando que para alcançar o IP do servidor WEB “192.168.11.22” devemos enviar para o MAC da máquina KALI “08:00:27:19:d5:47”. Isso significa que o Ettercap conseguiu fingir ser a máquina do WEB Server.
Comparando Addrwatch e Arpwatch
Em um comparativo, eu acredito que o Addrwatch é mais interessante de ser usado como uma ferramenta que vai guardar logs de uso de IPs e MACs dentro de sua rede. Dessa forma, caso tenha algum evento anormal, o administrador de rede pode verificar os logs do Addrwatch e tomar as medidas cabíveis.
O Arpwatch parece ser mais indicado para uma resposta imediata ao incidente. Isso porque você pode utilizar os alarmes do Arpwatch para alertar o Administrador de rede no momento em que a anomalia está ocorrendo.
Qual é melhor Addrwatch ou Arpwatch?
Depende, seria interessante usar o Addwatch se tivermos alguma outra ferramenta para avisar o administrador no momento em que houver alguma anomalia na rede em relação à IPs e MACs.
Dessa forma considero o uso do Addwatch caso já tenha alguma ferramenta como um Snort analisando a rede. Já o Arpwatch é uma ferramenta mais completa, pois permite identificar as anomalias em tempo real e até mesmo enviar e-mail para o administrador de rede.
Veja também:
Arpwatch: Instalação e Configuração
- Configurar Load Balance com PfSense
- Configurar Failover em PfSense
- Instalar cliente OpenVPN em Windows
- Instalar Open VPN em Linux
Livros Indicados:
E-Books de Redes e Segurança
SSH: Como criar chave pública
Nesse tutorial vamos ensinar a criar e configurar o acesso a um servidor SSH usando…
Socket em Python criando chat UDP
Tutorial para a criação de um chat simples utilizando sockets em UDP em Python 3….
Socket em Python, criando um Chat
Tutorial para a criação de um chat simples utilizando sockets TCP em Python 3. O…
Como usar apt get com proxy
Ao longo dos tempos sempre me deparo nos laboratórios de rede com a necessidade de…
Qual a melhor IDE para Python?
Encontrar a IDE perfeita é uma jornada pessoal que depende de vários fatores, como suas…