Addrwatch : Instalar e Configurar

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:

  1. Monitorar e gerar histórico do uso de IPv4 e IPv6.
  2. Monitorar múltiplas interfaces.
  3. Monitorar pacotes VLAN(802.1Q).
  4. 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.

Download Addrwatch

Após o download, vamos extrair o conteúdo do arquivo para uma pasta de sua preferência.

Open zip file

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.

bootstrap.sh

Dessa forma, se digitarmos o comando “ls”, poderemos ver os novos arquivos criados dentro da pasta do Addrwatch.

ls command

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

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
start 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.

Wireshark collecting arp packets

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
ratelimit with 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.

Testing Network

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

ARP request and ARP response

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.

The same MAC using two IPs

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.

arp table

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.

link para o Arpwatch

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