Estouro da mesa CAM.
Oleg Petukhov, advogado na área de Direito Internacional e proteção de dados pessoais, especialista em segurança da informação segurança, proteção de informações e dados pessoais.
Canal Telegram: https://t.me/protecaodaInformacao
Grupo Telegram: https://t.me/protecaodaInformacao1
Site: https://legascom.ru
E-mail: online@legascom.ru
#proteçãodaInformação #Segurançadainformação
O switch possui uma tabela CAM (Content Address Memory), que contém a ligação de endereços MAC às portas do switch. Ou seja, essa tabela indica quais endereços MAC são aceitos em qual porta. A auto-tabela tem um tamanho limitado, por exemplo, para o Cisco Catalyst 2960 switch, a tabela pode armazenar até 8.192 endereços MAC, e o Catalyst 6000 series Pode armazenar até 128.000 endereços MAC.
Se a tabela é ocupada inteiramente, as entradas novas não poderão ser adicionadas, e todo o tráfego passará a todas as portas. Nesse caso, o switch começará a funcionar como um hub normal e todo o tráfego que passa por esse segmento de rede poderá ser ouvido da mesma forma que usamos na seção anterior, usando o utilitário Wireshark. Obviamente, um invasor não poderá ouvir todo o tráfego na rede local dessa maneira, mas um insider que trabalha no mesmo segmento de rede, por exemplo, com contabilidade, poderá interceptar o tráfego e receber informações confidenciais.
Você pode implementar esse ataque usando o utilitário macchanger, que permite alterar os endereços MAC.
Como exemplo, substituiremos o endereço MAC em uma máquina conectada ao switch.
root@kali:~# ifup eth0
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:16:ec:f1:45:e8
Sending on LPF/eth0/00:16:ec:f1:45:e8
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.1.3 from 192.168.1.101
DHCPREQUEST of 192.168.1.3 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.3 from 192.168.1.101
bound to 192.168.1.3 -- renewal in 42928 seconds.
if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface eth2 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface ath0 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface wlan0 before doing NFS mounts
Quando ativado, uma solicitação era enviada ao servidor DHCP para obter um endereço IP. Em seguida, veremos o status atual das interfaces de rede.
root@kali:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:ec:f1:45:e8
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:ecff:fef1:45e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3952 (3.9 KB) TX bytes:1780 (1.7 KB)
Interrupt:21 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
O endereço MAC real da nossa interface de rede é 00:16:ec:f1: 45: E8. Atualmente, esse endereço está registrado na tabela CAM do switch. Agora vamos mudar esse endereço.
root@kali:~# macchanger –r eth0
Current MAC: 00:16:ec:f1:45:e8 (unknown)
Faked MAC: 04:2f:11:65:fc:0a (unknown)
Перестартуем сетевой интерфейс:
root@kali:~# ifdown eth0
root@kali:~# ifup eth0
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/04:2f:11:65:fc:0a
Sending on LPF/eth0/04:2f:11:65:fc:0a
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.1.8 from 192.168.1.101
DHCPREQUEST of 192.168.1.8 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.8 from 192.168.1.101
bound to 192.168.1.8 -- renewal in 42928 seconds.
if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface eth2 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface ath0 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface wlan0 before doing NFS mounts
Vejamos novamente a configuração da interface de rede.
root@kali:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr : 04:2f:11:65:fc:0a
inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:ecff:fef1:45e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5801 (5.9 KB) TX bytes:1100 (1.1 KB)
Interrupt:21 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Como você pode ver, o endereço MAC da interface eth0 mudou. Usando um script simples, você pode forçar ações para mudar o MAC address em um laço, que seja executado até que os excessos da auto-tabela. Vou deixar a redação desse roteiro para os assinantes do canal como tarefa de casa. Observarei apenas que o utilitário macchanger será útil para nós mais de uma vez ao implementar ataques de rede.
Tendo identificado a ameaça, vamos passar para as formas de nos protegermos. Muitas diretrizes de segurança recomendam que você vincule o endereço MAC da estação de trabalho à porta do switch ou limite o número de endereços MAC conectados à porta a um endereço. Essas dicas são, obviamente, corretas, mas é preciso ter cuidado aqui, pois muitas vezes uma porta em um switch pode corresponder a vários endereços MAC. Por exemplo, o switch usa todas as portas, mas você precisa conectar várias outras estações de trabalho a ele (devido à expansão ou, inversamente, à redução). A melhor solução nessa situação seria conectar outro switch a este e reservar a porta de conexão do novo switch para o endereço MAC correspondente. No entanto, nas atuais condições econômicas, muitas empresas preferem economizar e usar os mesmos hubs para conexão.
Há também casos em que várias estações de trabalho podem ser conectadas à mesma porta do switch, por sua vez. Por exemplo, isso geralmente é feito em salas de reunião. Portanto, ao configurar restrições nas conexões de endereços MAC, aconselho a não se deixar levar pelo excessivo "aperto dos parafusos" para evitar dificuldades adicionais no futuro.
Agora vamos para a parte prática. Como exemplo, vejamos a configuração do switch Cisco Catalyst 2960 com o sistema operacional iOS. Este modelo possui 24 portas às quais os usuários estão conectados. É necessário garantir que não mais do que três máquinas possam se conectar a cada porta (em outras palavras, três endereços MAC). Para fazer isso, conecte-se ao switch remotamente ou usando o console e execute os seguintes comandos:
Switch# conf t
Switch(config)# int range f0/1-24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport port-security
Switch(config-if-range)# switchport port-security violation shutdown
Switch(config-if-range)# switchport port-security maximum 3
Switch(config-if-range)# switchport port-security mac-address sticky
Agora vamos falar brevemente sobre o que cada uma das equipes está fazendo. Na primeira linha, nós comutamos ao modo de configuração global, e na segunda linha, nós comutamos ao modo de configuração de porta. No terceiro, afirmamos explicitamente que todos
as portas selecionadas funcionarão no modo de acesso. Em seguida, ative a proteção de segurança de porta. Nas três linhas seguintes, nós dizemos ao interruptor o que fazer se mais de três estações de trabalho tentam conectar à porta. Primeiramente, indicamos que é necessário desabilitar a porta e enviar a mensagem apropriada via snmp e syslog. A propósito, você não pode forçar essa opção a ser ativada, pois ela opera por padrão. Além do modo de desligamento que usamos, há também protect e restrict. O significado dos dois últimos modos é que a porta não será desligada (ou seja, mudará para o estado de desligamento), mas apenas os pacotes serão bloqueados se uma violação relacionada aos endereços MAC for detectada. A diferença entre estes dois modos é que quando uma situação de emergência ocorre, restrict pode enviar um mensagem snmp trap e syslog sobre uma violação da Política de segurança.
No próximo comando do switch, especificamos quantos endereços MAC estamos prontos para ver nesta porta. No nosso caso, são três. Por fim, o último comando alterna a porta do switch para o modo de aprendizagem, ou seja, os três primeiros endereços MAC que serão recebidos por essa porta serão salvos automaticamente no running-config.
Então, para resumir, direi que todos esses comandos são suficientes para evitar um ataque ao estouro da tabela CAM.




